Есть ещё такие утилиты как dump и restore, находятся они в пакете dump.Стартуешь виртуалку в single mode или останавливаешь всё ненужное,
далее
dump -0auz -f - /dev/hda2 | ssh remotehost 'dd of=root_backup.dump'
dump -0auz -f - /dev/hda3 | ssh remotehost 'dd of=var_backup.dump'
(оба своих раздела / и /var) к себе.
поднимаешь новую виртуалку, стартуешь с live-cd убунты (у неё штатно dump нет, но можно поставить и во время live сессии) или кнопикса, делаешь в ней новые разделы, файловую систему с и-нодами нужного размера, монтируешь эти разделы (например /mnt/sdc1, /mnt/sdc2),
дальше:
cd /mnt/sdc1; ssh remotehost 'dd if=root_backup.dump' | restore -r -f -
cd /mnt/sdc2; ssh remotehost 'dd if=var_backup.dump' | restore -r -f -
затем прокидываешь внутрь нового / каталоги /dev /proc /sys (это надо для того чтобы grub поставить):
mount -o bind /dev /mnt/sdc1/dev
mount -o bind /proc /mnt/sdc1/proc
mount -o bind /sys /mnt/sdc1/sys
и до кучи свой var
mount -o bind /mnt/sdc2 /mnt/sdc1/var
затем
chroot /mnt/sdc1
и уже там
grub-install /dev/sdc
если разделы монтируются по UUID, то его надо прописать правильный, иначе не взлетит
blkid >>/etc/fstab
nano /etc/fstab
и правим соответствующие UUID
затем
update-grub
exit
далее
umount /mnt/sdc1/dev
umount /mnt/sdc1/proc
umount /mnt/sdc1/sys
umount /mnt/sdc1/var
umount /mnt/sdc2
umount /mnt/sdc1
reboot
и надеемся что оно взлетит (про выставление флага "загрузочный" при создании нового раздела / не забыли?)
Всё.