Created attachment 962595 [details]
Description of problem:
virt-resize fails with an "write: No space left on device" error when trying to expand the http://libguestfs.org/download/builder/ubuntu-14.04.xz image.
I encountered this error by running virt-builder with --size=10G on Fedora 21. It used to work on Fedora 20.
Version-Release number of selected component (if applicable):
rpm -q libguestfs-tools-c
Steps to Reproduce:
1. curl http://libguestfs.org/download/builder/ubuntu-14.04.xz | xz -cd > ubuntu-14.04.img
2. virt-resize -v -x --expand=/dev/sda1 ubuntu-14.04.img 10G.img 2>&1 | tee virt-resize-log.txt
virt-resize: error: libguestfs error: copy_device_to_device: /dev/sdb2:
write: No space left on device
(full detail in attached log file)
I forgot the "truncate -s10G 10G.img" command just before running virt-resize.
I suspect https://github.com/libguestfs/libguestfs/commit/fc34e2d16c2d13d6ae7a381ba931e345ab5ae56d
(which I don't think is wrong) which changes the type
we use when creating the extended partition. Previously
it would create it as "primary", now it is created as
Looks like it is, if I revert that change it succeeds (tried with libguestfs-1.29.11).
Created attachment 965681 [details]
the patch tries to fix this bug.
Please try the attached patch and feedback. Thanks!
The root cause of the problem is that the size of an extended partition reported by Linux is alwas 1024 bytes, so when you are writing to the device (such as /dev/sdb2) corresponding to the extended partition, you can only write 1024 bytes.
Hu Tao's patch has gone upstream, please try it out:
I tried the patch on top of libguestfs-1.29.13 and the resizing succeeds now with ubuntu-14.04.img.
Closing / upstream.
This is likely to be a problem on Fedora 21 & RHEL 7.1 too,
so I am going to clone it.