关于KVM虚拟机扩增qcow2硬盘容量qemu-img报错的事件
由于前段时间某个KVM虚拟机硬盘容量不够了,想对该虚拟机硬盘进行扩容,输入了以下命令:
qemu-img resize win2003r2.qcow2 +33G
意思是使用qemu-img工具直接对qcow2硬盘文件的容量增加33G,结果控制台返回了以下信息:
qemu-img: Error resizing image: Invalid argument
看到这个顿时一脸问号,原先一直都是这个方法扩容啊,为什么今天不行了呢?上网找了一下好像没看到什么解决方案,顿时头就更大了,虽然对于kvm还有挂载一个新的硬盘进行扩容这样一个新的方案,但本人还是觉得直接resize方便多了,所以只好自己进行排错。
思路:首先用qemu-img新建一个test1.qcow2文件,大小为1G,再敲入以下命令:
qemu-img resize test1.qcow2 +9G
控制台返回了扩容成功的消息,说明问题来源于虚拟机自身的硬盘文件win2003r2.qcow2上,我们先把硬盘文件进行备份,避免后续的操作造成数据丢失。
备份:cp win2003r2.qcow2 win2003r2.qcow2.old
备份成功后,继续使用qemu-img检查qcow2文件
qemu-img check win2003r2.qcow2
控制台返回6处错误,再试着用qemu-img尝试修复一下
qemu-img check -r all win2003r2.qcow2
-r all代表修复各种类型的错误
最后控制台返回了修复成功的消息,然后敲入qemu-img resize win2003r2.qcow2 +33G
终于看到了期待已久的"Image resized."字样,问题完美解决。