Bug 1020622

Summary: seabios fail to recognize virtio-scsi device if specify LUN not 0
Product: Red Hat Enterprise Linux 7 Reporter: Sibiao Luo <sluo>
Component: seabiosAssignee: Paolo Bonzini <pbonzini>
Status: CLOSED ERRATA QA Contact: FuXiangChun <xfu>
Severity: medium Docs Contact: Jiri Herrmann <jherrman>
Priority: medium    
Version: 7.0CC: aliang, chayang, gveitmic, hhuang, juzhang, knoel, lmen, michen, mkenneth, mtessun, nmarjano, pagupta, pasik, pbonzini, qzhang, rbalakri, rpacheco, swandl, tnisan, tzheng, virt-maint, xfu, xuzhang, yafu, yama, yanyang, yhong, yisun
Target Milestone: rc   
Target Release: 7.4   
Hardware: Unspecified   
OS: Unspecified   
Fixed In Version: seabios-1.10.2-3.el7 Doc Type: Release Note
Doc Text:
SeaBIOS recognizes SCSI devices with a non-zero LUN Previously, SeaBIOS only recognized SCSI devices when the logical unit number (LUN) was set to zero. Consequently, if a SCSI device was defined with a LUN other than zero, SeaBIOS failed to boot. With this update, SeaBIOS recognizes SCSI devices with LUNs other than zero. As a result, SeaBIOS boots successfully.
Story Points: ---
Clone Of: 1020303 Environment:
Last Closed: 2017-08-01 17:44:06 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 1020303, 1147370, 1395265, 1401400, 1420869, 1432847    

Comment 1 Sibiao Luo 2013-10-18 05:21:30 UTC
host info:
guest info:

the same to comment #0.

# /usr/libexec/qemu-kvm -M pc -S -cpu SandyBridge -enable-kvm -m 2048 -smp 2,sockets=2,cores=1,threads=1 -no-kvm-pit-reinjection -usb -device usb-tablet,id=input0 -name sluo -uuid 990ea161-6b67-47b2-b803-19fb01d30d30 -rtc base=localtime,clock=host,driftfix=slew -device virtio-serial-pci,id=virtio-serial0,max_ports=16,vectors=0,bus=pci.0,addr=0x3 -chardev socket,id=channel1,path=/tmp/helloworld1,server,nowait -device virtserialport,chardev=channel1,name=com.redhat.rhevm.vdsm,bus=virtio-serial0.0,id=port1 -chardev socket,id=channel2,path=/tmp/helloworld2,server,nowait -device virtserialport,chardev=channel2,name=com.redhat.rhevm.vdsm,bus=virtio-serial0.0,id=port2 -drive file=/home/RHEL-Server-7.0-64.qcow2,if=none,id=drive-virtio-disk,format=qcow2,cache=none,aio=native,werror=stop,rerror=stop -device virtio-blk-pci,vectors=0,bus=pci.0,addr=0x4,scsi=off,drive=drive-virtio-disk,id=virtio-disk,bootindex=1 -netdev tap,id=hostnet0,vhost=on,script=/etc/qemu-ifup -device virtio-net-pci,netdev=hostnet0,id=virtio-net-pci0,mac=2C:41:38:B6:40:21,bus=pci.0,addr=0x5 -device virtio-balloon-pci,id=ballooning,bus=pci.0,addr=0x6 -global PIIX4_PM.disable_s3=0 -global PIIX4_PM.disable_s4=0 -k en-us -boot menu=on -spice disable-ticketing,port=5932 -monitor stdio -drive file=/home/my-data-disk.qcow2,if=none,id=drive-data-disk1,format=qcow2,cache=none,werror=stop,rerror=stop -device virtio-scsi-pci,bus=pci.0,addr=0x7,id=scsi0 -device scsi-hd,drive=drive-data-disk1,id=data-disk1,bus=scsi0.0,lun=1 -drive file=/home/my-data-disk.raw,if=none,id=drive-data-disk2,format=raw,cache=none,werror=stop,rerror=stop -device virtio-scsi-pci,bus=pci.0,addr=0x8,id=scsi1 -device scsi-hd,drive=drive-data-disk2,id=data-disk2,bus=scsi1.0,lun=2

Actual results:
Press F12 for boot menu.

Select boot device:

1. Virtio disk PCI:0:4
2. Legacy option rom
3. Floppy [drive A]
5. iPXE (PCI 00:05.0)

Expected results:
seabios should recognize virtio-scsi device if specify LUN not 0.
1. Virtio disk PCI:0:4
 * Virtio-scsi Drive QEMU QEMU HARDDISK 0.12 *   <----------
 * Virtio-scsi Drive QEMU QEMU HARDDISK 0.12 *   <----------
2. Legacy option rom
3. Floppy [drive A]
5. iPXE (PCI 00:05.0)

