qemu-img云镜像格式转换

一、qemu-img 基本概念

qemu-img 是 QEMU 提供的磁盘镜像管理工具,支持创建、转换、查看各种虚拟磁盘格式:

支持的格式包括:

  • qcow2(QEMU 默认格式,支持快照、压缩)
  • raw
  • vdi(VirtualBox)
  • vmdk(VMware)
  • vhd / vhdx
  • vpc
  • 等等。

二、查看 vdi 信息

如果你有一个 .vdi 文件,例如:

1
ls Fedora-Cloud-Base-Generic-42-1.1.aarch64.vdi

可以直接查看其信息:

1
qemu-img info Fedora-Cloud-Base-Generic-42-1.1.aarch64.vdi

输出类似:

image: Fedora-Cloud-Base-Generic-42-1.1.aarch64.vdi
file format: vdi
virtual size: 10G (10737418240 bytes)
disk size: 2.1G
cluster_size: 2097152

三、VDI 转换为其他格式

1. 转换为 qcow2(QEMU/UTM/Lima 通用)

1
qemu-img convert -f vdi -O qcow2 Fedora.vdi Fedora.qcow2
  • -f 指定源格式
  • -O 指定目标格式

2. 转换为 raw(通用性最高)

1
qemu-img convert -f vdi -O raw Fedora.vdi Fedora.raw

适合手动挂载、使用 guestfishlosetup 挂载到系统里。

例如:

1
2
sudo losetup -fP Fedora.raw
sudo mount /dev/loop0p1 /mnt

3. 转换为 VMDK(VMware)

1
qemu-img convert -f vdi -O vmdk Fedora.vdi Fedora.vmdk

4.转换vdi

qemu-img convert -f qcow2 -O vdi source.qcow2 target.vdi

参数解释:

  • -f qcow2 :源文件格式
  • -O vdi :目标格式
  • source.qcow2 :源镜像
  • target.vdi :输出 vdi 文件名

四、在 ARM/M1 上实际使用建议

由于 VirtualBox 无法运行 x86 虚拟机(即使有 .vdi),你可以这样做:

qemu-img 转为 qcow2

1
qemu-img convert -f vdi -O qcow2 mybox.vdi mybox.qcow2

在 UTM / QEMU / Lima 中使用

  • UTM GUI 创建虚拟机时选择“导入磁盘镜像”→ 选择 mybox.qcow2

  • 命令行 QEMU 下可直接启动:

    1
    2
    3
    4
    5
    6
    qemu-system-aarch64 \
    -m 4096 \
    -cpu cortex-a72 \
    -machine virt \
    -drive file=mybox.qcow2,if=virtio \
    -nographic