Bug 808872 - boot failover on usb-storage will not switch to other device
boot failover on usb-storage will not switch to other device
Status: CLOSED NOTABUG
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: seabios (Show other bugs)
6.3
Unspecified Unspecified
medium Severity medium
: rc
: ---
Assigned To: Paolo Bonzini
Virtualization Bugs
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2012-04-01 07:51 EDT by Chao Yang
Modified: 2012-04-05 22:39 EDT (History)
6 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2012-04-02 10:30:54 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Chao Yang 2012-04-01 07:51:25 EDT
Description of problem:
If boot from a usb-storage fails, i.e. usb-storage is not a bootable one. Seabios not trying to boot from other device but reports:
This is not a bootable disk.  Please insert a bootable floppy and
press any key to try again ...

Version-Release number of selected component (if applicable):
qemu-kvm-0.12.1.2-2.265.el6rhev.x86_64
seabios-0.6.1.2-16.el6.x86_64


How reproducible:


Steps to Reproduce:
1.
2.
3.
  
Actual results:


Expected results:


Additional info:
CLI:
/usr/libexec/qemu-kvm -M rhel6.3.0 -cpu Nehalem -enable-kvm -m 2048 -smp 2,sockets=1,cores=2,threads=1 -name seabios -uuid 0878530e-dc0a-4f8e-ac38-4ae2b1a44d92 -boot menu=on  -rtc base=localtime,clock=host,driftfix=slew -device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0 -device piix3-usb-uhci,id=usb,bus=pci.0 -drive file=/dev/chayang-ag/seabios,if=none,id=drive-virtio-disk0,format=raw,serial=69-a2ad-85f195fee049,cache=none,werror=stop,rerror=stop,aio=native -device virtio-blk-pci,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1,scsi=on \

-drive file=/home/en_windows_7_ultimate_with_sp1_x64_dvd_618240.iso,if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0,bootindex=3 \

-netdev tap,id=hostnet0,vhost=on -device virtio-net-pci,netdev=hostnet0,id=net0,mac=00:33:AE:27:54:AF,bus=pci.0,bootindex=4 \

-netdev tap,id=hostnet1,vhost=on -device e1000,netdev=hostnet1,id=net1,mac=00:33:AE:27:14:1F,bus=pci.0,bootindex=5 \

-netdev tap,id=hostnet2,vhost=on -device rtl8139,netdev=hostnet2,id=net2,mac=00:33:AE:27:24:2F,bus=pci.0,bootindex=6 \

-chardev socket,id=charchannel0,path=/opt/seabios.com.redhat.rhevm.vdsm,server,nowait -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.rhevm.vdsm -chardev spicevmc,id=charchannel1,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=2,chardev=charchannel1,id=channel1,name=com.redhat.spice.0 -spice port=9000,disable-ticketing -k en-us -vga qxl -global qxl-vga.vram_size=67108864 -device virtio-balloon-pci,id=balloon -device usb-ehci,id=ehci -drive file=/dev/chayang-ag/usb-storage,if=none,id=drive-virtio-disk1,format=raw,cache=none,werror=stop,rerror=stop,aio=native,serial=e4977805-a8f6-4854-98a0-edbd1ee9ed58 -device usb-storage,bus=ehci.0,port=1,drive=drive-virtio-disk1,id=virtio-disk1,port=1,removable=on,bootindex=0 \

-drive file=/opt/RHEL6.2.z-64.qcow2,if=none,id=drive-virtio-disk2,format=qcow2,cache=none,werror=stop,rerror=stop,aio=native,serial=4071bf55-4710-4652-9af5-206a9ece1644 -device usb-storage,drive=drive-virtio-disk2,id=virtio-disk2,bus=ehci.0,port=2,bootindex=8  \

-drive file=/home/test.vfd,if=none,id=drive-fdc0-0-0,readonly=on,format=raw -global isa-fdc.driveA=drive-fdc0-0-0 -global isa-fdc.bootindexA=7 -monitor stdio
Comment 2 Paolo Bonzini 2012-04-02 10:30:54 EDT
The error message comes from the boot record of your disk, not from SeaBIOS.
Comment 3 Chao Yang 2012-04-05 01:02:20 EDT
(In reply to comment #2)
> The error message comes from the boot record of your disk, not from SeaBIOS.

If booting from disk fails, shouldn't Seabios try to boot from other device, like NIC(depends on bootindex specified in cli)? QE was testing how Seabios behaves on boot failover. It is proved that Seabios could try to boot from NIC if fails to boot from virtio disk with bootindex specified in cli.
Comment 4 Paolo Bonzini 2012-04-05 12:06:20 EDT
It cannot, because the boot succeeded.  The boot code in the disk however does nothing but an infinite loop.  The "bug" is not in SeaBIOS, it is in the disk boot sector which you cannot control.

Similarly if boot from NIC did not failover you would open a bug on gpxe, not seabios.
Comment 5 Chao Yang 2012-04-05 22:39:19 EDT
(In reply to comment #4)
> It cannot, because the boot succeeded.  The boot code in the disk however does
> nothing but an infinite loop.  The "bug" is not in SeaBIOS, it is in the disk
> boot sector which you cannot control.
> 
> Similarly if boot from NIC did not failover you would open a bug on gpxe, not
> seabios.

Thanks for your clarification. I retried with a fresh disk---no partition/fs on it, and failover works well.

Note You need to log in before you can comment on or make changes to this bug.