Can't boot VM "Bitmap '' doesn't satisfy the constraints"

Oct 30, 2025
19
1
1
Hi,

we were having trouble backing up a VM getting this error:
'/dev/proxmox_cluster1_1/vm-112-disk-1.qcow2': Bitmap '' doesn't satisfy the constraints

Now we tried rebooting the VM - and it does not boot anymore with the same error.

This error is quite unique and we can't find much information online about this. If anyone knows anything about this, it would really help.

thanks!
 
qemu-img check and qemu-img info all end in the same error.

With lvcreate and DD we are able to create a copy of the disk.

On the copy we tried to remove the bitmap with, but it also ends in the same error:
root@hi0s0046:/dev# qemu-img bitmap --remove /dev/proxmox_cluster1_1/vm-112-disk-1-copy2 ""
qemu-img: Could not open '/dev/proxmox_cluster1_1/vm-112-disk-1-copy2': Bitmap '' doesn't satisfy the constraints

As next step we will try to convert the disk with the operator --skip-broken-bitmaps.
qemu-img convert -p \
-f qcow2 -O qcow2 \
--bitmaps --skip-broken-bitmaps
 
In case anyone ever encounters this, this is how we fixed it. proxmox_cluster1_1 is one of our LVM VG, you need to replace it with the name of your VG.

(Optional) Get overview which disks are present on the LVM and which are active on the node
lvdisplay proxmox_cluster1_1 | grep -Ei 'status|path'

Read size from original disk
SIZE=$(lvs --noheadings -o lv_size --units B --nosuffix "/dev/proxmox_cluster1_1/vm-112-disk-7.qcow2" | xargs)

Create new LV, one as a copy and one as the final fixed disk
lvcreate -n vm-112-disk-7-copy.qcow2 -L "${SIZE}B" proxmox_cluster1_1
lvcreate -n vm-112-disk-7-fixed.qcow2 -L "${SIZE}B" proxmox_cluster1_1

Copy data from original disk to copy disk
dd if=/dev/proxmox_cluster1_1/vm-112-disk-7.qcow2 of=/dev/proxmox_cluster1_1/vm-112-disk-7-copy.qcow2 bs=64K status=progress

Define SRC Parameter (Copy Disk)
SRC=/dev/proxmox_cluster1_1/vm-112-disk-7-copy.qcow2

Read header from copy disk
dd if="$SRC" of=/root/vm-112-disk-7.qcow2.header.bin bs=1M count=4 status=progress

Read offset from copy disk. Whatever number this command gives back, define as offset in next command
LC_ALL=C grep -aob $'\x23\x85\x28\x75' /root/vm-112-disk-7.qcow2.header.bin

Define offset
OFFSET=504

Rewrite offset
printf '\xFF\xFF\xFF\xFF' | dd of="$SRC" bs=1 seek=$OFFSET conv=notrunc status=none

Convert disk with fixed offset from qcow2 to qcow2
qemu-img convert -p -f qcow2 -O qcow2 /dev/proxmox_cluster1_1/vm-112-disk-7-copy.qcow2 /dev/proxmox_cluster1_1/vm-112-disk-7-fixed.qcow2

Attach disk to VM
qm set 112 --scsi6 proxmox_cluster1_1:vm-112-disk-7-fixed.qcow2,discard=on,iothread=1,ssd=1
 
Last edited:
  • Like
Reactions: noxxville