Home » Questions » Computers [ Ask a new question ]

Is it possible to resize a QEMU disk image?

Is it possible to resize a QEMU disk image?

If possible, what happens to the partitions within it? Are they automatically resized as well (doubtful), or is there just a new block of unused space following them?

Asked by: Guest | Views: 162
Total answers/comments: 2
Guest [Entry]

"From here:

!!! Back up your disk image before
trying the below !!!

If you are using a sparse raw image,
then do

dd if=/dev/zero of=hdd.img seek=N obs=1MB count=0""


where hdd.img is the raw format image that you want to resize and N is
the new size that you want the image
to be, in megabytes. To change the
units of N, change obs to something
else such as 1GB for units in
gigabytes (1000x1000x1000).

If you want to resize a raw image but
you do not want it to become sparse
(you actually want those zeros in the
file) then do ""dd if=/dev/zero
of=image seek=S count=N-S obs=1""
instead, where N is the new size and S
is the old size (in bytes).

If you want to resize a qcow2 image,
this is not yet supported.

this email shows some experimenting
with resizing qcow images with a hex
editor.

Resizing or growing images in other
formats (VMware, Bochs, cow, or cloop)
is not supported to the best of my
knowledge.

On a Windows host it is possible to
resize a raw format disk image using
the 'copy' command. You can use
qemu-img to convert your existing
image to raw format if need be. We
will use a temporary raw format disk
image that will be appended on to the
end of your existing raw format disk
image. The size of this temporary
image is the size the existing image
will be expanded by:

qemu-img create -f raw temp.img 300M


You should then issue the below
command - orig.img is your existing
raw format image that you want to make
larger, temp.img is the temporary
image file created earlier, and
new.img is the resized resultant
image:

copy /b orig.img+temp.img new.img


You will then need to repartition and
resize the existing partition(s) and
filesystem(s) on the new image. One
method of doing this is to boot
gparted in QEMU with the gparted
livecd iso and the new disk image.

Other links you might want to check out if the above doesn't work:

http://qemu-forum.ipi.fi/viewtopic.php?p=12362
http://kev.coolcavemen.com/2007/04/how-to-grow-any-qemu-system-image/
http://bryan-murdock.blogspot.com/2007/12/resize-qemukvm-windows-disk-image.html
http://www.larsen-b.com/Article/329.html
http://www.brabbel.net/wp/archives/174"
Guest [Entry]

"Short answer for 2017: To add e.g. 30 GB to an existing raw image I just used this command:

qemu-img resize nameofimg.img +30G

This adds 30 GB to your existing image file (no need to create a new file). Then in your guest VM you can extend your existing partitions, in Windows 10 e.g. with ""Disk Management"", easy.

More info and options:

man qemu-img

See also: qemu wiki > qemu-img"