Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.

Bug 1337375

Summary: [Seabios]Boot order set with two floppy devices can't work well
Product: Red Hat Enterprise Linux 7 Reporter: aihua liang <aliang>
Component: qemu-kvm-rhevAssignee: Gerd Hoffmann <kraxel>
Status: CLOSED NOTABUG QA Contact: Virtualization Bugs <virt-bugs>
Severity: low Docs Contact:
Priority: unspecified    
Version: 7.3CC: aliang, chayang, huding, juzhang, knoel, ngu, virt-maint
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-06-01 07:58:55 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:

Description aihua liang 2016-05-19 02:38:59 UTC
Description of problem:
 Boot order set with two floppy devices can't work well.

Version-Release number of selected component (if applicable):
  kernel version:3.10.0-390.el7.x86_64
  qemu-kvm version:qemu-kvm-rhev-2.5.0-4.el7.x86_64
  seabios version:seabios-1.9.1-2.el7.x86_64

How reproducible:
100%

Steps to Reproduce:
  1.Disconnect network.

  2.Start VM with qemu cmds bellow:
/usr/libexec/qemu-kvm -name rhel7.1-3 \
-machine pc-i440fx-rhel7.2.0,accel=kvm,usb=off,vmport=off \
-cpu SandyBridge -m 4096 -realtime mlock=off \
-smp 8,sockets=8,cores=1,threads=1 \
-uuid 1534fa42-4818-4493-9f67-eee5ba758385 \
-no-user-config -nodefaults \
-chardev socket,id=qmp_id_catch_monitor,path=/var/tmp/test1,server,nowait \
-mon chardev=qmp_id_catch_monitor,id=monitor,mode=control \
-rtc base=utc,driftfix=slew -global kvm-pit.lost_tick_policy=discard \
-no-hpet -global PIIX4_PM.disable_s3=0 -global PIIX4_PM.disable_s4=1 \
-boot menu=on,splash-time=12000,order=anb \
-drive if=none,id=drive-fdc0-0-0,format=raw \
-global isa-fdc.driveA=drive-fdc0-0-0 \
-drive if=none,id=drive-fdc0-0-1,format=raw \
-global isa-fdc.driveB=drive-fdc0-0-1 \
-netdev tap,id=hostnet0 \
-device virtio-net-pci,netdev=hostnet0,id=net0,mac=51:54:00:49:b2:5f,bus=pci.0 \
-netdev tap,id=hostnet1 \
-device virtio-net-pci,netdev=hostnet1,id=net1,mac=52:54:00:49:b2:5f,bus=pci.0 \
-netdev tap,id=hostnet2 \
-device virtio-net-pci,netdev=hostnet2,id=net2,mac=53:54:00:49:b2:5f,bus=pci.0 \
-netdev tap,id=hostnet3 \
-device virtio-net-pci,netdev=hostnet3,id=net3,mac=54:54:00:49:b2:5f,bus=pci.0 \
-netdev tap,id=hostnet4 \
-device virtio-net-pci,netdev=hostnet4,id=net4,mac=55:54:00:49:b2:5f,bus=pci.0 \
-chardev pty,id=charserial0 \
-vnc 0:2 \
-spice port=3000,ipv4,disable-ticketing \
-device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vgamem_mb=16,bus=pci.0 \
-monitor stdio \
-chardev socket,id=seabios_log,path=/tmp/seabios.log,server,nowait \
-device isa-debugcon,chardev=seabios_log,iobase=0x402

  3.During its start,press ESC to check boot menu list.

  4.Press ESC to make VM start continue.


Actual results:
 Boot menu list:
*************
Select boot device:
  1.iPXE(PCI 00:02.0)
  2.Floppy[driver A]
  3.Floppy[driver B]
  4.iPXE(PCI 00:03.0)
  5.iPXE(PCI 00:04.0)
  6.iPXE(PCI 00:05.0)
  7.iPXE(PCI 00:06.0)

  Seabios log:
************
# nc -U /tmp/seabios.log
Searching bootorder for: HALT
Running option rom at ce80:0003
Space available for UMB: d1000-ef000, f6d50-f7240
Returned 126976 bytes of ZoneHigh
e820 map has 8 items:
  0: 0000000000000000 - 000000000009fc00 = 1 RAM
  1: 000000000009fc00 - 00000000000a0000 = 2 RESERVED
  2: 00000000000f0000 - 0000000000100000 = 2 RESERVED
  3: 0000000000100000 - 00000000bffdf000 = 1 RAM
  4: 00000000bffdf000 - 00000000c0000000 = 2 RESERVED
  5: 00000000feffc000 - 00000000ff000000 = 2 RESERVED
  6: 00000000fffc0000 - 0000000100000000 = 2 RESERVED
  7: 0000000100000000 - 0000000140000000 = 1 RAM
enter handle_19:
  NULL
Booting from ROM...
Booting from c980:0374
enter handle_18:
  NULL
Booting from Floppy...
floppy error: 40 00 00 00 00 01 02
Boot failed: could not read the boot disk

enter handle_18:
  NULL
Booting from ROM...
Booting from ca80:0374
enter handle_18:
  NULL
Booting from ROM...
Booting from cb80:0374
enter handle_18:
  NULL
Booting from ROM...
Booting from cc80:0374
enter handle_18:
  NULL
Booting from ROM...
Booting from cd80:0374
enter handle_18:
  NULL


Expected results:
  Boot menu list should be:
**********
Select boot device:
  1.Floppy[driver A]
  2.iPXE(PCI 00:02.0)
  3.Floppy[driver B]
  4.iPXE(PCI 00:03.0)
  5.iPXE(PCI 00:04.0)
  6.iPXE(PCI 00:05.0)
  7.iPXE(PCI 00:06.0)


Additional info:

Comment 3 Gerd Hoffmann 2016-06-01 06:53:35 UTC
Hmm?  The qemu command line doesn't specify any boot order ...

Comment 4 aihua liang 2016-06-01 07:25:37 UTC
(In reply to Gerd Hoffmann from comment #3)
> Hmm?  The qemu command line doesn't specify any boot order ...

Boot order define in qemu cmds as bellow:
 -boot menu=on,splash-time=12000,order=anb

Comment 5 Gerd Hoffmann 2016-06-01 07:58:55 UTC
-boot order=... can't handle two devices of the same kind.

Use bootindex instead:

/usr/libexec/qemu-kvm \
  -drive if=floppy -drive if=floppy \
  -boot menu=on \
  -global isa-fdc.bootindexA=1 \
  -global isa-fdc.bootindexB=3 \
  -device e1000,bootindex=2