OS: Kubuntu 10.04
Virt-manager 0.8.2 using libvirt and qemu/kvm

Problem:
I recently loaded a qcow2 virtual hard drive image into a new virtual machine that I created with with virt-manager. I couldn't get the vm to boot event thought it was fine before I detached the hard drive image.

The error I received from the virt-manager console:
Code:
Booting from Hard Disk...
Boot failed: not a bootable disk

No bootable device.
Leaving this displayed on the console and checking the command run:
Code:
ps aux | grep kvm
Results in:
Code:
/usr/bin/kvm -S -M pc-0.12 -enable-kvm -m 768 -smp 1 -name Win7_x64-Dell -uuid 771259fa-01f7-ecea-f9e8-4c0576498354 -chardev socket,id=monitor,path=/home/localadmin/.libvirt/qemu/lib/Win7_x64-Dell.monitor,server,nowait -monitor chardev:monitor -localtime -boot c -drive if=ide,media=cdrom,index=2,format=raw -drive file=/storage/vmimages/Windows7_x64-01/qcow2-60GB_HDD1.img,if=ide,index=0,boot=on,format=raw -net nic,macaddr=52:54:00:6e:11:67,vlan=0,model=e1000,name=e1000.0 -net user,vlan=0,name=user.0 -chardev pty,id=serial0 -serial chardev:serial0 -parallel none -usb -usbdevice tablet -vnc 127.0.0.1:0 -vga cirrus -soundhw es1370
Solution:
It appears that virt-manager does not read the hard drive image format of a pre-existing image when creating a new virtual machine and instead chooses the "raw" format. Since virt-manager seems to store it's setting internally, you cannot just edit the ~/.libvirt/qemu/VMNameHere.xml file.

You must export the libvirt vm settings to xml, fix the hard drive image formatting, and import the vm settings back into libvirt.

Get vm name:
Code:
virsh -c qemu:///session list --all
If your vm is in the system account instead of your user account replace qemu:///session with qemu:///system

Export vm settings:
Code:
virsh -c qemu:///session dumpxml VMName > ~/Desktop/VMName.xml
Update the hard drive format in the xml file:
Code:
From   
<devices>
    <emulator>/usr/bin/kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/storage/vmimages/Windows7_x64-01/qcow2-60GB_HDD1.qcow2'/>
      <target dev='hda' bus='ide'/>
    </disk>
To
<devices>
    <emulator>/usr/bin/kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/storage/vmimages/Windows7_x64-01/qcow2-60GB_HDD1.qcow2'/>
      <target dev='hda' bus='ide'/>
    </disk>
Remove old vm settings in virt-manager:
Open virt-manager and delete the problem vm but make sure to leave the hard drive image

Import in the fixed xml file:
Code:
virsh -c qemu:///session define ~/Desktop/VMName.xml
The vm will automatically appear in virt-manager.
The vm should now work fine.


Other notes:
This qcow2/raw issue occurs to every hard drive image I load into a vm using virt-manager and so I must edit and reimport the xml each time.

You might be able to shutdown libvirt-bin and qemu-kvm services, edit the ~/.libvirt/qemu/VMNameHere.xml file and reboot as a shorter method but I didn't verify this works.

Hopefully this will save some several hours of searching.