Sysadmin/Add resources to a VM: Difference between revisions

No edit summary
document some disk file wizardry
Line 21: Line 21:
  sudo virsh start "name_of_vm"
  sudo virsh start "name_of_vm"


=== Extending the disk file of a VM ===
=== Extending a raw disk image ===
 
This procedure applies to full-disk images containing an MBR partition table.
 
**NOTE: Any VM using this disk must be shut down beforehand, or you'll corrupt the filesystem!**
 
First, append some space at the end of the disk:
 
dd if=/dev/zero bs=1M count=$((1024-256)) >>example-boot.img
 
Then extend the partition to fill the entire disk:
 
parted example-boot.img
(parted) resizepart 1
End?  [267MB]? -1
(parted) p
Model:  (file)
Disk /var/lib/libvirt/images/boot/example-boot.img: 1074MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number  Start  End    Size    Type    File system  Flags
  1      1049kB  1073MB  1072MB  primary  ext4        boot
(parted) quit
 
Now create device nodes for the new partition table:
 
# kpartx -av lightwave-boot-new.img
add map loop7p1 (253:4): 0 2093152 linear 7:7 2048
 
Grow the filesystem inside the partition (resize2fs requires an fsck beforehand):
 
# e2fsck -f /dev/mapper/loop7p1
# resize2fs /dev/mapper/loop7p1
 
Now loopback-mount your grown up filesystem to check if it's healthy:
 
# mount /dev/mapper/loop7p1 /mnt
# df -h /mnt
Filesystem          Size  Used Avail Use% Mounted on
/dev/mapper/loop7p1  986M  112M  820M  12% /mnt
 
Don't forget to unmount the filesystem and undefine the loopback devices!
 
umount /mnt
kpartx -d lightwave-boot-new.img
 
Et voilà!
 
=== Extending a QCOW disk file ===


Create a file containing the amount of space you want to add to the VM
Create a file containing the amount of space you want to add to the VM