17.3. 使用 qemu-img

qemu-img 命令行工具是 Xen 和 KVM 用来格式化各种文件系统的。可使用 qemu-img 格式化虚拟客户端映像、附加存储设备以及网络存储。qemu-img 选项及用法如下。

格式化并创建新映像或者设备

创建新磁盘映像文件名为 size,格式为 format。

  1. # qemu-img create [-6] [-e] [-b base_image] [-f format] filename [size]

If base_image is specified, then the image will record only the differences from base_image. No size needs to be specified in this case. base_image will never be modified unless you use the “commit” monitor command.

将现有映像转换成另一种格式

转换选项是将可识别格式转换为另一个映像格式。

命令格式:

  1. # qemu-img convert [-c] [-e] [-f format] filename [-O output_format] output_filename

convert the disk image filename to disk image output_filename using format output_format. it can be optionally encrypted (“-e” option) or compressed (“-c” option).

only the format “qcow” supports encryption or compression. the compression is read-only. it means that if a compressed sector is rewritten, then it is rewritten as uncompressed data.

加密法是使用非常安全的 128 位密钥的 AES 格式。使用长密码(16 个字符以上)获得最大程度的保护。

当使用可增大的映像格式,比如 qcowcow 时,映像转换可帮助您获得较小的映像。在目的映像中可检测并压缩空白字段。

获得映像信息

info 参数显示磁盘映像信息。info 选项的格式如下:

  1. # qemu-img info [-f format] filename

给出磁盘映像文件名信息。使用它可获得在磁盘中保留空间大小,它可能与显示的大小有所不同。如果在磁盘映像中保存有 vm 快照,则此时也会显示。

支持格式

映像格式通常是自动获取的。支持以下格式:

raw

Raw 磁盘映像格式(默认)。这个格式的优点是可以简单、容易地导出到其它模拟器中。如果您的文件系统支持中断(例如在 Linux 中的 ext2 或者 ext3 以及 Windows 中的 NTFS),那么只有写入的字段会占用空间。使用 qemu-img info 了解 Unix/Linux 中映像或者 ls -ls 使用的实际大小。

qcow2

QEMU 映像格式,最万能的格式。使用它可获得较小映像(如果您的系统不支持中断,例如在 Windows 中,它会很有用)、额外的 AES 加密法、zlib 压缩以及对多 VM 快照的支持。

qcow

旧的 QEMU 映像格式。只用于与旧版本兼容。

cow

写入映像格式的用户模式 Linux 副本。包含 cow 格式的目的只是为了与前面的版本兼容。它无法在 Windows 中使用。

vmdk

VMware 3 和 4 兼容映像格式。

cloop

Linux 压缩回送映像,只有在重复使用直接压缩的 CD-ROM 映像时有用,比如在 Knoppix CD-ROM 中。