qemu-img convert 镜像转换
convert 是跨格式与跨平台搬运镜像的标准工具:读入任意受支持的源格式,写出目标格式的镜像。它支持多协程并行与乱序写来加速,qcow2 输出还能加压缩。两个前提必须守住:转换期间源镜像不能有写入(先停虚机或做快照),目标位置要预留足够空间。
基本信息
| 基础转换 | qemu-img convert -p -O qcow2 src.img dst.qcow2 |
|---|---|
| 并行加速 | -m 8 提高并行协程数,-W 允许乱序写 |
| 压缩 | -c 仅对 qcow2 输出可用,读写过程有 CPU 开销 |
| 跨格式 | vmdk、vhdx、vdi、raw 等输入格式自动识别 |
| 一致性前提 | 转换前停止源虚机写入,或对源盘做快照后从快照转换 |
典型使用场景
- 上云导入:把本地镜像转成云平台支持的格式与磁盘类型
- 跨平台迁移:在 KVM、VMware、Hyper-V 之间搬运系统盘
- 模板瘦身:转换时加压缩,减小模板与分发体积
- 格式统管:把混杂的镜像格式统一成一种,简化批量管理
- 排障核对:转换后用 info 确认虚拟容量与置备方式是否符合预期
转换并校验结果
转换并校验结果
qemu-img convert -p -m 8 -W -O qcow2 src.vmdk dst.qcow2
# -p 显示进度,-m 提高并行度,-W 允许乱序写提升速度
qemu-img convert -p -c -O qcow2 src.img dst-compressed.qcow2
# -c 压缩只对 qcow2 输出有效,CPU 开销换来更小体积
qemu-img info dst.qcow2 # 核对格式、虚拟容量与实际占用参数与注意
| 参数 | 作用 | 注意 |
|---|---|---|
| -O | 指定输出格式 | 写错格式可能装不进去 |
| -m | 并行协程数量 | 过高会抢占宿主 CPU 与磁盘带宽 |
| -c | 压缩输出 | 仅 qcow2 有效,且影响读写性能 |
| -W | 允许乱序写 | 提升速度,但要求目标存储能承受 |
转换属于离线操作:源虚机仍在运行时转换得到的镜像无法保证数据一致性,当作备份用更不可靠。
输出为 raw 格式时按虚拟容量占用空间;大镜像转换到中途空间不足会留下不完整文件,开始前先确认剩余容量。
转换完成后用 qemu-img check 做一次一致性检查:源镜像经历过异常关机或带快照链时,早一步发现问题,比上架后回滚整个迁移批次省事得多。