GUESTFS-RELEASE-NOTES-1.36(1)
π NAME π
okay bestie, quick vibe check: this is the guestfs-release-notes-1.36(1) page, manual name guestfs-release-notes(1), under Virtualization Support. Itβs literally guestfs-release-notes - libguestfs Release Notes. π«Ά
π¦ RELEASE NOTES FOR LIBGUESTFS 1.36 π¦
These release notes only cover the differences from the previous stable/dev branch split (1.34.0). For detailed changelogs, please see the git repository, or the ChangeLog file distributed in the tarball. β¨
π New features π
π New tools π
Virt-tailis a new tool for following (tailing) log files within a guest, similar to the regulartail -fcommand. π
πΈ New features in existing tools πΈ
Virt-customize,virt-get-kernel,virt-sparsifyandvirt-sysprepcan now handle encrypted guests (Pino Toscano). π₯Virt-builderandvirt-customizenow support--append-line, which is useful for adding lines to the end of configuration files. πVirt-resizecan now shrink and expand swap partitions (Pino Toscano). π¦Virt-resizecan now output to non-local disks (Pino Toscano). β¨Virt-sysprephas a new operation calledbackup-filesfor removing editor backups, andpasswd-backupsfor removing/etc/passwd-and similar. πVirt-dibcan now create checksums using the new--checksumoption (Pino Toscano). πVirt-dibcan now create tgz files. In addition, extended attributes and SELinux labels are preserved in the output tar file (Pino Toscano). πVirt-dibcan now create squashfs files (Pino Toscano). π§- Bash tab-completion is now available in every command line tool that is shipped. β
π¦ virt-v2v and virt-p2v π¦
- Conversions of Debian (6+) and Ubuntu (10.04+) guests are now supported (TomΓ‘Ε‘ GolembiovskΓ½, Pino Toscano). π
- Conversions from SUSE Xen hypervisor have now been tested (CΓ©dric Bosdonnat). β¨
- Windows conversions may now install a program
pnp_wait.exewhich prevents conflicts between the Windows Plug-and-Play Manager and our own scripts that install virtio device drivers. Enabling this requires thepnp_wait.exeprogram to be built separately (Roman Kagan). π«Ά - OVA files exported from AWS can now be converted (Shahar Havivi). π₯
- When converting OVA files, in some circumstances virt-v2v can now read disk images directly from the OVA input file instead of needing to unpack the OVA file to a temporary directory. This can save large amounts of disk space, and is quicker (TomΓ‘Ε‘ GolembiovskΓ½). π
- Virt-p2v can now be built on RHEL 5 (2007-era) Linux and RHEL 6, which means that 32 bit and hardware with ancient fakeraid disks can be virtualized. Binaries of virt-p2v based on these old versions of RHEL can be found at
http://oirase.annexia.org/virt-p2v/π - Virt-p2v can now use nbdkit (an NBD server) as an alternative to qemu-nbd. In addition, virt-p2v can use
socket activationwhich is a more robust method for opening the NBD listening socket. Socket activation works with qemu-nbd or nbdkit, but requires the most up to date versions. π¦ - To prevent timeouts during P2V conversions, virt-p2v inhibits power saving on the physical machine, and also sends ping packets over the ssh control and data connections. πΈ
- Virt-v2v no longer removes the
"Processor"and"Intelppm"nodes from the Windows Registry. π - Xen and vCenter conversions can now be done using the libvirt backend, provided libvirt β₯ 2.1.0 is used. π
/dev/srX(SCSI CD-ROM) devices are ignored (TomΓ‘Ε‘ GolembiovskΓ½). β¨- When converting SUSE Linux guests, use
/etc/modprobe.conf.localif it exists. π - Removing VMware tools from Linux guests should now work reliably (Pino Toscano). π
- When converting OVA files, virt-v2v now checks the disk image hash contained in the manifest file, whereas previously it was ignored because of a mistake in the code. In addition, SHA256 hashes are now supported (TomΓ‘Ε‘ GolembiovskΓ½). π₯
- When converting OVA files that contain compressed disk images, we now trust the
ovf:compressionattribute from the metadata instead of using content sniffing on the disk image (TomΓ‘Ε‘ GolembiovskΓ½). π§ - A new flag
--vdsm-compathas been added to-o vdsmmode, allowing more efficient qcow2 images to be generated. β - Since the RHEV product [commercially supported version of oVirt] has now been renamed to RHV,
"RHEV"was changed to"RHV"throughout the tooling. In particular,-o rhevbecomes-o rhv, although the old name can be used for backwards compatibility. π - The
"RHEV-APT"utility is only installed when the output hypervisor is oVirt or RHV. π - A problem with virt-v2v running out of memory when doing an SELinux relabel of the guest filesystem should now be resolved. π«Ά
π Language bindings π
- Setting
EXTRA_JAVAC_FLAGSbefore./configureallows you to add arbitrary flags tojavacwhen compiling the Java bindings. β¨ - Use of any libguestfs API which returned a single struct, from Perl or Java bindings, would have leaked memory. This has now been fixed (Pino Toscano). π
π₯ Inspection π₯
- Inspection of Windows guests with mildly corrupted Windows Registry hives should now work instead of failing with an error. This feature requires hivex β₯ 1.3.14 (Dawid Zamirski). π
- For Debian guests, we can now read the URL, source name, summary and full description of installed packages. For RPM-based guests we can read the URL, summary and description (Pino Toscano). πΈ
- Inspection of guest operating systems that use a separate
/usrpartition should now work more reliably (Pino Toscano). π¦ - When parsing guest
/etc/fstab, paths are reduced to a canonical form (eg."///usr//local//"β"/usr/local"). π - Inspection of btrfs subvolumes now works where the
/etc/fstaboptions field contains commas. β /dev/cdNdevices in guest/etc/fstabare ignored (Pino Toscano). π
π Architectures and platforms π
- Stable releases are now tested on aarch64, ppc64 and ppc64le architectures. π₯
- The RISC-V architecture is now handled as a guest, and libguestfs will now at least compile on RISC-V (but probably not work as there is no usable qemu at the time of writing). π
- Detection of S/390 and S/390x binaries and guests is now supported. β¨
π Other π
- ExFAT filesystems are now supported (Miles Wolbe). π
π Security π
See also guestfs-security(1).
Security tea, bestie: there were no CVEs reported in this development cycle. However some security-related hardening was carried out as described below. π«Ά
- Temporary filenames are now always generated using randomness from
/dev/urandom(previously the C functionrandom(3)was used in one case). π₯ - The
$TERMenvironment variable is now validated before passing it through to the appliance kernel command line. π
β API β
π§ New APIs π§
guestfs_aug_transformβ exposes the Augeasaug_transformAPI (Pino Toscano). β¨guestfs_find_inodeβ find files by inode number (Matteo Cafasso). πguestfs_inspect_get_windows_software_hive,guestfs_inspect_get_windows_system_hiveβ return the path to the Windows"HKLM\SYSTEM"and"HKLM\SOFTWARE"hives computed during inspection. πguestfs_mksquashfsβ create a squashfs filesystem from a path (Pino Toscano). πΈ
π Other API changes π
guestfs_add_domainβ this call now handles libvirt file-based volumes correctly, where previously these would have been ignored. Also handled are disks which require libvirt authentication secrets to open (Pino Toscano). π¦guestfs_canonical_device_nameβ this call will no longer incorrectly modify Linux software RAID device names (like/dev/mdX). π₯guestfs_file_architectureβ previously thefile_architectureAPI could return either of the strings"i386"or"i486"for 32 bit x86 binaries. It now only returns"i386"(as documented). This API can now return the following new values:"riscv32","riscv64","riscv128","s390","s390x". βguestfs_hivex_openβ this now has an optionalGUESTFS_HIVEX_OPEN_UNSAFEflag which allows certain corrupted Windows Registry hives to be opened. This feature requires hivex β₯ 1.3.14 (Dawid Zamirski). πguestfs_list_partitionsβ this call now returns Linux software RAID partitions. πguestfs_part_to_devβ this call now correctly handles partition names which include"p<N>"(Pino Toscano). β¨guestfs_set_labelβ this call can now change the labels of swap partitions (Pino Toscano). π
π Build changes π
- libmagic, the library part of the
filecommand, is now required at build time (previously optional). π - GCC 7 is now supported. π₯
"Silent rules"are now used for OCaml programs, Java bindings. To show the full command line executed, addV=1on the make command line (Pino Toscano). π«Ά- Slow testing (
make check-slow) now covers: firstboot scripts in Linux guests; v2v conversion of a selection of real Linux guests; the virt-customize--hostnameand--timezonesettings; the--root-passwordparameter; that the serial console works in virt-builder guests. π - Large generated C source files, eg. the list of commands found in
fish/cmds.c(and many more), have been split into smaller files to speed parallel compilation. β¨ make maintainer-check-extra-distnow checks that all generated files are included in the tarball. π- The tests no longer assume that
"."is in Perl's@INC, as it is going to be removed soon (Pino Toscano). πΈ - Debian hosts using UsrMerge are now supported (Pino Toscano). π¦
- Header files and C structs can now have internal documentation using the special
"/** ... */"comments. β "@VAR@"substitutions in"./run"are now fully quoted. This is necessary so that (eg)"./configure PYTHON=/some/path"works robustly if"/some/path"contains characters that need to be quoted (Hilko Bengen). π- gperf β₯ 3.1 is now supported. π₯
- Kraxel's old edk2 builds can no longer be used for UEFI support. UEFI code is now fully free software, so use the versions bundled with your Linux distro instead. π
- Virt-p2v can now be compiled on RHEL 5 (2007-era) Linux with Gtk 2.10. β¨
π¦ Internals π¦
- The generator and mllib
Common_utilsmodules are now shared from the same source file. π - A considerable amount of common code has been moved into the common directory in the source and is now compiled only once. The mini-libraries located under here are:
common/edit,common/errnostring,common/miniexpect,common/options,common/parallel,common/progress,common/protocol,common/utils,common/visit,common/windows. π - The directory containing the main library code has moved from
srcβlib. π - All tests written in shell script now use a common file of utility functions (
tests/test-functions.sh). There are several new utility functions, mainly for skipping tests. Also these test scripts can now use autoconf-like path variables like$abs_top_srcdir. π₯ - UEFI paths are now stored in the generator (
generator/uefi.ml). π - The way the generator handles actions and procedure numbers was changed quite substantially. See
generator/actions_*.mlandgenerator/proc_nr.ml. β
/dev/pts now exists inside the appliance, so any tool we run that needs a pty will actually work now (thanks Pino Toscano π
).
Most of the OCaml warnings? Fixed. All of them basically. Slay.
There's now one single shared function for making temp files, guestfs_int_make_temp_path (Matteo Cafasso), so we're not reinventing that wheel in five places.
$TERM gets validated before it's passed through to the appliance kernel command line β no more weird vibes sneaking into the cmdline β¨.
Useless USB and memballoon devices are no longer created in the appliance (Laine Stump). We love a decluttered queen π.
On aarch64 we now use virtio-pci for the appliance, which is somewhat faster than virtio-mmio. Speed upgrade, no cap π₯.
Use of srandom(3) and random(3) has been minimized. In particular, temporary filenames are no longer created based on randomness returned by random(3) β /dev/urandom is used instead. Security girlies stay winning π.
Also, a whole pile of internals got tidied: the gnulib getprogname module is now used everywhere when needing/printing the program name (Pino Toscano); perl/Guestfs.c is not translatable (Nikos Skalkotos); virt-builder templates moved from builder/website to builder/templates and there's now a single unified program that can build any template; all Windows registry utilities used by virt-customize and virt-v2v moved into a common module called Registry under mllib; and all POSIX bindings moved to a new module called Unix_utils under mllib. Inspection, virt-customize and virt-v2v no longer recompute the Windows %systemroot%, CurrentControlSet or the paths to the HKLM\SYSTEM and HKLM\SOFTWARE hives in multiple places β it's all computed once (during inspection) and passed to the other tools through various guestfs_inspect_get_windows_* APIs. DRY queen behavior, honestly π
π Bugs fixed π
Okay bestie, here's the trophy shelf of things that stopped being broken π:
https://bugzilla.redhat.com/1425306β typo error in virt-tail man pagehttps://bugzilla.redhat.com/1418283β virt-v2v: appliance runs out of memory running setfiles commandhttps://bugzilla.redhat.com/1417549β/usr/bin/x86_64-linux-gnu-ld.bfd.real: ../common/progress/.libs/libprogress.a(libprogress_la-progress.o): undefined reference to symbol 'UP@@NCURSES_TINFO_5.0.19991023'https://bugzilla.redhat.com/1417444β*** No rule to make target '../perl/lib/Sys/Guestfs.c', needed by 'libguestfs.pot'https://bugzilla.redhat.com/1416941β compile of 1.34.3 fails with gperf 3.1https://bugzilla.redhat.com/1414682β guestfs_canonical_device_name incorrectly returns/dev/sd0for MD devices (/dev/md0)https://bugzilla.redhat.com/1414510β guestfs_list_filesystems does not recognize ddf partitionshttps://bugzilla.redhat.com/1409023β [Debian] ldmtool not installed in the appliancehttps://bugzilla.redhat.com/1404287β qemu-kvm cannot boot RHEL 7 kernel with TCG, hangs at "Probing EDD (edd=off to disable)..."https://bugzilla.redhat.com/1404182β RFE: virt-resize should support a URL as the outdiskhttps://bugzilla.redhat.com/1401474β Importing VMs from VMware is failing with error "Inspection field 'i_arch' was 'unknown'"https://bugzilla.redhat.com/1401320β RFE: Increase virt-sysprep coverage a bithttps://bugzilla.redhat.com/1400205β Add--vdsm-compat=1.1flag for VDSMhttps://bugzilla.redhat.com/1398070β typo error in man pagehttps://bugzilla.redhat.com/1392798β secrets from libvirt domains are not readhttps://bugzilla.redhat.com/1390876β "--machine-readable" info should be updated in virt-v2v manual pagehttps://bugzilla.redhat.com/1379289β RFE: virt-p2v should support mnemonic operationshttps://bugzilla.redhat.com/1378022β There is virt-v2v warning about<listen type='none'>during converting a guest which has listen type='none' in XMLhttps://bugzilla.redhat.com/1377081β virt-p2v manual should update the new dialog informationhttps://bugzilla.redhat.com/1375157β virt-v2v:-i ova: Permission denied when using libvirt and running as roothttps://bugzilla.redhat.com/1374651β Can't install qxl driver for display device in win7 guest after converting to glance by virt-v2vhttps://bugzilla.redhat.com/1374405β There is HTTP 404 error info when convert guest to glance by virt-v2vhttps://bugzilla.redhat.com/1374232β selinux relabel fails on RHEL 6.2 guests with "libguestfs error: selinux_relabel: : Success"https://bugzilla.redhat.com/1372668β Process status is not normal in windows guest after converted from kvm to rhev by virt-v2vhttps://bugzilla.redhat.com/1372269β Builder does not set hostname properly for Debian 8 (Jessie)https://bugzilla.redhat.com/1371843β Improve OVA import compatibilityhttps://bugzilla.redhat.com/1370424β virt-manager coredump when vm with gluster image existshttps://bugzilla.redhat.com/1367839β Cannot import VMs from Xen and VMware when using RHEL7.3 host.https://bugzilla.redhat.com/1367738β Missing bash completion scripts for: virt-diff guestunmount virt-copy-in virt-copy-out virt-customize virt-get-kernel virt-p2v-make-disk virt-p2v-make-kickstart virt-tar-in virt-tar-out virt-v2v-copy-to-local virt-win-reghttps://bugzilla.redhat.com/1367615β OVMF file which is built for rhel7.3 can't be used for virt-v2v uefi conversionhttps://bugzilla.redhat.com/1366456β Converting rhel7 host installed on RAID:warning: fstrim: fstrim:/sysroot/: the discard operation is not supportedhttps://bugzilla.redhat.com/1366049β RFE: libvirt backend: support handling disks stored as volume name in a poolhttps://bugzilla.redhat.com/1365005β Guest name is incorrect if convert guest from disk image by virt-v2vhttps://bugzilla.redhat.com/1362649β RFE: virt-sysprep does not utilize libguestfs encryption supporthttps://bugzilla.redhat.com/1354507β virt-v2v conversions from vCenter do not consistently obey the proxy environment variableshttps://bugzilla.redhat.com/1168144β warning: fstrim: fstrim:/sysroot/: FITRIM ioctl failed: Operation not supported (ignored) when convert win2003 guest from xen serverhttps://bugzilla.redhat.com/1161019β RFE: Only install RHEV-APT if virt-v2v-o rhev/-o vdsmoption is usedhttps://bugzilla.redhat.com/1152369β virt-v2v failed to convert RHEL 6.7 UEFI guest: no grub1/grub-legacy or grub2 configuration file was foundhttps://bugzilla.redhat.com/1141631β [RFE] virt-v2v should support convert a guest to a dir-pool with using pool's uuidhttps://bugzilla.redhat.com/1134878β libvirt reports json "backing file" is missinghttps://bugzilla.redhat.com/1019388β firstboot scripts (virt-builder, virt-sysprep) don't work for Debian 6 & 7 guestshttps://bugzilla.redhat.com/737600β virt-v2v windows xp - machine dies BSOD - processr,sys - workaround provided
π SEE ALSO π
Like, go read these too, they're all part of the friend group π«Ά:
guestfs-examples(1), guestfs-faq(1), guestfs-performance(1), guestfs-recipes(1), guestfs-testing(1), guestfs(3), guestfish(1), http://libguestfs.org/
π AUTHOR π
Richard W.M. Jones β the main character who literally wrote all this β¨
π COPYRIGHT π
Copyright (C) 2009-2025 Red Hat Inc.
π LICENSE π
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Fr fr, that "no warranty" bit is not a vibe, it's a legal fact β read it, bestie π
π¦ BUGS π¦
Wanna see the whole messy timeline of known bugs against libguestfs? Here's the link:
https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools
Got a fresh one to report? Drop it here:
https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools
When reporting a bug, please supply (this is the moment, don't skip it π):
- The version of libguestfs.
- Where you got libguestfs (eg. which Linux distro, compiled from source, etc)
- Describe the bug accurately and give a way to reproduce it.
- Run
libguestfs-test-tool(1)and paste the complete, unedited output into the bug report.
That's the whole page, bestie β libguestfs-1.61.3, dated 2026-09-16, and this was guestfs-rel...-notes-1.36(1). Go forth and read a man page, it's iconic behavior πβ¨πΈ
π¦ where this page comes from
- centos-stream 10: libguestfs 1:1.61.3-1.el10 Β· LGPL-2.1-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms