[SeaBIOS] random boot-order with 2 virtio disks

Elmar Gerdes elmar.gerdes at profitbricks.com
Tue Aug 16 11:35:17 CEST 2011


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




More information about the SeaBIOS mailing list