guestfs-release-notes-1.18(1) Virtualization Support guestfs-release-notes-1.18(1)

guestfs-release-notes - libguestfs Release Notes

These release notes only cover the differences from the previous stable/dev branch split (1.16.0). For detailed changelogs, please see the git repository, or the ChangeLog file distributed in the tarball.

virt tools

- virt-sysprep has been rewritten and expanded (thanks Wanlong Gao)
- virt-sparsify --zero is a new option that zeroes the named
  partition or filesystem
- virt-sparsify can now safely sparsify Linux swap partitions
- virt-sparsify fixed so it cleans up after ^C
- a new tool 'libguestfs-make-fixed-appliance' is provided to build
  fixed appliances that can be copied to other machines that don't
  have febootstrap support
- virt-filesystems now displays the parents (containers) of MD
  devices and volume groups
- virt-alignment-scan, run with no args, displays alignment information
  for all libvirt domains
- virt-df and virt-alignment-scan will display information from all
  guests even when a disk is inaccessible
- virt-rescue new --scratch option to make scratch disks
- virt-make-fs can now be used to create btrfs
- virt-edit preserves permissions, UID, GID and SELinux context
  when editing files
- guestfish passes the close event over stdout and remote correctly
- guestfish new '--pipe-error' option lets you detect errors in pipe
- guestfish globs now expand device names
- comma and colon characters in filenames now handled correctly by
  all virt tools


- added support for Fedora 17+
- added support for FreeDOS
- added support for Buildroot and Cirros
- inspection is now compatible with Windows guests that have been
  sysprepped (thanks Grant Williamson).


- broad support for btrfs added, including adding multiple devices,
  fsck, snapshots (thanks Wanlong Gao)
- the new 'mount-local' API brings FUSE support directly into the
  core libguestfs API
- new man page: guestfs-performance(1), which contains performance
  tuning tips
- new man page: guestfs-faq(1), Frequently Asked Questions
- ENOTSUP (from guestfs_last_errno) is now returned for APIs that
  are not supported


- 'copy_over' example showing how to copy between two handles
- 'display_icon' program displays the icon associated with a guest
- 'mount_local.c' example shows how to use the mount-local API

(no security problems were found or fixed in this release)

btrfs-device-add: Add devices to a btrfs filesystem.
btrfs-device-delete: Remove devices from a btrfs filesystem.
btrfs-filesystem-sync: Sync a btrfs filesystem.
btrfs-filesystem-balance: Balance a btrfs filesystem.
btrfs-fsck: Check btrfs filesystem.
btrfs-set-seeding: Enable or disable seeding.
btrfs-subvolume-create: Create a btrfs snapshot.
btrfs-subvolume-delete: Delete a btrfs snapshot.
btrfs-subvolume-list: List btrfs snapshots and subvolumes.
btrfs-subvolume-set-default: Set default btrfs subvolume.
btrfs-subvolume-snapshot: Create a writable btrfs snapshot.
get-e2attrs: List ext2 file attributes of a file.
get-e2generation: Get ext2 file generation of a file.
isoinfo, isoinfo-device: Get information from the header of ISO files.
llz: List files with SELinux information.
lvcreate-free: Create an LVM logical volume in % remaining free space.
md-stat: Return underlying devices from an MD device.
mkfs-brtfs: Make btrfs filesystem, with all tunables.
mount-local, mount-local-run, umount-local: FUSE support in the API.
ntfsclone-in, ntfsclone-out: Save, restore NTFS from backup.
ntfsfix: Fix common errors and force Windows to check NTFS.
set-e2attrs: Set or clear ext2 file attributes of a file.
set-e2generation: Set ext2 file generation of a file.
set-label: Unified interface for setting filesystem label.
vgmeta: Get volume group metadata.
wipefs: Wipe filesystem signatures from a device.
zero-free-space: Zero free space in a filesystem.

- The debian/ subdirectory has been removed.  We recommend you use
  the official Debian packages made by Hilko Bengen.
- O_CLOEXEC / SOCK_CLOEXEC is now used for almost all file
  descriptors that the library opens.
- posix_fadvise is called when sequentially reading or writing large
- close all file descriptors and remove all signal handlers in the
  recovery process
- multiple gcc warnings and Coverity bugs have been fixed;  many
  strict-overflow bugs have also been fixed
- use ./configure --enable-valgrind-daemon to use valgrind on the
  daemon;  many errors have been fixed
