小编Ned*_*d64的帖子

如何为 libvirt/kvm 修复损坏的调整大小的 qcow2 磁盘映像?

今天我想增加一个虚拟机的大小,所以我做了我一直在做的事情(以前做过):

qemu-img resize diskimage.qcow2 +22GB
Run Code Online (Sandbox Code Playgroud)

然后文件损坏了,VM 不再启动。我尝试从 CD 启动 VM 以调整分区,但系统将不再读取磁盘:

qemu-img check -r all diskimage.qcow2
tcmalloc: large alloc 389841715200 bytes == (nil) @  0x7fdb4ea66bf3 0x7fdb4ea88488 0x7fdb4e5674a6 0x7fdb50236a37 0x7fdb50236bc8 0x7fdb50237011 0x7fdb5023941e 0x7fdb5023d891 0x7fdb5027848b 0x7fdb5027c196 0x7fdb491efb35 0x7fdb5021ee4d (nil)
No errors were found on the image.
Run Code Online (Sandbox Code Playgroud)

没有错误?听起来不错,但virsh start vm不起作用,日志说:

2017-05-21T10:02:30.755824Z qemu-system-x86_64: -drive file=/.../diskimage.qcow2,format=qcow2,if=none,id=drive-virtio-disk0: could not open disk image /.../diskimage.qcow2: qcow2: Image is corrupt; cannot be opened read/write
Run Code Online (Sandbox Code Playgroud)

我尝试转换为 raw 但转换失败(退出 1):

qemu-img convert -f qcow2 diskimage.qcow2 -O raw diskimage.raw
qcow2: …
Run Code Online (Sandbox Code Playgroud)

corruption libvirt qemu qcow2 kvm-virtualization

8
推荐指数
1
解决办法
2万
查看次数

标签 统计

corruption ×1

kvm-virtualization ×1

libvirt ×1

qcow2 ×1

qemu ×1