Comment 2 Paolo Bonzini 2013-10-18 07:18:15 UTC
Yes, this is a known limitation that may be lifted later.

Comment 4 Paolo Bonzini 2014-09-29 08:43:58 UTC
*** Bug 1147370 has been marked as a duplicate of this bug. ***

Comment 8 Yanhui Ma 2015-07-23 07:20:46 UTC
I hit the issue with seabios-1.7.5-11.el7.x86_64.

Comment 10 Jaroslav Suchanek 2016-04-05 14:31:21 UTC
*** Bug 1320901 has been marked as a duplicate of this bug. ***

Comment 11 Paolo Bonzini 2016-08-12 13:22:37 UTC
*** Bug 1366464 has been marked as a duplicate of this bug. ***

Comment 12 Germano Veit Michel 2016-08-14 23:34:27 UTC
(In reply to Paolo Bonzini from comment #6)
> Pankaj,
> the fix could apply to either RHEL 6 or RHEL 7, but is there a reason why
> the customer is not able to change the LUN numbers (e.g. change the target
> number and always specify unit=0)?

In RHEV, the unit cannot be manually specified by the customer in an easy way.

The only non intrusive workaround is to detach all the VMs disks and attach again ensuring the boot disk is the first one to be attached.

Comment 16 Paolo Bonzini 2017-03-14 18:14:03 UTC
Patches at https://www.coreboot.org/pipermail/seabios/2017-March/011232.html

Comment 17 Ademar Reis 2017-04-06 21:36:53 UTC
(In reply to Paolo Bonzini from comment #16)
> Patches at https://www.coreboot.org/pipermail/seabios/2017-March/011232.html

Paolo, there was some feedback on the series and I don't see the patches in the upstream repo or a v2 anywhere. Do you know anything about this series?

Comment 18 Paolo Bonzini 2017-04-26 15:56:38 UTC
Roman said a couple weeks ago that he was about to send v2.

Comment 19 Ademar Reis 2017-05-04 14:51:36 UTC
(In reply to Paolo Bonzini from comment #18)
> Roman said a couple weeks ago that he was about to send v2.

Looks like the code is now upstream:


Time for a backport?

Comment 20 Paolo Bonzini 2017-05-08 18:54:01 UTC
Yes, hope to post tomorrow.

Comment 22 Miroslav Rezanina 2017-05-12 08:03:34 UTC
Fix included in seabios-1.10.2-3.el7

Comment 24 Paolo Bonzini 2017-05-16 14:09:12 UTC
Replaced "virtio-scsi" with SCSI in the doc text.  One virtio-scsi device can have many SCSI devices, some with LUN zero, some with LUN not zero.

Comment 25 Paolo Bonzini 2017-05-26 13:53:07 UTC
*** Bug 1445616 has been marked as a duplicate of this bug. ***

Comment 26 Paolo Bonzini 2017-05-26 13:53:24 UTC
*** Bug 1446132 has been marked as a duplicate of this bug. ***

Comment 27 FuXiangChun 2017-06-05 10:15:02 UTC
1.Reproduced this bug this seabios-1.10.2-2.el7.x86_64. I can get the result as "no bootable device".

Boot guest with lun=0

/usr/libexec/qemu-kvm -name guest=r7,debug-threads=on -enable-kvm -M pc -cpu SandyBridge -m 8192 -realtime mlock=off -smp 4,sockets=1,cores=4,threads=1 -boot strict=on -rtc base=localtime,clock=host,driftfix=slew -drive file=/home/rhel74.qcow2,if=none,id=drive-system-disk,format=qcow2,cache=none,aio=native,werror=stop,rerror=stop,serial=QEMU-DISK1 -device virtio-scsi-pci,id=scsi0,bus=pci.0,ioeventfd=off -device scsi-hd,bus=scsi0.0,drive=drive-system-disk,id=system-disk,channel=0,scsi-id=0,lun=1,ver=mike,serial=ababab,bootindex=1 -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vram64_size_mb=0,vgamem_mb=16,bus=pci.0,addr=0x4 -vnc :2 -monitor stdio -netdev tap,id=hostnet0,script=/etc/qemu-ifup -device virtio-net-pci,netdev=hostnet0,id=net0,mac=12:54:00:5c:88:61 -device sga

2.Verified bug with seabios-1.10.2-3.el7.x86_64. 

Guest works well.

So, This bug is fixed. and set this bug as verified.

Comment 28 errata-xmlrpc 2017-08-01 17:44:06 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.


Comment 29 Pavel Hrdina 2017-09-05 13:45:06 UTC
*** Bug 1474730 has been marked as a duplicate of this bug. ***

Comment 30 Tal Nisan 2017-09-28 13:21:19 UTC
Hi Paolo, how can we have this package in Fedora 26 as well?

Comment 31 Paolo Bonzini 2017-11-17 14:03:03 UTC
*** Bug 1420869 has been marked as a duplicate of this bug. ***