Corrupt qcow2 images with broken bitmap unfixable
Host environment
- Operating system: AlmaLinux 9
- OS/kernel version: 5.14.0-503.34.1.el9_5.x86_64
- Architecture: x86_64
- QEMU flavor: qemu-img
- QEMU version: qemu-img-9.0.0-10.el9.2.1.x86_64
Description of problem
During a backup of a VM (via bitmaps), the disk of the VM/Snapshot went out of space. The VM was stopped, leaving the image in a bad state.
But now when trying to repair it, it was stuck:
# qemu-img check -r all /dev/mapper/e1d2ff33--c3fd--4c1a--bcd1--2047e4efc362-efbd8056--720a--47b6--bede--4325d576ffb9
qemu-img: Could not open '/dev/mapper/e1d2ff33--c3fd--4c1a--bcd1--2047e4efc362-efbd8056--720a--47b6--bede--4325d576ffb9': Bitmap '' doesn't satisfy the constraints
But if you want to remove the bitmap:
# qemu-img bitmap --remove /dev/mapper/e1d2ff33--c3fd--4c1a--bcd1--2047e4efc362-efbd8056--720a--47b6--bede--4325d576ffb9 ''
qemu-img: Could not open '/dev/mapper/e1d2ff33--c3fd--4c1a--bcd1--2047e4efc362-efbd8056--720a--47b6--bede--4325d576ffb9': qcow2: Image is corrupt; cannot be opened read/write
It seems like qemu-img check needs some option to clear invalid bitmaps. So the image can be repaired including dropping the invalid bitmap.