第 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
# 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 [-f format] [-t cache] filename
# qemu-img commit [-f format] [-t cache] filename
convert
convert
选项用于将一个可识别的镜像格式转换为另一个镜像格式。
qemu-img convert [-c] [-p] [-f format] [-t cache] [-O output_format] [-o options] [-S sparse_size] filename output_filename
# qemu-img convert [-c] [-p] [-f format] [-t cache] [-O output_format] [-o options] [-S sparse_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 [-f format] [-o options] filename [size][preallocation]
# qemu-img create [-f format] [-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
# qemu-img info [-f format] filename
qcow2
镜像采用的空间量。这可以通过运行 qemu-img 来完成。您可以使用 qemu-img check 命令来检查镜像是否为与 qemu-img info 命令的输出相符。请参阅 第 10.1 节 “使用 qemu-img”。
map
# qemu-img map [-f format] [--output=output_format] filename 命令转储镜像文件名及其后备文件链的元数据。具体来说,此命令会转储指定文件的每个扇区的分配状态,以及在后备文件链中分配它的最顶层文件。例如,如果您有一个链,如 c.qcow2 f
format 选项是指定镜像文件的格式。可以使用 raw、qcow2、vhdx 和 vmdk 等格式。可能有两个输出选项: human 和
json
。
人
为默认设置。它旨在更加易读的人类阅读,因此这种格式不应被解析。为了清晰和简单性,默认人
格式仅转储文件的已知非零区域。文件的已知零部分将被完全省略,也同样适用于不在整个链中分配的部分。当执行命令时,qemu-img 输出将识别从其中读取数据的文件,以及 文件中的偏移。输出显示为包含四个列的表:前三个是十六进制数字。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - JSON 或 JSON(JavaScript 对象表示法)可供人类读取,但由于编程语言,它也旨在解析。
例如,要在解析器中解析 "qemu-img map" 的输出,则应使用
--output=json
选项。qemu-img map -f qcow2 --output=json /tmp/test.qcow2
# 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},
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如需有关 JSON 格式的更多信息,请参阅 qemu-img(1)手册页。
rebase
更改镜像的后端文件。
qemu-img rebase [-f format] [-t cache] [-p] [-u] -b backing_file [-F backing_format] filename
# 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
# qemu-img resize filename size
+
的字节数加前缀,或 -
通过该字节数来减小磁盘镜像的大小。添加单元后缀允许您以千字节(K)、兆字节(M)、千兆字节(G)或 TB(T)为单位设置镜像大小。
qemu-img resize filename [+|-]size[K|M|G|T]
# qemu-img resize filename [+|-]size[K|M|G|T]
Snapshot
列出、应用、创建或删除映像的现有快照(快照)(文件名)。
qemu-img snapshot [ -l | -a snapshot | -c snapshot | -d snapshot ] filename
# 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 磁盘镜像格式。