QEMU QCOW2 (.qcow2)
QEMU 标准QEMU 写时复制第 2 版(QCOW2)是现代 Linux 虚拟化(KVM、Proxmox、OpenStack、QEMU)的旗舰级虚拟磁盘格式,支持精简配置、内部快照、后备文件和透明压缩。
将 QCOW2 转换为 RAW
免费的浏览器端 QCOW2 转 RAW 转换器。在您的设备上即时转换文件。
检查与元数据
操作系统和文件分析器通过检查开头的二进制字节序列来识别 QCOW2 文件:
字节级文件头签名 (魔数)
操作系统和文件分析器通过检查开头的二进制字节序列来识别 QCOW2 文件:
十六进制签名 (偏移量 0):
51 46 49 FB 00 00 00 02 / 03ASCII 表示形式: QFIû...
标准化: QEMU QCOW2 Image Format Specification
技术规格
| 容器架构 | 两级簇分配表(L1 和 L2 表),支持写时复制后备文件、快照和加密 |
| 压缩方式 | 簇级 zlib Deflate 或 Zstandard(Zstd)压缩 |
| 字节序 | 标头和簇偏移量均采用大端序 |
| 色彩空间 | 不适用(虚拟机磁盘) |
| 通道与结构 | 虚拟机硬盘分区、文件系统和时间点快照 |
| 最大尺寸 | 最高可达 2 拍字节(支持 64 位簇地址) |
| 透明度 | 无 |
| 流式传输与渐进式加载 | 高速写时复制随机访问块映射 |
技术对比矩阵:QCOW2 对比同类产品
| 技术属性 | QCOW2 (当前) | RAW | VHD | VMDK |
|---|---|---|---|---|
| 虚拟化生态系统 | KVM / QEMU / Proxmox / OpenStack | 直接物理 / KVM | Microsoft Hyper-V / Azure | VMware ESXi / Workstation |
| 精简配置 | 原生按需集群分配 | 无(完全分配) | 动态 VHD 分配 | 精简 VMDK 分配 |
| 后端文件 (CoW) | 原生核心功能 | 无 | 差异磁盘 | 链接克隆 |
| 内部压缩 | 原生 zlib 和 Zstandard (Zstd) | 无 | 无 | 针对流优化的压缩 |
常见损坏模式与十六进制恢复指南
QEMU 错误:"qemu-system-x86_64: qcow2: 镜像已损坏:找不到引用计数块"。
根本原因: 宿主机异常关机,导致簇分配引用计数更新中断。
恢复方法: 使用“qemu-img check -r all broken.qcow2”或 File2File.app 修复簇分配。
安全分析与解析器攻击向量
QCOW2 解析器会处理簇偏移表,其中格式错误的引用可能导致虚拟机管理程序中的宿主机内存损坏。
已知攻击向量
- 易受攻击的 QEMU 块驱动程序发生簇越界写入,可能导致逃逸出虚拟机管理程序。
- 后备文件路径引用中的路径遍历漏洞。
- 通过循环后备文件引用链实施拒绝服务攻击。
防御性最佳实践: 限制后备文件路径,并在非特权用户命名空间中运行虚拟机。
历史渊源与里程碑
2019QEMU 4.0 为 QCOW2 簇引入原生 Zstandard(Zstd)压缩。
2012QCOW2 第 3 版规范新增子簇零标志,并改进元数据缓存。
2006Fabrice Bellard 设计了 QCOW2,以克服原始 QCOW 的性能和快照局限性。
核心优势与特点
- 精简配置:仅为已写入数据的簇占用物理磁盘空间。
- 写时复制(CoW)后备文件:可从单个基础模板启动数百台虚拟机,而无需复制存储。
- 内部快照:在不停止运行中的虚拟机实例的情况下捕获时间点虚拟机状态。
技术局限与劣势
- 由于需要进行两级集群表查找,I/O 开销略高于原始块设备。
- 经过长时间、高负载的随机写入后,可能会出现元数据碎片化。
- 在 Linux 环境之外检查或操作时,需要使用 qemu-img 或虚拟化工具。
趣味技术冷知识
- 前 4 个魔术字节是 0x51 0x46 0x49 0xFB,转换为 ASCII 码即为后跟 0xFB 字节的"QFI"(意为"QEMU 文件镜像")。
- QCOW2 由传奇的法国程序员 Fabrice Bellard 创建,他还创建了 FFmpeg、QEMU 和 QuickJS。
- Proxmox VE 和 OpenStack 将 QCOW2 用作其企业云部署的主要虚拟存储格式。
常见技术问题
什么是 QCOW2 文件?
QCOW2 文件是 Linux 虚拟化软件(如 QEMU 和 KVM)使用的虚拟硬盘映像,具有精简配置和即时快照功能。
如何将 QCOW2 转换为 RAW 或 VMDK?
您可以使用 File2File.app 或“qemu-img convert”命令将 QCOW2 磁盘映像转换为 RAW、VMDK 或 VHD 格式。
什么是写时复制(Copy-on-Write)?
写时复制意味着磁盘仅保存对系统所做的更改。原始基础映像保持不变,从而允许数百个虚拟机共享相同的基本模板。