首页/云/云平台与虚拟化速查/qemu-img create 创建磁盘镜像
虚拟化操作94 条

qemu-img create 创建磁盘镜像

qemu-img create 生成指定格式与容量的镜像:qcow2 支持预分配选项改善首次写性能,raw 稀疏文件按需落盘;容量只是上限,guest 内仍需分区格式化。

云平台与虚拟化速查云更新于 2026-10-13

qemu-img create 创建镜像

qemu-img create 生成指定格式与容量的磁盘镜像文件,是手工建虚机与准备数据盘的第一步。容量参数只是给 guest 看到的虚拟大小,文件本身在 qcow2 下按需增长。生成后镜像里还没有分区表与文件系统,guest 内仍要完成分区与格式化,把 create 当成「做好了盘」是最常见的误解。

基本信息

基础用法qemu-img create -f qcow2 disk.qcow2 40G
预分配-o preallocation=metadata 预分配元数据,falloc 快速分配数据区
簇大小-o cluster_size=64k 适配顺序写场景,小簇适合随机小 IO
raw 格式qemu-img create -f raw disk.img 40G,默认稀疏占用
校验qemu-img info 查看格式、虚拟容量与实际占用

典型使用场景

  • 手工建虚机前准备系统盘镜像文件
  • 新增数据盘:在宿主上先生成镜像再挂给虚机
  • 模板制作:批量生成同规格的空盘作为交付起点
  • 性能调优:对比不同预分配与簇大小设置下的表现
  • 实验室环境:快速准备多个空盘验证存储与挂载配置

创建带预分配的 qcow2

创建带预分配的 qcow2
qemu-img create -f qcow2 -o preallocation=metadata disk.qcow2 40G
# metadata 预分配元数据,改善首次写入时的碎片与延迟
qemu-img create -f qcow2 -o cluster_size=64k,preallocation=falloc disk2.qcow2 40G
qemu-img info disk.qcow2        # 核对虚拟容量与实际占用
# 生成后仍需在 guest 内分区并 mkfs,镜像本身是空白的

选项取舍

选项作用取舍
preallocation=metadata预分配元数据首次写更快,占用略增
preallocation=falloc快速分配实际空间创建即占满容量,避免运行时膨胀
cluster_size=64k调整簇大小顺序写更优,随机小 IO 需评估
raw 格式无元数据开销不支持快照,容量需一次预留
qcow2 文件的实际占用随写入增长,监控存储容量时要看虚拟容量与增长趋势,不能只看当前文件大小。
使用 falloc 预分配会立即占满对应容量:存储空间评估不足时,创建动作本身就能把数据存储撑爆。
建盘之后立刻把路径、容量与用途记录下来:宿主上堆积多块没有命名的空镜像时,清理阶段很难判断哪块还在使用、哪块可以删除。
生成镜像只是准备了一块空盘,实际可用容量还取决于 guest 内文件系统的选择与挂载方式,建盘容量与业务可用容量并不总是同一个数。

易错点

  • 把 create 当初始化文件系统:guest 内还要 mkfs 与挂载
  • preallocation=falloc 瞬间占盘:容量评估不足会撑爆存储
  • 按文件当前大小判断还能放多少虚机,忽略后续增长导致容量触顶
  • 为 raw 盘规划快照能力,实际该格式不支持内部快照

数据来源与参考

  • qemu-img 手册:create
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