I'm using KVM to host a Debian unstable guest on a Debian unstable host. Emphasis on 'unstable' :-) Until recently (and until a recent round of Debian package updates on both host and guest) this was working fine.
Now the Linux guest will boot from a CD-ROM image, but it will not boot from a hard disk image stored in an LVM2 LV.
A Microsoft Windows guest stored in a separate LVM2 LV continues to boot perfectly under KVM on this host.
When I configure the Linux guest to boot from device 'hd' (ie, the LVM2 LV disk image) and view the guest's console using virt-manager, I see:
Booting from Hard Disk... Boot failed: not a bootable disk
The disk image seems to have a valid MBR:
sudo cat /dev/vg1/myguest|file - /dev/stdin: x86 boot sector
I can also mount the root filesystem contained within the LVM2 disk image (the offset below having been calculated from fdisk output - the disk image contains two partitions):
sudo mount -o offset=1998743040 /dev/vg1/myguest /mnt ; echo $? ; ls /mnt/boot ; sudo umount /mnt 0 config-3.8.0 config-3.9.0 grub System.map-3.8.0 System.map-3.9.0 vmlinuz-3.8.0 vmlinuz-3.9.0
I tried configuring the guest to boot from an ISO image of Debian 7.0.0 AMD64 netinst. This allowed me to boot into rescue mode from the CD-ROM and re-install the GRUB boot loader into the MBR of the LVM2 LV. However this does not change the above behaviour - booting from the hd still fails.
To my eyes, it is as if the MBR is valid, but KVM refuses to recognise that it is valid.
Q1: How can I best confirm that the MBR on the LVM2 disk image is valid? Perhaps attempt to boot a real physical machine from a copy of the LVM2 disk image on a real disk?
Q2: What is required in order for a disk image to be bootable by KVM?
Ie, what exactly does 'not a bootable disk' mean? Could there be more necessary than just a valid MBR?