On a Eucalyptus kvm instance, I did the following to demonstrate function. - launch instance - show original partition table: $ sudo sfdisk -G /dev/sda /dev/sda: 164288 cylinders, 4 heads, 32 sectors/track $ CHS=$(sudo sfdisk -G /dev/sda | awk '{print "-C",$2,"-H",$4,"-S",$6}') $ sudo sfdisk -uS ${CHS} /dev/sda -d # partition table of /dev/sda unit: sectors /dev/sda1 : start= 63, size= 2883585, Id=83 /dev/sda2 : start= 2883648, size= 16558001, Id=83 /dev/sda3 : start= 19441649, size= 1587215, Id=82 /dev/sda4 : start= 0, size= 0, Id= 0 $ df -h /dev/sda1 /dev/sda2 Filesystem Size Used Avail Use% Mounted on /dev/sda1 1.4G 581M 735M 45% / /dev/sda2 7.8G 52K 7.4G 1% /mnt - now, modify the partition table This will destroy the filesystem on /dev/sda2 as we move it. A reboot will get the new partition and not see a filesystem on /dev/sda2 $ cat > rewrite.txt < console.out $ grep GROW console.out GROWROOT: CHANGED: partition=1 start=63 old: size=2883585 end=2883648 new: size=9999937,end=10000000 And, on the instance, you can see that the partition table has been updated and that / partition has been resized by cloud-init. $ sudo sfdisk -uS ${CHS} /dev/sda -d # partition table of /dev/sda unit: sectors /dev/sda1 : start= 63, size= 9999937, Id=83 /dev/sda2 : start= 10000000, size= 9441649, Id=83 /dev/sda3 : start= 19441649, size= 1587215, Id=82 /dev/sda4 : start= 0, size= 0, Id= 0 $ df -h /dev/sda1 /dev/sda2 Filesystem Size Used Avail Use% Mounted on /dev/sda1 4.7G 582M 3.9G 13% / /dev/sda2 4.5G 143M 4.1G 4% /mnt