Table of Contents

Increase_size_of_raw_disk_image_with_partitions

So there are a few ways out there for this. There is also a new virt-resize tool for resizing a VM disk with partitions. Having LVM inside the VM guest is another method.

This method covers:

Increase Size of LV

lvresize -L+5G /dev/vg0/deb02 //adds 5GB to the lv

Use fdisk to recreate partitions

Carefully, we can use fdisk to delete and recreate partitions to include the newly created free space.

All going well, this method should leave all information intact. Use dd to backup the LV firstly if you so wish.

fdisk /dev/vg0/deb02

The number of cylinders for this disk is set to 3263. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs

 (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/vg0/deb02: 26.8 GB, 26843545600 bytes 255 heads, 63 sectors/track, 3263 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x000505b9

Device Boot Start End Blocks Id System /dev/vg0/deb02p1 * 1 2496 20049088+ 83 Linux /dev/vg0/deb02p2 2497 2610 915705 5 Extended /dev/vg0/deb02p5 2497 2610 915673+ 82 Linux swap / Solaris

Command (m for help): d Partition number (1-5): 5

Command (m for help): d Partition number (1-5): 2

Command (m for help): d Selected partition 1

Command (m for help): p

Disk /dev/vg0/deb02: 26.8 GB, 26843545600 bytes 255 heads, 63 sectors/track, 3263 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x000505b9

Device Boot Start End Blocks Id System

Command (m for help): n Command action

 e   extended
 p   primary partition (1-4)

p Partition number (1-4): 1 First cylinder (1-3263, default 1):<enter> Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-3263, default 3263): +24G

Command (m for help): p

Disk /dev/vg0/deb02: 26.8 GB, 26843545600 bytes 255 heads, 63 sectors/track, 3263 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x000505b9

Device Boot Start End Blocks Id System /dev/vg0/deb02p1 1 2919 23446836 83 Linux

Command (m for help): n Command action

 e   extended
 p   primary partition (1-4)

p Partition number (1-4): 2 First cylinder (2920-3263, default 2920): <enter> Using default value 2920 Last cylinder or +size or +sizeM or +sizeK (2920-3263, default 3263): <enter> Using default value 3263

Command (m for help): p

Disk /dev/vg0/deb02: 26.8 GB, 26843545600 bytes 255 heads, 63 sectors/track, 3263 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x000505b9

Device Boot Start End Blocks Id System /dev/vg0/deb02p1 1 2919 23446836 83 Linux /dev/vg0/deb02p2 2920 3263 2763180 83 Linux

Command (m for help): w The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 22: Invalid argument. The kernel still uses the old table. The new table will be used at the next reboot. Syncing disks.

Check the Partition and resize2fs

kpartx -av /dev/vg0/deb02 e2fsck -f /dev/mapper/vg0-deb02p1 resize2fs /dev/mapper/vg0-deb02p1 e2fsck -f /dev/mapper/vg0-deb02p1 mkswap /dev/mapper/vg0-deb02p2 kpartx -dv /dev/vg0/deb02

Boot VM and fix swap partition

Start the KVM VM with virsh. All worked well for me. After booting, I had to fix up the swap. Here is what I done for that when logged into the VM: df -h 'check new 20GB file size. free 'see that there is no swap. ls /dev/vda* swapon /dev/vda2 vi /etc/fstab /dev/vda2 none swap sw 0 0

References: http://buffalo.nas-central.org/wiki/Talk:Custom_Partitions_on_the_LS_Pro <br> http://itsignals.cascadia.com.au/?p=28 <br> http://blog.jdpfu.com/2010/10/31/solved-increase-kvm-vm-image-file-size <br> http://xen.1045712.n5.nabble.com/AW-Increase-size-of-file-based-diskimage-with-MBR-partitions-fs-td2594510.html <br> http://www.scriptkiddie.org/blog/page/2/ <br>