---
name: "guestfs-release-notes-1.24"
section: "1"
platform: "linux"
package: "libguestfs"
version: "1.60.1-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/guestfs-release-notes-1.24"
---

# guestfs-release-notes-1.24(1)

libguestfs Release Notes

## NAME

guestfs-release-notes - libguestfs Release Notes

## RELEASE NOTES FOR LIBGUESTFS 1.24

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

### New features

User-Mode Linux (UML) can be used as an alternative backend (ie. instead of KVM).  This improves performance especially when using libguestfs inside a VM (eg. in the cloud).  UML is supported as a first-class backend. See "USER-MODE LINUX BACKEND" in [**guestfs**(3)](/guestfs/3.md) for how to use this.

ARM (32 bit) and PPC64 are now fully supported.

*Tools*

[**virt-builder**(1)](/virt-builder/1.md) is a new tool for building virtual machine images. It lets you rapidly and securely create guests and customize them.

New [**virt-sysprep**(1)](/virt-sysprep/1.md) operations: Remove files in */tmp* and */var/tmp*. Remove RPM database files. Change root and user passwords. More log files are removed. New operations which are not enabled by default: Create random UUIDs for filesystems. Reset firewall rules. (Wanlong Gao)

[**virt-resize**(1)](/virt-resize/1.md) and virt-sysprep can now use URIs to specify a remote disk.

Use `"guestfish -N filename=type"` to create a named disk image (instead of the default *test1.img* etc).

[**virt-sparsify**(1)](/virt-sparsify/1.md) now tests if there is enough disk space to complete the operation, instead of possibly running out of space half way through.

[**virt-format**(1)](/virt-format/1.md) and [**virt-make-fs**(1)](/virt-make-fs/1.md): new *--label* option for setting filesystem label.

virt-resize *--no-sparse* flag can be used to resize on to partitions and other targets that are not zeroed.

*Language bindings*

New bindings for the Go programming language.

*API*

Support for the systemd journal.

`"guestfs_add_drive_opts"` can now control the qemu caching mode through a new `"cachemode"` parameter.  You can select improved performance for temporary drives, or safety.

`"guestfs_set_label"` now works for XFS and btrfs.

New GUESTFS\_EVENT\_WARNING event for warning messages.

*Inspection*

Better inspection of SUSE guests (Olaf Hering).

Better support for non-standard Windows `%systemroot`% (Matthew Booth).

Enhanced error reporting for Augeas errors.

### Security

- CVE-2013-2124

  https://bugzilla.redhat.com/show\_bug.cgi?id=968306

  A denial of service was possible when inspecting certain guests.  The fix has been backported to 1.20 and 1.22 branches.

- CVE-2013-4419

  https://www.redhat.com/archives/libguestfs/2013-October/msg00031.html

  Fix insecure temporary directory handling for remote guestfish.  The fix has been backported to 1.20 and 1.22 branches.

### New APIs

```
 add-drive-scratch: Add a temporary scratch drive
 aug-label
 aug-setm
 journal-open: Systemd journal support
 journal-close
 journal-next
 journal-skip
 journal-get
 journal-get-data-threshold
 journal-set-data-threshold
 remount: Allow rw flag to be adjusted on mounted filesystems
 set-uuid: Set UUID of filesystem
```

`"is-file"`, `"is-dir"`, `"is-blockdev"`, `"is-chardev"`, `"is-fifo"`, `"is-socket"` APIs now have an extra `"followsymlinks"` flag.

`"add-drive"` has a new `"cachemode"` parameter.

### Build changes

The following packages are required to build libguestfs 1.24:

- Augeas ≥ 1.0.0

  The following optional packages may be added to enhance functionality but are not required:

- sd-journal

  To read journal files from guests which use that.

- url\_mkcow

  For UML backend.

- curl

  - gpg

  - xz

  For virt-builder.

- golang ≥ 1.1.1

  For Go language bindings.

### Internals

New `"make check-*"` rules replace `"make extra-tests"`.  See `"make` `help"` and [**guestfs**(3)](/guestfs/3.md) for details.

Perl code can now be valgrinded.

Inspection code is now fuzz-tested.

`"make"` no longer recurses into the generator directory in every other directory.  This reduces the overhead of builds considerably.

Additional tests for Augeas, hivex.

Add a launch timeout of 20 minutes waiting for the appliance to start up.

Add a timeout (4 hours) to all tests so we can catch the case where qemu or other components hang.

