[Libguestfs] ANNOUNCE: libguestfs 1.28 released
Richard W.M. Jones
rjones at redhat.com
Sat Oct 18 11:46:31 UTC 2014
I'm pleased to announce libguestfs 1.28, a library and set of tools
for accessing and modifying virtual machine disk images.
This release took 7 months of work by a considerable number of people,
and has many new features (see release notes below), including new
'virt-v2v' and 'virt-p2v' tools for importing guests from foreign
hypervisors to KVM, and 'virt-log' which is a tool for extracting log
files from guests (including Windows).
You can get libguestfs 1.28 here:
Main website: http://libguestfs.org/
You will also need latest supermin from here:
Fedora 21: http://koji.fedoraproject.org/koji/packageinfo?packageID=8391
It will appear as an update for F21 in about a week.
Debian/experimental coming soon, see:
[ From http://libguestfs.org/guestfs-release-notes.1.html ]
RELEASE NOTES FOR LIBGUESTFS 1.28
virt-v2v(1) and virt-p2v(1) are tools for converting from foreign
hypervisors (such as VMware or Xen) or physical machines, to KVM. These
tools were previously a separate project. The code for both tools has
been integrated into the libguestfs tree. As part of the refactoring,
virt-p2v has been rewritten (from Ruby, now C), and virt-v2v now uses
several modern features of qemu which make it run many times faster
than before. virt-v2v(1) can import from: VMware vCenter, VMware OVA
files, local disk files, libvirt, RHEL 5 Xen. It can output to: oVirt
or Red Hat Enterprise Virtualization (RHEV-M), OpenStack Glance,
libvirt, qemu, local disk files.
virt-log(1) is a new tool for listing log files from guests. It
supports a variety of guests including Linux traditional, Linux using
journal, and Windows event log.
virt-builder(1) has a new --machine-readable option to make it simpler
to consume virt-builder from other programs.
New virt-builder(1) and virt-customize(1) --chmod option.
virt-sysprep(1) will now remove: systemd journals, anaconda logs,
lightdm logs, debian-installer files, apt logs, exim logs, ConsoleKit
logs, firewalld logs, grubby logs, proftpd logs, libvirt/libxml logs,
and several other log files. The virt-sysprep user-account operation is
now able to remove or keep particular user accounts. (Pino Toscano).
New guestmount(1) --fd option, allowing you to run guestmount captive
under another process.
virt-sparsify(1) has a new --tmp option allowing you to precisely
control where temporary files are stored.
virt-sparsify(1) can now write to a block device.
virt-customize(1) and virt-sysprep(1) now support adding firstboot
scripts to Windows guests.
virt-cat(1), virt-edit(1), virt-ls(1) now support the -m option,
allowing you to override automatic inspection of guests and instead
specify where to mount partitions (Pino Toscano).
The virt tools now have coloured output: green for OK, red for errors,
blue for warnings.
You can build a Python distribution using make -C python sdist
Ruby bindings have switched from Test::Unit to MiniTest.
The Java bindings are now compatible with OpenJDK 8 (Pino Toscano).
Oracle Linux is returned as oraclelinux (Nikos Skalkotos).
Linux guests which do not have /etc/fstab can now be handled (Pino
Minix is returned as minix (Pino Toscano).
Aarch64 (64 bit ARM) support has been added.
Inspection and the guestfs_file_architecture call can now recognize arm
(32 bit) and aarch64 guests.
CVE-2014-0191 Network usage and entity resolution in XML parsing
Libguestfs previously used unsafe libxml2 APIs for parsing libvirt
XML. These APIs defaulted to allowing network connections to be made
when certain XML documents were presented. Using a malformed XML
document it was also possible to exhaust all CPU, memory or file
descriptors on the machine.
Since the libvirt XML comes from a trusted source (the libvirt
daemon) it is not thought that this could have been exploitable.
This was fixed in libguestfs ≥ 1.27.9 and the fix was backported to
stable versions ≥ 1.26.2, ≥ 1.24.9, ≥ 1.22.10 and ≥ 1.20.13. (Thanks:
Dan Berrange, Pino Toscano).
Shellshock (bash CVE-2014-6271)
This bash bug indirectly affects libguestfs. For more information
Use these APIs to set individual backend settings.
Convert a directory within the disk image to cpio format.
Fetch precise journal times, see sd_journal_get_realtime_usec(3).
Enhanced versions of guestfs_lstat, guestfs_lstatlist, guestfs_stat
which return nanosecond timestamps.
Libguestfs can now be built with qemu 2.x.
Add support for packaging the appliance on Mageia (Joseph Wang, Thierry
Augeas is now a required dependency.
Flex and bison are now required dependencies.
User-Mode Linux (UML) is no longer a supported backend (although still
available). It will be supported again once someone steps in and fixes
various regressions and brokenness in the UML (Linux) kernel.
You can now connect gdb to qemu by specifying
Serial BIOS (sgabios) is now used by the libvirt backend (on x86 only)
so that we see early BIOS messages.
For the OCaml virt tools, exceptions are now handled and printed by a
A GCC warning about large stack frames is now enabled by default.
Several places that used large arrays and structures on the stack have
There is now a test for booting the appliance repeatedly. Useful for
finding kernel leaks. See: tests/qemu/qemu-boot.c
There is a test for testing the speed of various qemu features such as
virtio-serial uploads and block device writes. See:
GCC warnings are now enabled for OCaml-C bindings in the OCaml virt
The code for editing files used by virt-edit(1), guestfish(1) edit
command, virt-customize(1) --edit option and more is now shared between
all these utilities (thanks Pino Toscano).
The FUSE tests were rewritten in C to ensure finer control over how
system calls are tested.
The update-bugs.sh script has been fixed so it should no longer create
an empty BUGS file if the Bugzilla server is unavailable.
The virt-resize(1) tests now use a stochastic method to ensure much
deeper and broader testing.
When the network is enabled, the appliance now uses DHCP to acquire an
If libvirt is being used then the appliance will connect to virbr0 (can
be overridden by setting
LIBGUESTFS_BACKEND_SETTINGS=network_bridge=<some_bridge>). This enables
full-featured network connections, with working ICMP, ping and so on.
empty (but set) LIBGUESTFS_BACKEND prints libguestfs: error: invalid
libguestfs-bash-completion package contains file
/usr/share/bash-completion/completions/virt-log, but no _virt_log()
function in that file
typo error in man page of virt-edit
virt-v2v conversions from VMware vCenter server run slowly
virt-v2v: warning: display <graphics type='sdl'> was ignored when
converting rhel5 guest with sdl graphics
'copy-file-to-file /src /dest' create file /dest even if command
'copy-file-to-file /src /dest' failed
Can not find "RECURSIVE LONG LISTING" in 'man virt-diff'
virt-v2v does not fstrim data disks and non-mounted filesystems
Exporting 2+ disk guest to RHEV, only one disk shows after import
virt-filesystems: incorrect LVM vg name when listing Fedora 21 Alpha
Atomic image filesystems
Option missing --no-selinux-relabel
RFE: Allow qemu-bridge-helper to be used to implement
virt-v2v prints warning: /files/etc/fstab/8/spec references unknown
regression setting root password with virt-builder/virt-customize
virt-v2v -v -x during windows guest conversion will hang at hivex:
hivex_open: used block id ……
Improve the error info when converting windows guest with unclean
virt-v2v fails to convert win7 guest
RFE: stat calls do not return nanosecond timestamps
futimens() is a no-op via guestmount
guestfish can not restore terminal's output colour when exit
guestfish, if the terminal's background colour is black then it will
make a inconvenient
virt-customize option '--password-crypto' do not work
Warning shows when converting guests to rhev:chown: changing
ownership of ‘/tmp/v2v.u48xag/*.ovf’: Invalid argument
warning shows when converting rhel7 guest:virt-v2v:could not update
grub2 console: aug_get: no matching node (ignored)
virt-v2v fails with error: cannot open Packages index using db5
part-get-name give 'libguestfs: error: part_get_name: parted does not
support the machine output (-m)' error message when run
'part-get-name /dev/sda 1'
virt-sysprep option '--mount-options' don't work well
Illegal command 'part-get-name /dev/sda1 1' cause libguestfs
virt-v2v prints waring:WARNING:/files/boot/grub/device.map references
unknown device "xvda"
virt-v2v: error: disk sda has no defined format shows when converting
xen hvm guest
[RFE] virt-v2 should support convert a domain with using domain's
UUID instead of domain name
[RFE] virt-v2 should support convert a guest to a dir-pool with using
virt-sysprep option '--user-accounts' don't work well
virt-v2v fails to convert xen pv guests.
virt-v2v fails to convert esx guests
qemu-img shows error message for backing file twice
No error messages output if append '--format qcow2' after '-a
guest.img', guest.img is a raw format image file
virt-builder option '--format' don't work well
RFE: Export to RHEV data domain
No error shows when multiple conflicting options used with virt-v2v
Improve the error info when converting xen guest with no passwordless
SSH access configured
Improve the error info when converting guest with no space left
No error shows when converting running guest with virt-v2v
virt-v2v will fail when converting guests with initramfs-*kdump.img
xen guest will be kernel panic after converted by virt-v2v
Annoying message about permissions of /dev/kvm
libguestfs 'direct' backend should close file descriptors before
exec-ing qemu to avoid leaking !O_CLOEXEC fds
virt-sparsify overwrites block devices if used as output files
Empty fstab breaks libguestfs inspection
Guestfs.Error("vgchange_uuid_all: Volume group has active logical
virt-win-reg manual page is corrupted
root gets an error accessing to a non-root dir on a snapshot
guestmount VMDK img
These APIs also need to add to `guestfish -h` command list
mageia package list is incorrect
libguestfs 1.27.13 does not build due to libxml library order
RFE: non-polling mechanism to detect guestmount --no-fork readiness
scrub-file can't handle link file
typo errors in man pages
RFE: virt-builder aliases
virt-builder "proxy=off" setting doesn't turn off the proxy for
virt-sparsify man failes to mention what happens to snapshots within
a qcow2 image (they are discarded)
virt-builder: If several repos contain the same os-version images,
then they are duplicated in -l output
tar-in-opts execute failed that cause libguestfs appliance crashed
virt-resize: libguestfs error: part_set_name: parted: /dev/sdb: Error
during translation: Invalid or incomplete multibyte or wide character
virt-builder cannot write to a block device
Ruby tests fail with latest Ruby
virt-sparsify --in-place cannot sparsify as much as it should
virt-df cannot report used disk space of windows guest when updated
virt-builder error: "syntax error at line 3: syntax error"
virt-sparsify overwrites block devices if used as output files
virt-rescue cannot set ≥<rescue> prompt, on Ubuntu 12.04
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-p2v converts physical machines to virtual machines. Boot with a
live CD or over the network (PXE) and turn machines into KVM guests.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 836 bytes
Desc: not available
More information about the Libguestfs