是什么
镜像检查有两条命令:info 读取元数据,告诉你格式、虚拟容量、实际占用与是否依赖底层镜像;map 输出哪些区块已经分配。判断一个镜像是精简置备还是厚置备、估算转换后的大小、确认镜像链是否完整,都靠这两条。迁移与交付前的容量核对,先跑一遍这两条命令比凭经验估算可靠。
基本信息
| 基本信息 | qemu-img info 镜像文件,输出格式与容量 |
|---|---|
| 结构化输出 | 加 --output=json 便于脚本解析 |
| 区块分布 | qemu-img map 镜像文件,列出已分配区块 |
| 镜像链 | 加 --backing-chain 逐层查看依赖关系 |
| 只读操作 | 这两条命令都不修改镜像,可安全用于生产文件 |
典型使用场景
- 交付前核对:确认镜像格式与目标平台一致,容量符合规格
- 容量评估:用实际分配量而非虚拟容量估算存储与传输需求
- 转换前检查:转换格式前确认镜像链完整,避免只搬了顶层文件
- 故障排查:虚机启动报错时确认底层镜像是否缺失或路径失效
- 瘦身评估:判断镜像是否存在大量已分配但实际未使用的区块
检查镜像与区块分布
检查镜像与区块分布
qemu-img info disk.qcow2 # 格式、虚拟容量、实际占用
qemu-img info --output=json disk.qcow2 | head -20 # 结构化输出,便于比对
qemu-img info --backing-chain disk.qcow2 # 逐层查看依赖链
qemu-img map --output=json disk.qcow2 | head -20 # 已分配区块分布
# 计算已分配量可以判断瘦盘真实占用与转换目标容量
qemu-img check disk.qcow2 # 一致性检查,只读不改输出字段判读
| 字段 | 含义 | 判读要点 |
|---|---|---|
| file format | 镜像格式 | 与目标平台要求不一致时先转换再用 |
| virtual size | 虚机看到的磁盘容量 | 与分区规划对齐,大于实际使用属正常 |
| disk size | 宿主文件实际占用 | 远小于虚拟容量说明是精简置备 |
| backing file | 底层镜像路径 | 存在依赖说明不能单独搬走这个文件 |
| corrupt | 一致性检查结论 | 非零说明镜像可能损坏,先修复再使用 |
交付或迁移前用实际分配量估算传输时间与目标容量:按虚拟容量估算会高估需求,按文件大小估算又会低估转换后的占用,两者结合才准。
镜像链上的底层文件缺失或放在网络位置时,脱离该环境读取会直接报错;搬移镜像必须把整条链一起带走,或先合并成单层镜像。