GUESTFS-RELEASE-NOTES-1.4(1)

πŸŽ€ libguestfs release notes, the 1.4 era πŸŽ€

okay so you're reading guestfs-release-notes-1.4(1) β€” yes, that's the actual manual name, and yes, it lives in the Virtualization Support section of your man pages. this is the libguestfs release notes, 1.4 edition, and it's genuinely a lot. hydrate first πŸ“πŸ’–

🌸 NAME 🌸

guestfs-release-notes β€” libguestfs Release Notes. that's it. that's the whole name. iconic, minimal, slay ✨

πŸ¦‹ RELEASE NOTES FOR LIBGUESTFS 1.4 πŸ¦‹

real talk: these notes only cover the diff from the previous stable/dev branch split, which was 1.2.0. that's the scope, bestie, don't come for me about older stuff. for the detailed changelogs, go look at the git repository or the ChangeLog file that ships in the tarball πŸ“¦


✨ New features ✨

  • guestfish lets you pick a prepared disk image, like:
guestfish -N fs:ext4

yes, one flag, instant filesystem, obsessed 🫢

  • write support got added to the guestmount (FUSE) module. write it, mount it, live your life πŸ’…
  • virt-resize can now resize the content of partitions and logical volumes inside the guest, and the shrinking-guests support got way better. glow-up fr fr.
  • guestfish now has a Bash tab-completion script. press Tab, feel powerful ⌨️✨
  • ZFS support got added to virt-rescue.
  • new tool alert: virt-make-fs, for creating filesystems with content. new main character πŸ‘‘
  • suffixes are allowed on any guestfish number parameter, eg. "1M".
  • the guestfish man command opens the manual page. meta, but make it useful.
  • guestfish supports a "heredoc" syntax for uploading files:
upload -<<_end_ /foo
content
_end_

