Guestfish 是libguestfs项目中的一个工具软件,提供修改虚机镜像内部配置的功能。它不需要把虚机镜像挂接到本地,而是为你提供一个shell接口,你可以查看、编辑和删除镜像内的文件。
Guestfish提供了结构化的libguestfs API访问,可以通过shell脚本、命令行或交互方式访问。它使用libguestfs并公开了guestfs API的所有功能。Libguestfs是一个用于访问和修改磁盘映像和虚拟机的库。
以修改虚拟机镜像内部文件为例子:
# guestfish --rw -a centos63_desktop.img
Welcome to guestfish, the libguestfs filesystem interactive shell forediting virtual machine filesystems. Type: 'help' for help on commands 'man' to read the manual 'quit' to quit the shell ><fs>
执行run命令,加载虚机镜像:
><fs> run
查看镜像中的文件系统:
><fs> list-filesystems/dev/vda1: ext4/dev/vg_centosbase/lv_root: ext4/dev/vg_centosbase/lv_swap: swap
手工把root分区挂接在本地:
><fs> mount /dev/vg_centosbase/lv_root /
现在可以对文件做增删改了:
><fs> rm /etc/udev/rules.d/70-persistent-net.rules
或者编辑:
><fs> edit /etc/sysconfig/network-scripts/ifcfg-eth0
如果你需要镜像加载8021q kernel,则需要为其创建一个可执行脚本文件:
><fs> touch /etc/sysconfig/modules/8021q.modules><fs> edit /etc/sysconfig/modules/8021q.modules
文件内容为:modprobe 8021q
><fs> chmod 0755 /etc/sysconfig/modules/8021q.modules
><fs> exit
guestfish 命令说明:http://libguestfs.org/guestfish.1.html
Libguestfs C API : http://libguestfs.org/guestfs.3.html