Artisan Développeur

Qualité, amélioration continue, agilité.

KVM – resize volume disk virt-manager – virt-resize

If you have install a new window 7 virtual machine to do some tests, very very quickly, you can have the same problem is had.

8 GB volume disk is not enough…

First boot of the vm, windows complains about space left, if you want to do updates, it’s too late 🙂

I used to be more virtualbox for my little needs, most for web test under several browser under native os. But, I’m not the oracle biggest fan, so go to kvm.

I use virt-manager to setup vms, and it’s very simple.

Now I want to resize my little volume, and have more space for my win7 test vm.

  1. install libguestfs-tools
  2. create a new volume
  3. resize
  4. add new volume
  5. Profits !

1 – libguestfs-tools

In a terminal (konsole under kde) try virt-resize, if you don’t have it do :

[pastacode lang= »bash » message= » » highlight= » » provider= »manual »]

apt-get install libguestfs-tools

[/pastacode]

2 – create new volume

First see what are your pools :

[pastacode lang= »bash » message= » » highlight= » » provider= »manual »]

virsh pool-list

[/pastacode]

Result :

[pastacode lang= »bash » message= » » highlight= » » provider= »manual »]

 Nom                  État      Démarrage automatique
-------------------------------------------
 2to                  actif      yes   
  
 isos                 actif      yes       

[/pastacode]

I want use the pool named « 2to ».

Create the new volume on the « 2to » pool with virsh:

[pastacode lang= »bash » message= » » highlight= » » provider= »manual »]

virsh vol-create-as --format qcow2 2to win7homepremium.qcow2 15G

[/pastacode]

I choose to keep the qcow2 format, because the input volume is in qcow2.

3 – Resize

Take a look at the partitions in the current volume :

Search for the volume :

[pastacode lang= »bash » message= » » highlight= » » provider= »manual »]

virsh dumpxml win7 | grep source

[/pastacode]

« win7″ is my guestname.

Output is :

[pastacode lang= »markup » message= » » highlight= » » provider= »manual »]



[/pastacode]

See the partitions :

[pastacode lang= »bash » message= » » highlight= » » provider= »manual »]

virt-filesystems --long --parts --blkdevs -h -a /media/raid/vms/window7.qcow2

Name       Type       MBR  Size  Parent
/dev/sda1  partition  07   100M  /dev/sda
/dev/sda2  partition  07   7,9G  /dev/sda
/dev/sda   device     -    8,0G  -

[/pastacode]

We need to resize the volume, but virt-resize copy input to output, and create a new partition with the extra space, we need to use –expand option on /dev/sda2 :

[pastacode lang= »bash » message= » » highlight= » » provider= »manual »]

virt-resize --expand /dev/sda2 /media/raid/vms/window7.qcow2 /media/raid/vms/win7homepremium.qcow2
[   0,0] Examining /media/raid/vms/window7.qcow2
**********

Summary of changes:

/dev/sda1: This partition will be left alone.

/dev/sda2: This partition will be resized from 7,9G to 14,9G.  The 
filesystem ntfs on /dev/sda2 will be expanded using the 'ntfsresize' 
method.

**********
[   4,0] Setting up initial partition table on /media/raid/vms/win7homepremium.qcow2
[   4,0] Copying /dev/sda1
[   4,0] Copying /dev/sda2
 100% ⟦▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒⟧ 00:00
[  28,0] Expanding /dev/sda2 using the 'ntfsresize' method

Resize operation completed with no errors.  Before deleting the old disk, 
carefully check that the resized disk boots and works correctly.

[/pastacode]

At this point you have a new 15GB volume, check the partitions :

[pastacode lang= »bash » message= » » highlight= » » provider= »manual »]

virt-filesystems --long --parts --blkdevs -h -a /media/raid/vms/win7homepremium.qcow2
Name       Type       MBR  Size  Parent
/dev/sda1  partition  07   100M  /dev/sda
/dev/sda2  partition  07   15G   /dev/sda
/dev/sda   device     -    15G   -

[/pastacode]

All good !

4 – Add the new volume with virt-manager

I know, I know, I can do the same with a better « sysadmin way » with my terminal, but hey, I’m not a terminal freak ^^

  • Go to the vm details and create a new device with the right mouse clic:

kvm - virt-manager to create a new device

  • Select the second option : existing storage and « browse » (parcourir in french)

kvm - new disk to resize the old one

  • Search/select your new create qcow2 volume, and confirm:

KVM - virt manager - create a new disk

  • last step you have to remove/delete old « Disk1 » because windows have some signature device conflit if you try to boot with both disks:

Delete virtual disk kvm

After that you can boot your vm and check disks :

I’ve to reboot windows7 the first boot after the resize, the finish install new device.

6-newDisk

All good, new size ! I can do updates, and use my testing vm.

virt-resize complete doc

Leave a reply

Your email address will not be published.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.