Hello,
I have encountered a problem with the bootindex parameter for a KVM guest that has two virtio-blk disks. Although I set bootindex=1 for the second disk, the VM chooses rather randomly the disk it boots from.
host CPU: AMD Phenom II X4 955 Processor host OS (first): x86_64 debian-squeeze (kernel 2.6.38 amd64) host OS (later): x86_64 debian-squeeze (kernel 3.0 amd64) guest OS (both disks): e.g. x86_64 debian-squeeze (2.6.32 amd64)
This is how I invoke qemu (most of the times tested with Debian squeeze images):
# /usr/bin/qemu-system-x86_64 \ -m 256 \ -name test4221 \ -uuid f5dc124f-cbf4-6220-8b6b-15c0662be798 \ -nodefconfig \ -nodefaults \ -drive file=/opt/dev/4223,if=none,id=mydrive0,format=raw \ -device virtio-blk-pci,bus=pci.0,addr=0x7,drive=mydrive0,id=mydisk0,bootindex=2 \ -drive file=/opt/dev/4256,if=none,id=mydrive1,format=raw \ -device virtio-blk-pci,bus=pci.0,addr=0x4,drive=mydrive1,id=mydisk1,bootindex=1 \ -vga cirrus
(both tested, with and without bootindex=2 for the first disk)
When both disks contain different OS images (Debian vs. Windows), everything is fine. But when I try two disks with the same OS on them, (no matter whether both are Debian or both are Windows), then when
first starting the VM (by a call to qemu-system-x86_64) or simply rebooting the VM again and again,
the disk that is booted from seems to be chosen rather randomly.
I had qemu-kvm 0.14.0 and seabios 0.6.2 on the host when the problem was first encountered. Then I replaced seabios with the current version compiled from the git repository. Finally I removed qemu-kvm and seabios completely and did a "make install" with qemu-kvm 0.15 from the git repository.
# qemu-system-x86_64 -version QEMU emulator version 0.15.50 (qemu-kvm-devel), Copyright (c) \ 2003-2008 Fabrice Bellard
When I was using seabios post-0.6.2 from the git repo, I set its debug level to 5 and compared the debug output for the good and bad cases and found no difference.
Am I missing something or did I stumble over a bug?
Any hint would be welcome,
Elmar