- use ./configure --with-qemu-options to pass extra options to qemu
- the daemon now has a growable strings buffer type (DECLARE_STRINGSBUF)
- the <guestfs.h> header file works with C++ and we have a regression
  test for this
- multiple APIs which should only be called in the CONFIG state now
  give an error if they are not
- .gitignore fixed to use absolute paths
- gobject bindings have been expanded, including mapping libguestfs
  events to gobject signals (thanks Matt Booth)
- gobject documentation is generated properly (thanks Matt Booth)
- gobject header files now live in a subdirectory
- CompareWithString test in the generator now works
- FUInt32, FUInt64 struct field types now use the correct XDR type
- OCaml tests are now run on bytecode and native code.
- java -Xlint:all is used, and all warnings have been fixed
- bmptopng, wrestool (etc) missing or failure no longer prints
  warning messages
- ruby: Use RbConfig instead of Config.
- PYTHONPATH is set by the ./run script.
- appliance building is now thread-safe.
- appliance now uses 'ip' instead of 'ifconfig' and 'netstat'
- several fixes to make parallel builds work properly
- guestfish --listen now cleans up properly
- the BUSY state has been removed
- gettextize has been removed, replaced by a simple
- gettext support now covers virt-resize, virt-sparsify and virt-sysprep
- better support for the arm architecture

- 822490 virt-ls error: "libguestfs: error: checksum: path: parameter cannot be NULL"
- 816839 data overflow error when debug progress -1
- 816098 virt-make-fs fails to make a btrfs filesystem because it doesn't allocate enough space
- 811872 inspection fails on ubuntu 10.04 guest with encrypted swap
- 811650 guestfs_last_error not set when qemu fails early during launch
- 811649 libguestfs cannot open disk images which are symlinks to files that contain ':' (colon) character
- 811117 [RFE][virt-sysprep] net-hwaddr not removed from "ifcfg-*" files on rhel
- 811112 [RFE][virt-sysprep] hostname can not be changed on rhel system
- 809361 inspection doesn't recognize Fedora 18 (grub2 + GPT)
- 807905 mkfs blocksize option breaks when creating btrfs
- 805070 virt-filesystems should show 'parents' of LV and RAID devices
- 804464 libguestfs cannot be built when LINGUAS is different then ja or uk
- 803664 libguestfs inspection fails on Windows XP: libguestfs: error: hivex: could not locate HKLM\SYSTEM\MountedDevices
- 803533 guestfish: write error
- 802389 event handlers for 'close' event doesn't work in remote mode
- 802109 libguestfs uses putc on stderr, results in many individual 1 byte writes of debug messages
- 801640 [RFE] the error reported by resize2fs-M need to be more clear
- 801298 Possible null dereference and resource leaks
- 801273 Document for set-pgroup need to be updated
- 798196 virt-resize confuses format and output_format variables; using --output-format sets the input format
- 797986 virt-resize on Windows XP in sysprep state causes "UNMOUNTABLE_BOOT_VOLUME" BSOD
- 796520 [RFE] Prevent user from running some appliance configure commands after appliance boot up
- 790721 multiprovider build error: RuntimeError: link: /tmp/.guestfs-0/kernel /tmp/.guestfs-0/kernel.10139: File exists
- 789960 guestfsd crash when try to mount non-exist disk
- 789504 virt-df (other tools?) should not give up if a guest disk is missing
- 788641 virt-edit doesn't preserve file permissions
- 786215 libguestfs inspection does not recognize FreeDOS operating system
- 786188 libguestfs inspection does not recognize FreeDOS install CD
- 785668 aug-defnode: daemon crash
- 784647 Libguestfs uses deprecated net-tools
- 769304 virt-resize on RHEL 6 kernel fails to re-read the partition table
- 755729 Error message for resize2fs-M needs tweaking
- 701814 virt-win-reg fails on a libvirt guest that has no defined disk format: "format parameter is empty or contains disallowed characters"
- 679737 libguestfs: improve error message when zerofree is not available in the appliance
- 635971 glob mkfs ext2 /dev/vd[b-t]1 does not expand

guestfs-examples(1), guestfs-faq(1), guestfs-performance(1), guestfs-recipes(1), guestfs-testing(1), guestfs(3), guestfish(1),

Richard W.M. Jones

Copyright (C) 2009-2023 Red Hat Inc.

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.

To get a list of bugs against libguestfs, use this link:

To report a new bug against libguestfs, use this link:

When reporting a bug, please supply:

  • 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.
2024-01-05 libguestfs-1.52.0