镜像格式对比
不同虚拟化平台各有原生磁盘镜像格式:raw 是裸数据,qcow2 支持写时复制与快照,vmdk 是 VMware 系,vhdx 属于 Hyper-V,vdi 是 VirtualBox 原生。跨平台搬运前要先弄清格式特性与子类型(是否流优化、是否精简置备),再决定转换链,否则容易出现导入后无法引导的情况。
基本信息
| 常用工具 | qemu-img info 查看格式与容量,qemu-img convert 完成格式转换 |
|---|---|
| 子类型差异 | vmdk 有单文件与多文件、流优化等变体,转换后子类型信息会丢失 |
| 快照链 | 带内部快照或 backing 链的镜像不能直接转换,需先合并成单层 |
| 稀疏与置备 | qcow2 与 vhdx 支持精简置备,raw 也可用稀疏文件 |
| 容量口径 | 虚拟容量与实际占用不同,转换前按虚拟容量预留空间 |
常见镜像格式
| 格式 | 特性 | 典型场景 |
|---|---|---|
| raw | 裸数据,可稀疏,无快照 | 追求兼容与直通性能、云平台导入 |
| qcow2 | COW、快照、压缩、backing file | KVM 系统盘与模板镜像 |
| vmdk | 单/多文件与流优化等变体 | ESXi、Workstation、跨云导入导出 |
| vhdx | 支持大容量,带日志保护 | Hyper-V 与 Windows 环境 |
| vdi | VirtualBox 原生格式 | 桌面实验,云平台一般不识别 |
典型使用场景
- 上云导入:把本地镜像转成云平台支持的格式与磁盘控制器类型
- 跨平台迁移:从 VMware 迁到 KVM,或反向搬运
- 模板制作:把装好软件的镜像压缩成模板,批量分发
- 归档与留存:转换后压缩,减少长期存储占用
- 排障核对:用 info 确认虚拟容量与实际占用,判断是否被精简
转换与校验
转换与校验
qemu-img convert -p -O qcow2 src.vmdk dst.qcow2
qemu-img info dst.qcow2
# -p 显示进度;转换后建议抽查 guest 内分区表与引导
# 目标是 raw 时按虚拟容量预留空间:
# qemu-img convert -p -O raw src.qcow2 dst.raw转换常见目标与注意
| 源 → 目标 | 命令要点 | 注意 |
|---|---|---|
| vmdk → qcow2 | qemu-img convert -O qcow2 | 转换后核对容量与引导 |
| qcow2 → raw | qemu-img convert -O raw | 输出按满容量占用空间 |
| raw → qcow2 | 可加 -c 压缩减小体积 | 压缩只对 qcow2 输出有效 |
| 带快照的 qcow2 | 先合并快照再转换 | 直接转换会丢层级信息 |
转换只处理磁盘层面:网卡 MAC、序列号、磁盘控制器类型等平台相关信息要另行规划。
转换耗时与容量线性相关,大镜像建议放在本地高速盘上做,避免中途空间不足或网络中断导致重来。