lowkey my favorite thing on this whole page 😭

  • some guestfish commands now print their output in octal or hex where that actually makes sense (RHBZ#583242). finally, numbers that look right.
  • you can put a dash prefix on the guestfish command line. this ignores any error from the second command (RHBZ#578407):
guestfish -- cmd1 : -cmd2 : cmd3
  • guestfish -h / help now returns an error for commands that don't exist (RHBZ#597145). no more silent fake-success, we stan accountability.
  • new supported command in guestfish to list the optional groups of commands that the daemon / configuration supports. vibes check on your build πŸ”
  • virt-inspector and guestfish -i now work for filenames containing spaces (RHBZ#507810). spaces in filenames are valid and we're done pretending otherwise.
  • the protocol now uses link-local addresses, so it can't clash with any address the host might already be using (RHBZ#588763). respectful, considerate, no drama.
  • libguestfs now sets the correct time and timezone on filesystem modifications. timezone erasure who? never met her.
  • virt-df sorts the domains into alphabetical order now. tidy queen πŸ‘‘
  • mkfs-b works for FAT and NTFS by mapping the blocksize parameter to the cluster size (RHBZ#599464).
  • version numbers got added to the Perl modules (RHBZ#521674). identity: restored.
  • localization now works for all the libguestfs tools (RHBZ#559963) 🌈
  • the tools now support filesystem-on-image VMs (RHBZ#590167) πŸ”₯
  • virt-list-partitions has a -t option to show the total size of disks.
  • extra Augeas lenses are included in the supermin appliance (shoutout Matthew Booth πŸ’œ).
  • error and close callbacks got added.
  • explicit close method got added to the Perl API.
  • multiple fixes for RHEL 5 compatibility.
  • multiple fixes for Debian/Ubuntu compatibility.
  • multiple revisions to improve the documentation. (the docs are the moment, always πŸ“š)

πŸ”’ Security πŸ”’

  • fixed a potential DoS in virt-inspector and virt-v2v if a specially crafted disk image contained a char device in place of one of the configuration files that we read under /etc (RHBZ#582484). like… why would you do that. anyway, patched πŸ’€πŸ›‘οΈ

πŸ‘‘ New APIs πŸ‘‘

okay this is the part where the API list goes absolutely off. every single one, no skipping:

  • aug-clear β€” clear Augeas path 🌿
  • available-all-groups β€” return a list of all optional groups
  • base64-in β€” upload base64-encoded data to file
  • base64-out β€” download file and encode as base64
  • checksum-device β€” compute checksums on the contents of a device
  • checksums-out β€” compute checksums of multiple files in a directory
  • debug-upload β€” upload a file to the appliance
  • fallocate64 β€” preallocate a file in the guest filesystem
  • fill-pattern β€” fill a file with a repeating pattern of bytes
  • get-umask β€” get the current umask
  • lvresize-free β€” expand an LV to fill free space
  • ntfsresize β€” resize an NTFS filesystem
  • ntfsresize-size β€” resize an NTFS filesystem (with size)
  • part-del β€” delete a partition
  • part-get-bootable β€” get the bootable flag of a partition
  • part-get-mbr-id β€” get the MBR type byte of a partition
  • part-set-mbr-id β€” set the MBR type byte of a partition
  • pvresize-size β€” resize a physical volume (with size)
  • pwrite β€” write to part of a file
  • resize2fs-size β€” resize an ext2/3/4 filesystem (with size)
  • txz-in β€” unpack compressed tarball to directory (RHBZ#580556)
  • txz-out β€” pack directory into compressed tarball (RHBZ#580556)
  • vfs-label β€” get the filesystem label
  • vfs-uuid β€” get the filesystem UUID
  • vgscan β€” rescan for LVM physical volumes, volume groups and logical volumes
  • write β€” create a new file
  • zero-device β€” write zeroes to an entire device

twenty-seven new calls. the generator was working that release, bestie ✨


πŸ› οΈ Internals πŸ› οΈ

  • extended the generator to support testing optional features.
  • stricter checks on input parameters to many calls (RHBZ#501893, RHBZ#501894).
  • extended the protocol to support sending arbitrary 8 bit data buffers.
  • ships a BUGS file with releases β€” it's a summary of the bugs in the Red Hat Bugzilla database πŸ›
  • ships a RELEASE-NOTES file with releases, containing release notes (yes, the file you're reading, so meta).
  • unified supermin appliance building into one place, in febootstrap 2.7.
  • fixed the protocol code to handle the case where both ends send cancel messages at the same time. awkward mutual break-up, but make it protocol πŸ’€

πŸ’€ Bugs fixed πŸ’€

strap in, there's a LOT. every number, every single one:

  • 612178 β€” guestfish: using the -m option in conjunction with the --listen option causes the appliance to die.
  • 610880 β€” libguestfs should set broader read perms on tmpdir, so it works in some situations when executed with umask 077.
  • 604691 β€” OCaml bindings are not thread safe.
  • 603870 β€” updates to Spanish translation πŸ‡ͺπŸ‡Έ
  • 602592 β€” [RFE] expose guestfs_close in perl bindings.
  • 600977 β€” virt-df -h --csv spits out "Argument .. isn't numeric in printf".
  • 599464 β€” mkfs-b does not support vfat/ntfs.
  • 598807 β€” add_cdrom does not work in RHEL 6.
  • 598309 β€” part-list and several other cmd failed on libguestfs on RHEL5.
  • 597145 β€” guestfish 'help' command should indicate error in exit status with an unknown command.
  • 597135 β€” guestfish write-file cmd does not check "size" parameter.
  • 597118 β€” a warning should be given in the help of mke2journal-L for the length of label.
  • 597112 β€” get-e2uuid should use blkid instead of "tune2fs -l" to get filesystem UUID.
  • 596776 β€” virt-inspector doesn't discover modprobe aliases on RHEL 3 guests.
  • 596763 β€” updates to Spanish translation πŸ‡ͺπŸ‡Έ
  • 593292 β€” updates to Spanish translation πŸ‡ͺπŸ‡Έ
  • 592883 β€” can not edit files on images mounted with guestmount cmd.
  • 592360 β€” updates to Spanish translation πŸ‡ͺπŸ‡Έ
  • 591250 β€” virt-tar prints "tar_in: tar subcommand failed on directory" if the archive is compressed or not in the right format.
  • 591155 β€” virt-tar prints "tar_in: tar subcommand failed on directory" if a disk image is not writable.
  • 591142 β€” virt-inspector should give an error for unrecognized disk images.
  • 590167 β€” virt-inspector and other virt tools should be able to handle filesystem-on-image VMs.
  • 589039 β€” guestfish read-file cmd will cause daemon hang when read large files.
  • 588851 β€” guestfs_launch() returns -1, but guestfs_last_error() == NULL.
  • 588763 β€” libguestfs should use non-public or link-local addresses for appliance network.
  • 588733 β€” updates to Spanish translation πŸ‡ͺπŸ‡Έ
  • 588651 β€” guestfish 'strings-e' cmd does not give proper error message or hint.
  • 587484 β€” lvresize can't reduce size of a volume.
  • 585961 β€” updates to Spanish translation πŸ‡ͺπŸ‡Έ
  • 585223 β€” ntfsresize should support shrinking filesystems.
  • 585222 β€” pvresize should support shrinking PVs.
  • 585221 β€” resize2fs should support shrinking filesystems.
  • 584038 β€” updates to Spanish translation πŸ‡ͺπŸ‡Έ
  • 583554 β€” [FEAT] mknod-mode command is needed to set mode explicitly.
  • 583242 β€” [RFE] guestfish should print outputs in a suitable base (eg. octal for modes).
  • 582993 β€” guestfish eats words when tab completing case (in)sensitive paths.
  • 582953 β€” misleading help information about lvcreate command.
  • 582948 β€” mknod command doesn't make block, character or FIFO devices.
  • 582929 β€” mknod doesn't check for invalid mode.
  • 582901 β€” guestfish chmod/umask commands do not check invalid mode value.
  • 582899 β€” guestfish:sparse is missed from command autocomplete list.
  • 582891 β€” [Feature Request] behavior and return value of guestfish umask cmd should be changed.
  • 582548 β€” [mknod] umask shouldn't take effect when mode is set explicitly.
  • 582484 β€” some guestfish sub commands can not handle special files properly.
  • 582252 β€” updates to Spanish translation πŸ‡ͺπŸ‡Έ
  • 581501 β€” updates to Spanish translation πŸ‡ͺπŸ‡Έ
  • 580650 β€” virt-inspector warns "No grub default specified at /usr/lib/perl5/Sys/Guestfs/Lib.pm at [...]".
  • 580556 β€” request for libguestfs to support .txz tarballs.
  • 580246 β€” tar-in command hangs if uploading more than available space.
  • 580016 β€” aug-ls in guestfish does not take augeas variable as argument.
  • 579664 β€” guestfish doesn't report error when there is not enough space for image allocation.
  • 579608 β€” multiple commands in guestfish can not work for symbol links.
  • 579155 β€” libguestfs hangs if qemu doesn't start (in null vmchannel mode).
  • 578407 β€” the prefix '-' in sub-command isn't handled by guestfish in remote control mode.
  • 576879 β€” libguestfs protocol loses synchronization if you 'upload' before mounting disks.
  • 559963 β€” libguestfs Perl programs do set locale, but still localization doesn't work.
  • 521674 β€” Perl modules are unversioned, but should carry version numbers.
  • 516096 β€” race condition in test_swapon_label_0: /sbin/blockdev: BLKRRPART: Device or resource busy.
  • 507810 β€” guestfish -i / virt-inspector cannot handle spaces in filenames.
  • 502533 β€” updated Polish translation of libguestfs πŸ‡΅πŸ‡±
  • 501894 β€” some String parameters should be OptString.
  • 501893 β€” String parameters should be checked for != NULL.
  • 501889 β€” write-file does not support strings containing ASCII NUL.
  • 484986 β€” grub-install fails on virtio disk.

that's the list. every last one. i counted, you don't have to 🫢


⭐ SEE ALSO ⭐

go read these next, bestie, they're all right there:

🫢 AUTHOR 🫢

Richard W.M. Jones β€” the icon, the legend, the author πŸ’œ

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.


okay that's not even the end β€” there's a whole part 2 coming, so don't close the tab πŸ˜­πŸ’…

πŸ› BUGS πŸ›

Okay bestie, real talk β€” stuff breaks sometimes, and when it does, the libguestfs girlies need to hear about it. πŸ’– Here's the whole vibe:

  • Wanna snoop on the bugs that already exist? Like, is your issue already a known thing? Use this link to get a list of bugs against libguestfs:
https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools
  • Wanna report a shiny new bug? Iconic. Main character energy. Use this link to file a new bug against libguestfs:
https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools

✨ When reporting a bug, please supply ✨

Fr fr, the more you give us the faster we can slay the bug. Please drop all of this in there:

  • The version of libguestfs. Which one, bestie? We need the deets.
  • Where you got libguestfs β€” eg. which Linux distro, compiled from source, etc. Lowkey crucial, because a distro build and a from-source build are not the same vibe.
  • Describe the bug accurately and give a way to reproduce it. Like, be honest and be specific β€” how do we make it happen on our own machine? No cap, a reproduction path is the single most helpful thing you can hand us.
  • Run libguestfs-test-tool(1) and paste the complete, unedited output into the bug report. Complete and unedited, please πŸ™ˆ β€” don't trim it, don't "clean it up", just yeet the whole thing in there. The test tool's output is genuinely the whole diagnostic moment and we want all of it.
Ngl, bug reports with all four of these things? Chef's kiss. Bug reports with none of them? 😭 Please don't do that to us.

That's the whole page, bestie β€” you made it to the end, πŸ’… slay. This was guestfs-release-notes-1.4(1) from libguestfs-1.61.3, dated 2026-09-16 πŸŽ€ Go forth, read the release notes, and file the most beautiful, detailed, unedited-output-having bug report the world has ever seen. πŸ¦‹πŸŒΈπŸ«Ά

πŸ“¦ where this page comes from