Libguestfs

libguestfs是一组使用于硬件虚拟化中旨在用于访问及修改磁盘映像的C语言函式庫和配套工具。此工具可查看并编辑由libvirt所管理的虚拟机及其内部文件、为虚拟机撰写脚本、创建虚拟机等等。

libguestfs几乎可访问任意类型的文件系统，包括：所有已知类型的Linux文件系统（ext2/3/4、XFS、btrfs等等）、任意类型的Windows 文件系统（VFAT及NTFS）、任意类型的macOS及BSD文件系统、LVM2卷宗管理、MBR及GPT磁盘分区、未格式化的硬盘、、VirtualBox VDI、VMWare VMDK、Hyper-V VHD/VHDX、文件、本地设备、CD/DVD ISO、SD卡或通过FTP、HTTP、SSH、iSCSI、NBD、GlusterFS、、Sheepdog等程序远程管理。libguestfs无需root权限。

libguestfs的功能由guestfish外壳（Shell）提供。若虚拟机无法启动，则可使用援救外壳virt-rescue进行修复。现有工具将普通的Unix命令作为样板使用，如工具virt-cat及virt-tar。

libguestfs同时也是可与C和C++管理程序关联，并为Perl、Python、Ruby、Java、OCaml、PHP、Haskell、Erlang、Lua、Golang 和C#相关联的应用程序接口。此接口可被壳层脚本调用或在命令行中直接运行。使用FUSE模块的情况下，客户机文件系统可通过使用guestmount命令挂载到宿主机上。

Linux内核的基于内核的虚拟机实现了libguestfs。

另请参阅 

 基于内核的虚拟机（KVM）
 QEMU
 libvirt
 OpenStack

参考文献

外部链接 
 

应用程序接口
自由虚拟化软件
虛擬機器
Linux虚拟化相关软件