- Home
- Virtual Drive Software
- libguestfs
libguestfs
What it is
libguestfs is a free library and toolset for accessing and modifying virtual machine disk images. It can view or edit guest files, script VM changes, create or resize images, perform backups, clone VMs, and build VMs. The project says it can access almost any disk image, including VMware and Hyper-V images, and supports images from VMware, KVM, qemu, VirtualBox, Xen, and other hypervisors without requiring libvirt. For command-line work, guestfish is a scriptable shell and virt-rescue is an interactive rescue shell. The C library has bindings for many programming languages, with examples for C/C++, Erlang, Go, Java, Lua, OCaml, Perl, Python, and Ruby. Guest filesystems are accessed through a Linux kernel in a qemu virtual machine, usually as a non-root user; sVirt with libvirt and SELinux can also be used. It runs on many Linux distributions and Mac OS X, while some virt tools have been ported to Windows. Non-Linux systems may require compiling from source and porting.
For and against
For
- Works with images from multiple hypervisors.
- Can create, resize, clone, and back up VM images.
- Includes scriptable and interactive command-line shells.
- C library has bindings for many languages.
- Free open-source library and tools.
Against
- Non-Linux systems may require source compilation and porting.
- Only some virt tools have been ported to Windows.
The verdict
libguestfs covers a broad set of virtual disk tasks through its library and command-line tools. Linux is its principal environment; non-Linux users may need to compile and port it.
Who it suits
It suits administrators and developers who need to inspect, change, or build virtual machine disk images. Programming-language bindings and command-line shells support both application and shell-based workflows.
Plans and prices
libguestfs open-source software
LGPLv2+ library · GPLv2+ programs · examples under permissive licence
Read 15 Oct 2026 · github.com
libguestfs
Open source library and tools · source and binary downloads
Read 29 Sep 2026 · libguestfs.org
On the record
- API scope
- The API has more than one hundred low-level filesystem access and modification calls.libguestfs.org · read 15 Oct 2026
- Architecture
- libguestfs launches a small QEMU appliance containing a Linux kernel, userspace tools and guestfsd, communicating with the host library over RPC.libguestfs.org · read 15 Oct 2026
- Build requirements
- Building from source requires QEMU at least 7.2.0, qemu-img at least 7.2.0, a kernel at least 2.6.34, supermin at least 5.1.18, a C compiler, Perl and OCaml at least 4.08.libguestfs.org · read 15 Oct 2026
- Command execution limitation
- Commands run inside guests have limited memory, may lack networking, work only with Linux guests and are unsafe for untrusted or malicious guests.manpages.ubuntu.com · read 15 Oct 2026
- Command line
- The functionality is available through guestfish, a scriptable shell, and virt-rescue, an interactive rescue shell.libguestfs.org · read 29 Sep 2026
- Debian architectures
- The Debian package page offers builds for amd64, arm64, armel, armhf, i386, mips64el, mipsel, ppc64el and s390x.packages.debian.org · read 15 Oct 2026
- Debian-described capabilities
- Debian describes batch guest configuration, file editing, disk statistics, virtualization migration, partial backups, cloning and registry, UUID and hostname changes.packages.debian.org · read 15 Oct 2026
- Debian package availability
- Debian bookworm provides libguestfs0 version 1:1.48.6-2 and separate packages for tools, rescue support and language bindings.packages.debian.org · read 15 Oct 2026
- Developer interfaces
- libguestfs is a C library with bindings for many programming languages, and the site provides examples for C/C++, Erlang, Go, Java, Lua, OCaml, Perl, Python, and Ruby.libguestfs.org · read 29 Sep 2026
- Disk image tasks
- It can view and edit guest files, script VM changes, create and resize images, perform backups, clone VMs, and build VMs.libguestfs.org · read 29 Sep 2026
- Documentation depth
- The homepage advertises a roughly 250-page manual, and the documentation set includes API, FAQ, recipes, performance, building, hacking, internals, testing and security manuals.libguestfs.org · read 15 Oct 2026
- Downloads
- The project provides source downloads and lists installation commands for Fedora, Red Hat Enterprise Linux, Debian, and Ubuntu.libguestfs.org · read 29 Sep 2026
- Filesystem coverage
- Debian lists support through Linux and QEMU for ext2/3/4, btrfs, FAT, NTFS, LVM, multiple partition schemes, qcow/qcow2 and VMDK.packages.debian.org · read 15 Oct 2026
- File transfer
- guestfs_download and guestfs_upload support files without content or size limits, while tar-based calls transfer multiple files.libguestfs.org · read 15 Oct 2026
- FUSE availability limitation
- Local mounting requires FUSE and libfuse support at build time, and may fail with ENOTSUP when unavailable.manpages.ubuntu.com · read 15 Oct 2026
- FUSE mounting
- The FUSE module can mount guest filesystems on the host.libguestfs.org · read 15 Oct 2026
- FUSE performance limitation
- The API manual says local FUSE mounting performs poorly and recommends ordinary libguestfs calls or streaming transfers for better performance.manpages.ubuntu.com · read 15 Oct 2026
- Guestfish
- guestfish is the scriptable shell interface to the libguestfs API.libguestfs.org · read 15 Oct 2026