解決 qcow2 image : Could not read snapshots. File too large
在 KVM VM running 的中,執行了 qemu-img snapshot -c ....
,可能是沒有算好 image 的剩餘空間,也可能是某種 bug,總之,當 VM 關機後,就再也開不起來了。
qemu-img info
會產生錯誤:
Host1 # qemu-img info portal.img
qemu-img: Could not open 'portal.img': Could not read snapshots: File too large
Solution
先將 image 傳送到其他機器上,就可以用 qemu-img info
查看 image 的資料:
Host2 # qemu-img info portal.img
image: portal.img
file format: qcow2
virtual size: 50G (53687091200 bytes)
disk size: 53G
cluster_size: 65536
Snapshot list:
ID TAG VM SIZE DATE VM CLOCK
-1 2106-02-07 14:28:155124095:34:33.709
0 1970-01-01 08:00:00 00:00:00.000
可以看到 snapshot 的資訊還殘存,但是不完整,因此也不能刪除 snapshot。
接下來,利用 qemu-img convert
去產生新的 image:
Host2 # qemu-img convert -O raw portal.img portal.raw
Host2 # qemu-img info portal.raw
image: portal.raw
file format: raw
virtual size: 50G (53687091200 bytes)
disk size: 45G
可以看到新的 image 就沒有 snapshot 了,這時候再把新的 image 傳回去原本的 server 就可以使用囉。