Bug 1243364

Summary: "No bootable device" when first boot after installation with virtio 1.0 virtio-scsi or virtio-blk
Product: Red Hat Enterprise Linux 7 Reporter: Yanan Fu <yfu>
Component: seabiosAssignee: Gerd Hoffmann <kraxel>
Status: CLOSED DUPLICATE QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.2CC: chayang, hhuang, jasowang, juzhang, knoel, mst, ngu, qzhang, virt-bugs, virt-maint, yama, yfu, yiwei
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: seabios-1.9.1 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1257128 (view as bug list) Environment:
Last Closed: 2016-09-05 09:09:48 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:
Embargoed:
Bug Depends On: 1257052    
Bug Blocks: 1288337    

Description Yanan Fu 2015-07-15 10:05:52 UTC
Description of problem:

when add option "disable-legacy=true,disable-modern=false" for virtio-scsi-pci , it will show "No bootable device" when first boot after installation with virtio-scsi disk.  and in the bootmenu, no such disk.

Modify the CLI to use "disable-legacy=false,disable-modern=true", guest can boot successfully.

Version-Release number of selected component (if applicable):
kernel version: 3.10.0-294.el7.x86_64
qemu-kvm-rhev version: 2.3.0-10.el7.x86_64
seabios version: 1.7.5-10.el7.x86_64

How reproducible:
100%

Steps to Reproduce:
1.add option "disable-legacy=true,disable-modern=false," for virtto-scsi-pci disk. and install rhel7.2 guest onto it.
2.Boot the guest after install finished.
3.Failed to boot the guest, seabios show error: "No bootable device" 

Actual results:
Failed to boot a guest with error "No bootable device"
If press "ESC" to enter boot menu, no such disk in boot menu.

Expected results:
The guest can boot from disk successfully.

Additional info:
/usr/libexec/qemu-kvm -name test -S -machine pc,accel=kvm,usb=off -m 4G -realtime mlock=on -smp 4,sockets=4,cores=1,threads=1 -no-user-config -nodefaults -monitor stdio -rtc base=utc,driftfix=slew -global kvm-pit.lost_tick_policy=discard -no-hpet -global PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1 -boot menu=on,strict=on -device pci-bridge,bus=pci.0,id=bridge1,chassis_nr=1,addr=0x5 -device ich9-usb-ehci1,id=usb,bus=bridge1,addr=0x2.0x7 -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=bridge1,multifunction=on,addr=0x2.0x0 -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=bridge1,addr=0x2.0x1 -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=bridge1,addr=0x2.0x2 -device virtio-scsi-pci,disable-legacy=true,disable-modern=false,id=scsi -drive file=/home/yfu.qcow2,if=none,id=drive-scsi,media=disk,format=qcow2,cache=none -device scsi-disk,drive=drive-scsi,id=scsi-0,bus=scsi.0,bootindex=2 -device virtio-serial-pci,disable-legacy=true,disable-modern=false,id=virtio-serial0,bus=bridge1,addr=0x4 -device usb-tablet,id=input0 -netdev tap,id=hostnet0,vhost=on -device virtio-net-pci,disable-legacy=true,disable-modern=false,netdev=hostnet0,id=net0,mac=78:1a:4a:d6:b8:99,bus=bridge1,addr=0x5,bootindex=1 -spice port=5900,disable-ticketing -vga qxl -global qxl-vga.ram_size=67108864 -global qxl-vga.vram_size=33554432 -msg timestamp=on -monitor unix:/home/qmp,server,nowait -device vfio-pci,host=01:10.0,id=vf-00 -device vfio-pci,host=01:10.2,id=vf-01 -kernel vmlinuz -initrd initrd.img -append "repo=http://download.englab.nay.redhat.com/pub/rhel/nightly/latest-RHEL-7/compose/Server/x86_64/os/"

