libguestfs
libguestfs | |
---|---|
![]() | |
Developer(s) | Richard Jones |
Initial release | April 4, 2009[1] |
Stable release | 1.24.0
/ 19 October 2013 |
Written in | C, OCaml, et al. |
Operating system | Linux |
Type | Virtualization |
License | LGPL, GPL |
Website | libguestfs |
libguestfs is a set of tools for accessing and modifying virtual disk images used in platform virtualization. The tools can be used for viewing and editing virtual machines managed by libvirt and files inside guests, scripting changes to VMs, monitoring disk used/free statistics, creating guests, P2V, V2V, performing partial backups, cloning VMs, and much else besides.[2]
libguestfs can access nearly any type of file system 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, VirtualBox VDI, VMWare VMDK, Hyper-V VHD/VHDX, on files, local devices, CD and DVD ISOs, SD cards, or remotely over FTP, HTTP, SSH, iSCSI, NBD, GlusterFS, Ceph, Sheepdog, and much much more. libguestfs does not require 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. Multiple editing tools are available modeled after ordinary Unix commands, such as virt-cat and virt-tar.[3]
libguestfs is also an API and its implementation as a library that can be linked with C and C++ management programs and has bindings for Perl, Python, Ruby, Java, OCaml, PHP, Haskell, Erlang and Lua and Golang 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.
[4] and
libguestfs is implemented using the Kernel-based Virtual Machine for the Linux kernel.[5]