qemu-img执行创建快照命令返回错误码1,如何排查具体失败原因?
qemu-img执行创建快照命令返回错误码1,如何排查具体失败原因?
别纠结啦,其实你遇到的这个错误就是因为没显式指定后端镜像的格式导致的!
虽然qemu-img已经检测到后端镜像arch-x86.qcow2是qcow2格式,但它的逻辑是:当你用-b指定后端文件时,必须通过-F参数明确告诉它后端文件的格式,哪怕它能自动识别,也不会自动替你补这个参数——这是为了避免格式识别出错的风险,确保你清楚自己用的是什么格式的镜像。
解决办法很简单,给命令加上-F qcow2参数就行:
qemu-img create -f qcow2 -b arch-x86.qcow2 -F qcow2 snapshot.qcow2
再给你几个排查这类问题的通用技巧:
- 开启 verbose 模式看详细日志:给命令加
-v参数,比如qemu-img create -v -f qcow2 -b arch-x86.qcow2 snapshot.qcow2,这样能看到qemu-img执行的每一步细节,更容易定位问题。 - 核对版本对应的参数要求:不同版本的qemu-img参数规则可能有差异,比如有些新版本可能允许省略
-F(如果能自动识别的话),但你的版本显然是要求必须显式指定的,所以得按当前版本的规则来。 - 检查文件基础状态:虽然这次你的问题不是这个,但以后遇到类似错误,也要确认后端镜像文件存在、路径拼写正确、当前用户有读取权限——毕竟如果文件都访问不了,也会返回错误码1。
备注:内容来源于stack exchange,提问作者gcb
相关产品推荐
相关产品推荐

