libguestfs

libguestfs是一个访问和修改虚拟机磁盘镜像的一组工具。可以使用这个工具查看和修改guest虚拟机中的文件,通过脚本修改虚拟机,监视磁盘使用状态创建虚拟机,P2V,V2V,执行备份,clone虚拟机,构建虚拟机,格式化磁盘,修改磁盘大小等等。

libguestfs几乎可以访问任何image化的磁盘镜像,并且不需要root账号,可以使用多层次访问磁盘镜像。另外libguestfs可以访问远程主机上的磁盘镜像或者在CD/U盘上的磁盘镜像,可以访问类似VMware和Hyper-V的系统。

所有的功能都是通过一个可以脚本化的shell,称为 guestfish 或者一个交互的救援shell virt-rescue

libguestfs是一个C库,所以可以链接到C和C++管理程序,并且可以绑定到一系列其它可编程语言。使用FUSE模块,还可以直接将guest文件系统挂载到物理机

hivex子项目可以在Windows虚拟机中[合并修改到Windows注册表]。可以检查未知的磁盘镜像来查找它包含的内容

libguestfs从2009年开始不断持续开发(一个活跃的开源项目),具有250页手册,以及在企业级环境部署的成熟案例,并被很多项目所使用。

libguestfs安装

Fedora和Red Hat Enterprise Linux

sudo yum install libguestfs-tools

Debian/Ubuntu

sudo apt-get install libguestfs-tools

打开镜像的方法简单如下

guestfish --ro -i -a disk.img

qemu-nbd

qemu-nbd可以实现挂载虚拟磁盘到物理服务器,这个工具是通过使用NBD协议来输出Qemu磁盘镜像。

参考