第 21 章 使用离线工具进行客户机虚拟机磁盘访问
21.1. 简介
Red Hat Enterprise Linux 7 提供多个
libguestfs
工具,可访问、编辑和创建客户机虚拟机磁盘或其他磁盘镜像。这些工具有多种用途,包括:
- 查看或下载位于客户机虚拟机磁盘中的文件。
- 在客户机虚拟机磁盘上编辑或上传文件。
- 读取或写入客户机虚拟机配置.
- 准备包含文件、目录、文件系统、分区、逻辑卷和其他选项的新磁盘镜像。
- 修复无法引导的客户机虚拟机,或者需要启动配置更改的客户机虚拟机。
- 监控客户机虚拟机的磁盘使用情况.
- 审计客户虚拟机合规性,例如组织安全标准。
- 通过克隆和修改模板来部署客户机虚拟机.
- 读取 CD 和 DVD ISO 映像以及软盘磁盘映像.
警告
您不得使用本章中列出的实用程序写入附加到虚拟机的客户机虚拟机或磁盘镜像,即使是在写入模式下打开这样的磁盘镜像。
这样做会导致客户机虚拟机的磁盘损坏。这些工具会尽量避免您这样做,但不能保证所有情况的安全。如果客户机虚拟机可能正在运行,则红帽强烈建议您不要使用该工具。
为提高安全性,某些实用程序可以用于只读模式(使用
--ro
选项),不会保存更改。
注意
libguestfs 及相关实用程序的文档的主要来源是 Linux man page。该 API 记录在 guestfs(3) 中,guestfish 记录在 guestfish(1) 中,虚拟化实用程序记录在自己的手册页(如 virt-df(1))中。有关故障排除信息,请参阅 第 A.17 节 “libguestfs 故障排除”
21.1.1. 使用远程连接时要小心
Red Hat Enterprise Linux 7 中的一些虚拟化命令允许您指定一个远程 libvirt 连接。例如:
# virt-df -c qemu://remote/system
-d Guest
但是,Red Hat Enterprise Linux 7 中的 libguestfs 工具无法访问远程 libvirt 客户机的磁盘,使用远程 URL 的命令也无法按预期工作。
不过,从 Red Hat Enterprise Linux 7 开始,libguestfs 可以通过网络块设备(NBD)访问远程磁盘源。您可以使用 qemu-nbd 命令从远程机器导出磁盘镜像,并使用
nbd://
URL 访问它。您可能需要在防火墙中打开端口(端口 10809),如下所示:
在远程系统中: qemu-nbd -t disk.img
在本地系统中: virt-df -a nbd://remote
以下 libguestfs 命令会受到影响:
- guestfish
- guestmount
- virt-alignment-scan
- virt-cat
- virt-copy-in
- virt-copy-out
- virt-df
- virt-edit
- virt-filesystems
- virt-inspector
- virt-ls
- virt-rescue
- virt-sysprep
- virt-tar-in
- virt-tar-out
- virt-win-reg