KVM qcow2镜像格式转换raw

KVM 虚拟机最常用的两种磁盘镜像格式是 qcow2 和 raw。
不少新手在创建虚拟机时选了 qcow2,后来因为性能或兼容性问题想转成 raw,却不知道从哪下手。
其实用 KVM 自带的 qemu-img 工具就能完成格式转换,整个过程并不复杂,但不同格式之间的性能差异和转换后的引导问题需要提前搞清楚。

转换前应该准备什么

正式操作之前,建议先完成三件事,避免转换后虚拟机起不来。

  • 备份原镜像:把 qcow2 文件复制一份,例如 cp vm01.qcow2 vm01.qcow2.bak。转换过程会生成新文件,原文件不会动,但备份能应对意外断电或误操作。
  • 关闭虚拟机:推荐先执行 virsh shutdown vm01,确保虚拟机完全关机后再转换。热转换可能造成数据不一致。
  • 确认磁盘空间:raw 是完整占用空间的格式,转换后文件大小等于虚拟磁盘定义的大小。比如 qcow2 镜像实际只有 5GB,但虚拟磁盘为 20GB,转换成 raw 后就会占用 20GB。先用 df -h 检查目标目录剩余空间。

使用 qemu-img 完成 qcow2 转 raw

转换命令的核心是 qemu-img convert,格式为:

qemu-img convert -f qcow2 -O raw vm01.qcow2 vm01.raw

参数说明:

  • -f qcow2:指定源镜像格式,也可以不加,qemu-img 会自动识别。
  • -O raw:指定输出格式,注意是大写字母 O。
  • vm01.qcow2:原镜像路径。
  • vm01.raw:转换后生成的新文件。

如果源镜像本身是其他格式,比如 vmdk,也可以先转换成 qcow2 再转 raw,或者直接用 -f vmdk -O raw 一步到位。

转换过程没有进度条,等待时间取决于磁盘大小和 I/O 性能。
转换完成后用 ls -lh vm01.raw 查看文件大小,确认生成成功。

转换后如何让虚拟机使用 raw 镜像

得到 raw 镜像后,还需要让 KVM 指向新文件。
可以用 virsh edit vm01 编辑虚拟机的磁盘配置,把原来的 改成

也可以把 raw 镜像放回原路径并复用原文件指针:

# 将原 qcow2 改名备份
mv vm01.qcow2 vm01.qcow2.bak
# 让 raw 文件使用原 qcow2 的文件名
mv vm01.raw vm01.qcow2

这种做法不用改 XML 配置,但容易混淆真实格式。
更推荐直接改 XML 指向,然后在启动前用 qemu-img info vm01.raw 检查格式是否为 raw。
启动虚拟机后执行 virsh start vm01,能正常进入系统说明转换成功。

qcow2 和 raw 的性能差异与选型建议

很多人关心 raw 是不是一定比 qcow2 快。
严格来说,raw 格式没有元数据开销,I/O 路径更短,在裸设备直通和高并发随机读写场景下性能通常略高于 qcow2,但差距并没有老一辈传说中那么大。
现代 KVM 对 qcow2 做了大量优化,开启 cache=noneio=threads 后,大多数业务场景下两者几乎无感。

选择时主要看两点:

  • 需要快照、压缩、加密:选 qcow2,它原生支持这些特性,raw 没有。
  • 追求极致磁盘性能或做裸设备映射:选 raw,它能直接作为块设备使用,方便直通。

另外,raw 格式对损坏的容忍度较低,一旦写入中断容易导致整块文件部分数据不可读;
qcow2 通过写时复制机制,在某些异常情况下更容易恢复。
如果你的宿主机内存充足,建议在创建虚拟机时优先考虑 qcow2,日常运维更灵活。

转换和对比中常见的坑

  • 转换后虚拟机无法启动:多数是因为镜像内设置的引导分区没有正确指向新磁盘。进入救援模式检查 /boot 和引导配置,必要时重建 grub。
  • 忘记开启 virtio 驱动:如果之前用的 IDE 或 SATA 磁盘,转换成 raw 后想改用 virtio,需要先进系统安装 virtio 驱动,再切换磁盘类型。
  • 盲目追求 raw 性能:在机械硬盘或普通 SATA 上,raw 和 qcow2 的速度差距可以忽略,反而 qcow2 的压缩和快照特性更适合日常备份。
  • 转换后忘记修改磁盘格式:如果 XML 中仍标记为 qcow2,virsh start 会报错。用 qemu-img info 对比实际格式和 XML 配置即可定位。

如何验证转换结果是否正常

完成转换后,建议按以下顺序检查:

# 1. 查看镜像格式
qemu-img info vm01.raw

# 2. 检查文件完整性
qemu-img check vm01.raw

# 3. 启动虚拟机
virsh start vm01

# 4. 进入系统后查看磁盘分区和文件系统
fdisk -l
df -h

qemu-img info 输出中 file format: raw 就说明转换成功。qemu-img check 如果没有报错,镜像文件基本可靠。
进入系统后 df -h 看到的分区大小应与原系统一致。

新手常问的一个问题是:转换后原来的 qcow2 文件能不能删?
建议先保留原文件,等新镜像稳定运行一周后再删除。
另有人问能不能反过来把 raw 转成 qcow2,命令完全对称:qemu-img convert -f raw -O qcow2 vm01.raw vm01.qcow2,不过转换出来的 qcow2 文件默认是稀疏分配,实际占用空间取决于写过的数据量,这一点和 raw 不同。

如果你正在处理 KVM qcow2 镜像格式转换 raw 和不同镜像格式性能对比的需求,建议先按本文步骤完整执行一遍,再根据自己的硬件和业务场景做取舍。
遇到启动异常时,优先回看避坑部分,重点检查 XML 配置里的磁盘类型和实际格式是否一致。

分享到:
上一篇
Debian系统ssh安全加固,禁止密码登录
下一篇
MySQL数据库账号权限最小化,业务账号禁止super权限
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意