[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-users] howto grow a domU disk image

  • To: <xen-users@xxxxxxxxxxxxxxxxxxx>
  • From: "Joe Linoff" <jlinoff@xxxxxxxxxx>
  • Date: Sun, 30 Jan 2011 09:23:36 -0800
  • Cc: Joe Linoff <jlinoff@xxxxxxxxxx>
  • Delivery-date: Sun, 30 Jan 2011 09:24:27 -0800
  • List-id: Xen user discussion <xen-users.lists.xensource.com>
  • Thread-index: AcvAom1SoqcT7jIKQiOckX+7q8mLxQ==
  • Thread-topic: howto grow a domU disk image

Hi Folks:

I am a big fan of Xen and have a gotten a lot of help from this forum so
I am posting this in the hopes that it will help others. My apologies
for wasting space if this is already widely known.

I am running xen-3.4.3 on CentOS 5.5 and recently had to grow a domU
guest image because I miscalculated the amount of space I needed for
packages. I tried a variety of ways to the fix the problem but because
the image was created by cobbler, most of them didn't work because there
was no ext2 file system anywhere. My particular image had two
partitions: ext3 for /sda1 (/boot) and lvm2 for /sda2 (/, swap, etc.)
for the rest. Tools like gparted don't work with lvm (yet).

I finally settled on virt-resize from the guestfish package and found it
so easy to use that I thought I would share it. 

Here are the steps, in a nutshell:

   % # Shutdown the VM (vm01)
   % virsh shutdown vm01

   % # Find the location of the disk image.
   % virsh dumpxml vm01 | xpath /domain/devices/disk/source
   Found 1 nodes:
   -- NODE --
   <source file="/var/lib/libvirt/images/vm01.img" />

   % # List the partitions so that you can figure out which one you want
to grow.
   % # Can also use tools like gparted for this.
   % cd /var/lib/libvirt/images/
   % virt-list-partitions vm01.img
   Could not open '/dev/kqemu' - QEMU acceleration layer not activated:
No such file or directory

   % # Create a new image of the correct size, in this case 16GB.
   % dd if=/dev/zero of=newdisk bs=1GB count=16

   % # Resize.
   % virt-resize --expand /dev/sda2 vm01.img newdisk

   % # Install the new image.
   % mv vm01.img{,.too-small}
   % mv newdisk vm01.img

   % # Restart the guest.
   % virsh start vm01

If you don't have the guestfish package which includes the virt-resize
and virt-list-partitions tools, you can find it in the EPEL repository
for Redhat/CentOS/Fedora. It can be installed as follows.

   % # As root -- get the repository reference if you don't already have
   % # The rpm command will be different for non Redhat/CentOS/Fedora
   % rpm -Uvh

   % # Install guestfish
   % # The yum command will be different for non Redhat/CentOS/Fedora
   % yum -y install guestfish



Xen-users mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.