第 10 章 qemu-img 和 QEMU 客户机代理
/usr/share/doc/qemu-*/README.systemtap
。
10.1. 使用 qemu-img
检查
对磁盘映像 文件名 执行一致性检查。
# qemu-img check -f qcow2 --output=qcow2 -r all filename-img.qcow2
qcow2
和 vdi
格式支持一致性检查。
-r
尝试修复在检查过程中发现的所有不一致问题,但在修复 -r leaks
集群泄漏时,会修复并处理 -r all
各种错误被修复。请注意,这存在选择错误的修复或隐藏可能已经发生崩溃问题的风险。
Commit(提交)
使用 qemu-img commit 命令将指定文件(文件名)中记录的任何更改提交到文件的基础镜像。(可选)指定文件格式类型(格式)。
# qemu-img commit [-fformat
] [-tcache
] filename
convert
convert
选项用于将一个可识别的镜像格式转换为另一个镜像格式。
# qemu-img convert [-c] [-p] [-fformat
] [-tcache
] [-Ooutput_format
] [-ooptions
] [-Ssparse_size
] filename output_filename
-p
参数显示命令的进度(可选而不是每个命令)和 -S
选项允许创建 稀疏文件,该文件包含 在磁盘镜像中。所有目的中的稀疏文件都类似标准文件,但物理块仅包含零(无)。当操作系统看到此文件时,它会将其视为存在,并占用实际磁盘空间,即使实际情况也不会采取任何情况。这在为客户机虚拟机创建磁盘时特别有用,因为这会造成磁盘所占用的磁盘空间比它多得多。例如,如果您在磁盘镜像上的 -S 设置为 50Gb,则您的 10Gb 磁盘空间的 10Gb 的大小将显示为 60Gb,即使实际使用了 10Gb。
filename
将磁盘镜像 output_filename
转换为磁盘镜像 output_format
。磁盘镜像可以选择使用 -c
选项压缩,或者通过设置 -o
来使用 -o encryption
选项加密。请注意,-o
参数可用的选项与所选格式不同。
qcow2
格式支持加密或压缩。qcow2
加密使用 AES 格式,以及安全 128 位密钥。qcow2
压缩为只读模式,因此如果压缩的扇区从 qcow2
格式转换,它将被写成为未压缩数据的新格式。
创建
创建新的磁盘大小 size
并格式化 format
。
# qemu-img create [-fformat
] [-o options] filename [size
][preallocation
]
-o backing_file=filename
指定基础镜像,则镜像只记录自身和基础镜像之间的区别。除非您使用 commit 命令,否则不会修改后备文件。在这种情况下不需要指定大小。
-o preallocation=off|meta|full|falloc
。预分配元数据的镜像大于镜像,无需.但是,在镜像大小增加的情况下,随着镜像的增长,性能会提高。
完整
分配可能需要较长时间的大型镜像。如果您想要实现完全分配且时间为准,使用 falloc
将为您节省时间。
info
info 参数显示有关磁盘映像 文件名 的信息。info 选项的格式如下:
# qemu-img info [-f format] filename
qcow2
镜像采用的空间量。这可以通过运行 qemu-img 来完成。您可以使用 qemu-img check 命令来检查镜像是否为与 qemu-img info 命令的输出相符。请参阅 第 10.1 节 “使用 qemu-img”。
# qemu-img info /dev/vg-90.100-sluo/lv-90-100-sluo image: /dev/vg-90.100-sluo/lv-90-100-sluo file format: qcow2 virtual size: 20G (21474836480 bytes) disk size: 0 cluster_size: 65536
map
# qemu-img map [-f format] [--output=output_format] filename 命令转储镜像文件名及其后备文件链的元数据。具体来说,此命令会转储指定文件的每个扇区的分配状态,以及在后备文件链中分配它的最顶层文件。例如,如果您有一个链,如 c.qcow2 f
format 选项是指定镜像文件的格式。可以使用 raw、qcow2、vhdx 和 vmdk 等格式。可能有两个输出选项: human 和
json
。
人
为默认设置。它旨在更加易读的人类阅读,因此这种格式不应被解析。为了清晰和简单性,默认人
格式仅转储文件的已知非零区域。文件的已知零部分将被完全省略,也同样适用于不在整个链中分配的部分。当执行命令时,qemu-img 输出将识别从其中读取数据的文件,以及 文件中的偏移。输出显示为包含四个列的表:前三个是十六进制数字。# qemu-img map -f qcow2 --output=human /tmp/test.qcow2 Offset Length Mapped to File 0 0x20000 0x50000 /tmp/test.qcow2 0x100000 0x80000 0x70000 /tmp/test.qcow2 0x200000 0x1f0000 0xf0000 /tmp/test.qcow2 0x3c00000 0x20000 0x2e0000 /tmp/test.qcow2 0x3fd0000 0x10000 0x300000 /tmp/test.qcow2
- JSON 或 JSON(JavaScript 对象表示法)可供人类读取,但由于编程语言,它也旨在解析。
例如,要在解析器中解析 "qemu-img map" 的输出,则应使用
--output=json
选项。# qemu-img map -f qcow2 --output=json /tmp/test.qcow2 [{ "start": 0, "length": 131072, "depth": 0, "zero": false, "data": true, "offset": 327680}, { "start": 131072, "length": 917504, "depth": 0, "zero": true, "data": false},
如需有关 JSON 格式的更多信息,请参阅 qemu-img(1)手册页。
rebase
更改镜像的后端文件。
# qemu-img rebase [-f format] [-t cache] [-p] [-u] -b backing_file [-F backing_format] filename
qcow2
格式支持更改后备文件(rebase)。
调整大小
更改磁盘镜像 文件名,就像它创建 大小为。无论版本如何,只有采用原始格式的镜像才可以重新定义大小。Red Hat Enterprise Linux 6.1 及之后的版本添加了以 qcow2
格式增加(但不缩小)镜像的功能。
# qemu-img resize filename size
+
的字节数加前缀,或 -
通过该字节数来减小磁盘镜像的大小。添加单元后缀允许您以千字节(K)、兆字节(M)、千兆字节(G)或 TB(T)为单位设置镜像大小。
# qemu-img resize filename [+|-]size[K|M|G|T]
Snapshot
列出、应用、创建或删除映像的现有快照(快照)(文件名)。
# qemu-img snapshot [ -l | -a snapshot | -c snapshot | -d snapshot ] filename
支持的格式
QEMU-img 旨在将文件转换为以下格式之一:
-
raw
- 原始磁盘镜像格式(默认)。这可以是基于文件的最快格式。如果您的文件系统支持 holes(例如,在 Linux 上的 ext2 或 ext3 中,Windows 上的 NTFS),则只有写扇区将被保留空间。使用 qemu-img info 获取镜像或 ls -ls on Unix/Linux 上使用的实际大小。虽然 Raw 镜像提供了最佳性能,但只有 Raw 镜像具有非常基本的功能(例如,没有快照可用)。
-
qcow2
- QEMU 镜像格式,包含最佳功能集的最通用格式。使用它来具有可选的 AES 加密,基于 zlib 的压缩,支持多个虚拟机快照和较小的镜像,这对于不支持 holes 的文件系统( Windows 中的非NTFS 文件系统)非常有用。请注意,这种广泛的功能集以性能为代价。
raw
或 qcow2
格式。通常会自动检测到镜像的格式。除了将这些格式转换为 raw
或 qcow2
,也可将其从 raw
或 qcow2
转换为原始格式。
- Bochs
- Bochs 磁盘镜像格式。
- cloop
- Linux 压缩的 Loop 镜像,仅适用于重复使用压缩的 CD-ROM 镜像,例如 Knoppix CD-ROM。
- COW
- user Mode Linux Copy On Write image format。cow 格式仅用于与之前版本兼容。它无法使用 Windows。
- dmg
- MAC 磁盘镜像格式。
- nbd
- 网络块设备.
- Parallels
- 并行虚拟化磁盘映像格式.
- QCOW
- 旧的 QEMU 镜像格式。只适用于与旧版本兼容。
- vdi
- Oracle VM VirtualBox 硬盘映像格式.
- vmdk
- VMware 兼容镜像格式(对版本 1 和 2 的读写支持),对版本 3 具有只读访问权限。
- vpc
- Windows 虚拟 PC 磁盘映像格式.也称为
vhd
或 Microsoft 虚拟硬盘映像格式。 - vvfat
- 虚拟 VFAT 磁盘镜像格式。