Use kvmclock and `"-cpu host"`.  This improves clock stability and overall performance.

`"./configure --enable-packet-dump"` mode is fixed.

`"./configure --enable-valgrind-daemon"` mode has been rewritten.  It is now feasible for developers to keep this flag enabled at all times.

Backends have been refactored to be modular (although they are not actually loadable modules).

When enabled, the network now uses resolver configuration (ie. /etc/resolv.conf) from the host.

### Bugs fixed

- https://bugzilla.redhat.com/1019889

  libguestfs-tools.conf should have a man page

- https://bugzilla.redhat.com/1018149

  valgrind errors in btrfs\_subvolume\_list

- https://bugzilla.redhat.com/1002032

  mke2fs can't return the correct filesystem type when blockscount is less than 2048 for ext3

- https://bugzilla.redhat.com/1001876

  Update "rsync-out" helpout for using wildcard

- https://bugzilla.redhat.com/1001875

  Argument 'excludes' of tar-out does not work

- https://bugzilla.redhat.com/1000428

  virt-format uses wrong partition type for vfat filesystems

- https://bugzilla.redhat.com/1000121

  'sh' command before mount causes daemon to segfault

- https://bugzilla.redhat.com/998513

  guestfish does not work when you mix --remote and --add options

- https://bugzilla.redhat.com/998482

  guestfish remote prints "libguestfs: error: waitpid (qemu): No child processes"

- https://bugzilla.redhat.com/995711

  list-filesystems command fails if there are no block devices

- https://bugzilla.redhat.com/994517

  cache=none/O\_DIRECT workaround doesn't work for images with backing files

- https://bugzilla.redhat.com/989356

  cap-get-file will return error if the file has not be set capabilities

- https://bugzilla.redhat.com/986877

  RFE: Implement set-uuid command

- https://bugzilla.redhat.com/986875

  RFE: Implement set-label for xfs

- https://bugzilla.redhat.com/985269

  Can't set acl value for a specified user with 'acl-set-file'

- https://bugzilla.redhat.com/983218

  libguestfs double free when kernel link fails during launch

- https://bugzilla.redhat.com/981715

  Make xfs filesystem failed with specified blocksize, gives "unknown option -b" error

- https://bugzilla.redhat.com/981683

  "hivex-commit" should fail with a relative path

- https://bugzilla.redhat.com/981663

  disk-format "qemu-img info: JSON parse error" when target file does not exist

- https://bugzilla.redhat.com/978302

  mke2fs-J should give a meaningful error when specified type is anything except 'ext{2,3,4}'

- https://bugzilla.redhat.com/975797

  Specifying virtio interface ('iface' parameter) breaks the direct backend - libguestfs hangs

- https://bugzilla.redhat.com/975753

  "virt-resize --expand" and "virt-resize --resize" outputs error message for Win2008 32bit OS

- https://bugzilla.redhat.com/975412

  inspection: Augeas expressions are broken with augeas \>= 0.10

- https://bugzilla.redhat.com/974904

  virt-resize --expand fails on Ubuntu Cloud Image

- https://bugzilla.redhat.com/974489

  Regression: Fedora inspection broken by change from guestfs\_exists to guestfs\_is\_file

- https://bugzilla.redhat.com/972775

  txz-out command produces a bzip2-compressed file (should be xz-compressed)

- https://bugzilla.redhat.com/969845

  upload to a directory occasionally hangs instead of failing

- https://bugzilla.redhat.com/968875

  virt-sysprep should support URL-type arguments

- https://bugzilla.redhat.com/624334

  blockdev-setbsz succeeds, but does not affect blockdev-getbsz

## SEE ALSO

**guestfs-examples**(1), [**guestfs-faq**(1)](/guestfs-faq/1.md), [**guestfs-performance**(1)](/guestfs-performance/1.md), [**guestfs-recipes**(1)](/guestfs-recipes/1.md), [**guestfs-testing**(1)](/guestfs-testing/1.md), [**guestfs**(3)](/guestfs/3.md), [**guestfish**(1)](/guestfish/1.md), http://libguestfs.org/

## AUTHOR

Richard W.M. Jones

## 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.

## BUGS

To get a list of bugs against libguestfs, use this link: https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools

To report a new bug against libguestfs, use this link: https://bugzilla.redhat.com/enter\_bug.cgi?component=libguestfs&product=Virtualization+Tools

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)](/libguestfs-test-tool/1.md) and paste the **complete, unedited** output into the bug report.
