Bug 808872 - boot failover on usb-storage will not switch to other device
Summary: boot failover on usb-storage will not switch to other device
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: seabios
Version: 6.3
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: rc
: ---
Assignee: Paolo Bonzini
QA Contact: Virtualization Bugs
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-04-01 11:51 UTC by Chao Yang
Modified: 2012-04-06 02:39 UTC (History)
6 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-04-02 14:30:54 UTC
Target Upstream Version:


Attachments (Terms of Use)

Description Chao Yang 2012-04-01 11:51:25 UTC
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 14:30:54 UTC
The error message comes from the boot record of your disk, not from SeaBIOS.

Comment 3 Chao Yang 2012-04-05 05:02:20 UTC
(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 16:06:20 UTC
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-06 02:39:19 UTC
(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.