Comment 2 jason wang 2015-07-16 02:25:17 UTC
(In reply to Yanan Fu from comment #0)
> Description of problem:
> 
> when add option "disable-legacy=true,disable-modern=false" for
> virtio-scsi-pci , it will show "No bootable device" when first boot after
> installation with virtio-scsi disk.  and in the bootmenu, no such disk.
> 
> Modify the CLI to use "disable-legacy=false,disable-modern=true", guest can
> boot successfully.
> 
> Version-Release number of selected component (if applicable):
> kernel version: 3.10.0-294.el7.x86_64
> qemu-kvm-rhev version: 2.3.0-10.el7.x86_64
> seabios version: 1.7.5-10.el7.x86_64
> 
> How reproducible:
> 100%
> 
> Steps to Reproduce:
> 1.add option "disable-legacy=true,disable-modern=false," for virtto-scsi-pci
> disk. and install rhel7.2 guest onto it.
> 2.Boot the guest after install finished.
> 3.Failed to boot the guest, seabios show error: "No bootable device" 
> 
> Actual results:
> Failed to boot a guest with error "No bootable device"
> If press "ESC" to enter boot menu, no such disk in boot menu.
> 
> Expected results:
> The guest can boot from disk successfully.
> 
> Additional info:
> /usr/libexec/qemu-kvm -name test -S -machine pc,accel=kvm,usb=off -m 4G
> -realtime mlock=on -smp 4,sockets=4,cores=1,threads=1 -no-user-config
> -nodefaults -monitor stdio -rtc base=utc,driftfix=slew -global
> kvm-pit.lost_tick_policy=discard -no-hpet -global PIIX4_PM.disable_s3=1
> -global PIIX4_PM.disable_s4=1 -boot menu=on,strict=on -device
> pci-bridge,bus=pci.0,id=bridge1,chassis_nr=1,addr=0x5 -device
> ich9-usb-ehci1,id=usb,bus=bridge1,addr=0x2.0x7 -device
> ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=bridge1,multifunction=on,
> addr=0x2.0x0 -device
> ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=bridge1,addr=0x2.0x1 -device
> ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=bridge1,addr=0x2.0x2 -device
> virtio-scsi-pci,disable-legacy=true,disable-modern=false,id=scsi -drive
> file=/home/yfu.qcow2,if=none,id=drive-scsi,media=disk,format=qcow2,
> cache=none -device
> scsi-disk,drive=drive-scsi,id=scsi-0,bus=scsi.0,bootindex=2 -device
> virtio-serial-pci,disable-legacy=true,disable-modern=false,id=virtio-serial0,
> bus=bridge1,addr=0x4 -device usb-tablet,id=input0 -netdev
> tap,id=hostnet0,vhost=on -device
> virtio-net-pci,disable-legacy=true,disable-modern=false,netdev=hostnet0,
> id=net0,mac=78:1a:4a:d6:b8:99,bus=bridge1,addr=0x5,bootindex=1 -spice
> port=5900,disable-ticketing -vga qxl -global qxl-vga.ram_size=67108864
> -global qxl-vga.vram_size=33554432 -msg timestamp=on -monitor
> unix:/home/qmp,server,nowait -device vfio-pci,host=01:10.0,id=vf-00 -device
> vfio-pci,host=01:10.2,id=vf-01 -kernel vmlinuz -initrd initrd.img -append
> "repo=http://download.englab.nay.redhat.com/pub/rhel/nightly/latest-RHEL-7/
> compose/Server/x86_64/os/"

This probably because bios does not support virtio 1.0.

Michael, any plan to support this in 7.2?

Comment 3 Xiaoqing Wei 2015-07-22 02:48:19 UTC
bootable
    -device virtio-blk-pci,id=image1,drive=drive_image1,bootindex=0,disable-modern=on,disable-legacy=off,bus=pci.0,addr=04 \


=======

 un-bootable
 -device virtio-blk-pci,id=image1,drive=drive_image1,bootindex=0,disable-modern=off,disable-legacy=on,bus=pci.0,addr=04 \



same issue on virtio-blk-pci, change bug title accordingly

Comment 4 Qian Guo 2015-07-29 04:05:47 UTC
Seams dupl from bug 1242850

Comment 5 Yanhui Ma 2015-07-30 05:48:28 UTC
same issue as virtio-scsi cdrom

un-bootable

-device virtio-scsi-pci,id=scsi1,bus=bridge1,addr=0xa,disable-legacy=true,disable-modern=false
-drive file=/home/RHEL-7.2-20150720.0-Server-x86_64-dvd1.iso,if=none,id=drive-virtio-disk1,format=raw,cache=none,aio=native,media=cdrom -device scsi-cd,bus=scsi1.0,drive=drive-virtio-disk1,id=virtio-scsi-pci1,bootindex=0

bootable
-device virtio-scsi-pci,id=scsi1,bus=bridge1,addr=0xa
-drive file=/home/RHEL-7.2-20150720.0-Server-x86_64-dvd1.iso,if=none,id=drive-virtio-disk1,format=raw,cache=none,aio=native,media=cdrom -device scsi-cd,bus=scsi1.0,drive=drive-virtio-disk1,id=virtio-scsi-pci1,bootindex=0

Comment 7 Ademar Reis 2015-08-07 16:54:15 UTC
(In reply to Yanan Fu from comment #0)
> Description of problem:
> 
> when add option "disable-legacy=true,disable-modern=false" for
> virtio-scsi-pci , it will show "No bootable device" when first boot after
> installation with virtio-scsi disk.  and in the bootmenu, no such disk.
> 
> Modify the CLI to use "disable-legacy=false,disable-modern=true", guest can
> boot successfully.
> 

Since virtio-1.0 is tech-preview in 7.2 and libvirt won't enable it, I'm deferring this to 7.3.

Comment 8 Gu Nini 2015-08-14 06:32:22 UTC
I install and reboot a guest on ppc64le host with following qemu '-drive' devices, met the same problem as that in the bug: 

-device spapr-vscsi,id=scsi0,reg=0x1000 -drive id=drive_image1,if=none,cache=none,snapshot=off,aio=native,format=qcow2,file=/home/virtioblk-0814 -device virtio-blk-pci,id=image1,drive=drive_image1,bus=pci.0,addr=04,disable-legacy=on,disable-modern=off,bootindex=1 -drive file=/home/RHEL-7.2-20150806.1-Server-ppc64-dvd1.iso,if=none,id=drive-scsi0-0-0-0,readonly=on,format=raw,cache=none -device scsi-cd,bus=scsi0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0-0-0-0,id=scsi0-0-0-0,bootindex=2


The sw versions are:

Host kernel: 3.10.0-302.el7.ppc64le
Guest kernel: 3.10.0-302.el7.ppc64/3.10.0-302.el7.ppc64le
Qemu-kvm-rhev: qemu-kvm-rhev-2.3.0-16.el7.ppc64le


So change the 'Hardware' field to 'All'.

Comment 9 Gerd Hoffmann 2015-08-26 07:22:47 UTC
> This probably because bios does not support virtio 1.0.
> 
> Michael, any plan to support this in 7.2?

planning to rebase seabios in 7.3, that should pick up virtio 1.0 support.

Comment 10 Gerd Hoffmann 2015-08-26 07:24:19 UTC
(In reply to Gu Nini from comment #8)
> I install and reboot a guest on ppc64le host with following qemu '-drive'
> devices, met the same problem as that in the bug: 

ppc uses different firmware (slof not seabios)
please open a separate bug (or clone this for slof).

Comment 11 Gu Nini 2015-08-26 10:38:15 UTC
(In reply to Gerd Hoffmann from comment #10)
......
> 
> ppc uses different firmware (slof not seabios)
> please open a separate bug (or clone this for slof).

Report bz1257128 for ppc, so change the 'Hardware' field to 'x86_64'.

Thanks!

Comment 12 jason wang 2015-09-16 03:19:17 UTC
*** Bug 1261859 has been marked as a duplicate of this bug. ***

Comment 13 Gerd Hoffmann 2016-05-12 16:36:50 UTC
Please retest with seabios 1.9.x build.

Comment 14 juzhang 2016-05-13 00:40:10 UTC
(In reply to Gerd Hoffmann from comment #13)
> Please retest with seabios 1.9.x build.

Hi Yanan,

Could you reply this?

Best Regards,
Junyi

Comment 15 Yanan Fu 2016-05-16 02:38:19 UTC
(In reply to Gerd Hoffmann from comment #13)
> Please retest with seabios 1.9.x build.

(In reply to juzhang from comment #14)
> (In reply to Gerd Hoffmann from comment #13)
> > Please retest with seabios 1.9.x build.
> 
> Hi Yanan,
> 
> Could you reply this?
> 
> Best Regards,
> Junyi

Test with version:
kernel:kernel-3.10.0-396.el7.x86_64
qemu-img-rhev-2.6.0-1.el7.x86_64
seabios-1.9.1-4.el7.x86_64

1.virtio-scsi-pci
    1) scsi-disk ------> bootable
-device virtio-scsi-pci,disable-legacy=true,disable-modern=false,id=scsi \
-drive file=/root/RHEL-Server-7.3-64-virtio-scsi.qcow2,if=none,id=drive-scsi,media=disk,format=qcow2,cache=none \
-device scsi-disk,drive=drive-scsi,id=scsi-0,bus=scsi.0,bootindex=0 \

    2).scsi-cd ------> bootable
-device virtio-scsi-pci,disable-legacy=true,disable-modern=false,id=scsi \
-drive file=/root/RHEL-7.2-20151027.3-Server-x86_64-dvd1.iso,if=none,id=drive-scsi,media=cdrom,format=raw,cache=none \
-device scsi-cd,drive=drive-scsi,id=scsi-0,bus=scsi.0,bootindex=0 \

2.virtio-blk-pci ------> bootable
-drive file=/root/RHEL-Server-7.3-64-virtio-blk.qcow2,if=none,id=drive-blk,media=disk,format=qcow2,cache=none \
-device virtio-blk-pci,drive=drive-blk,id=virtio-blk-disk,bus=pci.0,bootindex=0,disable-legacy=true,disable-modern=false \



As the test result above, i think this bug is ok with seabios-1.9.1-4.

Comment 16 Yanan Fu 2016-05-16 10:08:01 UTC
Retest with latest qemu-kvm-rhev for rhev 7.2:

qemu-kvm-rhev-2.3.0-31.el7_2.13.x86_64
kernel:kernel-3.10.0-396.el7.x86_64
seabios-1.9.1-4.el7.x86_64

Test results are same with above.

Comment 17 Gerd Hoffmann 2016-05-17 09:28:28 UTC
> As the test result above, i think this bug is ok with seabios-1.9.1-4.

Yes, as expected, as the 1.9 rebase brings virtio 1.0 support in seabios.

Comment 18 Gerd Hoffmann 2016-09-05 09:09:48 UTC
marking as dup of the 1.9.1 rebase bug

*** This bug has been marked as a duplicate of bug 1257052 ***