libguestfs, tools for accessing and modifying virtual machine disk images

Downloads

For source see the downloads directory.

In Fedora 11+ or EPEL, you just need to do:

yum install '*guestf*'

For Debian, Ubuntu and other distributions.

This software is distibuted under the terms of the GNU LGPL and GPL version 2 or above. See individual files and licenses for details.

Mailing list and chat

Join us on the libguestfs mailing list, or on IRC channel #libguestfs on FreeNode.

Documentation

Frequently Asked Questions (FAQ) and guestfish recipes page

guestfs(3) — main API documentation
guestfish(1) — interactive shell
guestmount(1) — mount guest filesystem in host
virt-cat(1) — display a file
virt-df(1) — free space
virt-edit(1) — edit a file
virt-inspector(1) — inspect VM images
virt-list-filesystems(1) — list filesystems
virt-list-partitions(1) — list partitions
virt-ls(1) — list files
virt-make-fs(1) — make a filesystem
virt-rescue(1) — rescue shell
virt-resize(1) — resize virtual machines
virt-tar(1) — archive and upload files
virt-win-reg(1) — export and merge Windows Registry keys
hivex(3) — extract Windows Registry hive
hivexregedit(1) — merge and export Registry changes from regedit-format files
hivexsh(1) — Windows Registry hive shell
hivexml(1) — convert Windows Registry hive to XML
hivexget(1) — extract data from Windows Registry hive

For developers: README, TODO, HACKING. FAQ.

Bug reports

List of bugs in libguestfs and in Fedora packaging of libguestfs

Enter a new bug report

Git repository

git clone git://git.annexia.org/git/libguestfs.git

Latest development version: 1.5.2 (released 2010-07-22).
Current stable series: 1.4.x.
Previous stable series: 1.2.x.

libguestfs is a set of tools for accessing and modifying virtual machine (VM) disk images. You can use this for viewing and editing files inside guests, scripting changes to VMs, monitoring disk used/free statistics, P2V, V2V, performing partial backups, cloning VMs, and much else besides.

libguestfs can access nearly any type of filesystem including: all known types of Linux filesystem (ext2/3/4, XFS, btrfs etc), any Windows filesystem (VFAT and NTFS), any Mac OS X and BSD filesystems, LVM2 volume management, MBR and GPT disk partitions, raw disks, qcow2, CD and DVD ISOs, SD cards, and dozens more. libguestfs doesn't need root permissions.

All this functionality is available through a convenient shell called guestfish, or use virt-rescue to get a rescue shell for fixing unbootable virtual machines.

libguestfs is also a library that can be linked with C and C++ management programs and has bindings for Perl, Python, Ruby, Java, OCaml, Haskell and C#. You can also use it from shell scripts or the command line. Using our FUSE module you can also mount guest filesystems on the host. There is a subproject to allow you to merge changes into the Windows Registry in Windows guests. You can examine unknown disk images to find out what they contain.

libguestfs is a mature program, in development since Feb 2009, with a 100 page manual, deployed in enterprise environments, and with many successful users.

Latest blog entries

Getting started

yum install '*guestf*'
guestfish --ro -a disk.img

For examples using guestfish see the guestfish recipes page. For other examples see these blog entries.

rjones AT redhat DOT com