Bug 1047724
| Summary: | Guest could not start when enable boot menu and 4 boot devices | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Cui Lei <lcui> | ||||
| Component: | virt-manager | Assignee: | Pavel Hrdina <phrdina> | ||||
| Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> | ||||
| Severity: | medium | Docs Contact: | |||||
| Priority: | medium | ||||||
| Version: | 7.0 | CC: | areis, dyuan, gscrivan, knoel, mzhan, rbalakri, tzheng, virt-maint, xiaodwan | ||||
| Target Milestone: | rc | ||||||
| Target Release: | --- | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | virt-manager-1.2.0-1.el7 | Doc Type: | Bug Fix | ||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | |||||||
| : | 1047726 (view as bug list) | Environment: | |||||
| Last Closed: | 2015-11-19 05:22:13 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: | |||||||
| Bug Blocks: | 1047726 | ||||||
| Attachments: |
|
||||||
Created attachment 844338 [details]
guest.xml
Moving to qemu-kvm, we support this option and the error message is from qemu-kvm. (In reply to Pavel Hrdina from comment #4) > Moving to qemu-kvm, we support this option and the error message is from > qemu-kvm. Moving back to virt-manager. Bootordering via "-boot order=" simply doesn't work for more than three devices, due to virtual hardware restrictions. We got bootindex to fix that (and other issues too, for example you can specify *which* disk to boot from) years ago. libvirt supports this via "<boot order='$priority'/>" for bootable devices in domain xml. virt-manager should use that to configure the boot order. Upstream commit:
commit 719f23a273e0db8c43a36f478c888f7a258bb00b
Author: Cole Robinson <crobinso>
Date: Sun Feb 9 13:36:12 2014 -0500
cli: Support per-device <boot order=>
Fixed by rebase to upstream virt-manager-1.2.0.
I can reproduce this bug with package:
# rpm -q virt-manager
virt-manager-0.10.0-8.el7.noarch
Steps:
1. prepare a guest and open the guest details window. Check "Enable boot menu" and select all of the four boot devices.
2. Start the guest.
Result:
Error starting domain: internal error: process exited while connecting to monitor: 2015-06-26T06:13:47.60379Z qemu-kvm: Too many boot devices for PC
Then try to verify with latest build:
virt-manager-1.2.1-2.el7.noarch.rpm
Result:
After updated virt-manger to latest packages and start the guest directly, it still reports the above error.
1. I checked the xml, it's same as the old one. so when start the guest, the same error reports.
<os>
<type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>
<boot dev='network'/>
<boot dev='hd'/>
<boot dev='fd'/>
<boot dev='cdrom'/>
<bootmenu enable='yes'/>
</os>
2. I checked the Boot Options GUI, now only two boot devices are left. and then add another two IDE disk and Apply it. Check the xml, "<boot dev..." are removed and "<boot order..." are added for each boot device.
3. Now start the guest again, it boots successfully.
So the bug is fixed.
By the way, I think it's better to automatically modify the old xml to correctly format when starting the guest in virt-manager version which suport "<boot order...".
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. https://rhn.redhat.com/errata/RHBA-2015-2206.html |
Description of problem: Guest could not start when enable boot menu and 4 boot devices, here is the error message: "Error starting domain: internal error: process exited while connecting to monitor: qemu-kvm: Too many boot devices for PC" Guest xml please refer to attachment If make <bootmenu enable='no'/>, guest could start Detail: Traceback (most recent call last): File "/usr/share/virt-manager/virtManager/asyncjob.py", line 100, in cb_wrapper callback(asyncjob, *args, **kwargs) File "/usr/share/virt-manager/virtManager/asyncjob.py", line 122, in tmpcb callback(*args, **kwargs) File "/usr/share/virt-manager/virtManager/domain.py", line 1220, in startup self._backend.create() File "/usr/lib64/python2.7/site-packages/libvirt.py", line 698, in create if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self) libvirtError: internal error: process exited while connecting to monitor: qemu-kvm: Too many boot devices for PC Here is the key part from libvirtd.log 2014-01-02 01:59:08.950+0000: 25918: debug : virCommandRunAsync:2229 : About to run LC_ALL=C PATH=/sbin:/usr/sbin:/bin:/usr/bin QEMU_AUDIO_DRV=none /usr/libexec/qemu-kvm -name citrix-lcui -S -M rhel6.5.0 -cpu qemu32 -enable-kvm -m 937 -realtime mlock=off -smp 1,maxcpus=3,sockets=3,cores=1,threads=1 -uuid 3694f287-9230-824b-3feb-fe1ba25c103d -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/citrix-lcui.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -boot order=cdan,menu=on -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive file=/var/lib/libvirt/images/citrix-lcui-xvda,if=none,id=drive-virtio-disk0,format=raw,cache=none -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0 -drive if=none,media=cdrom,id=drive-ide0-0-0,readonly=on,format=raw -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 -netdev tap,fd=25,id=hostnet0,vhost=on,vhostfd=26 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=ae:82:88:e6:59:56,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -device usb-tablet,id=input0 -vnc 0.0.0.0:2 -vga cirrus -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5 Please pay attention to "-boot order=cdan,menu=on" Version-Release number of selected component (if applicable): libvirt-1.1.1-16.el7.x86_64 qemu-kvm-1.5.3-30.el7.x86_64 kernel-3.10.0-64.el7.x86_64 virt-manager-0.10.0-8.el7.noarch How reproducible: always Steps to Reproduce: 1. Prepare a guest and open it with virt-manger 2. In VM details page-->Boot Options, tick "Enable boot menu" and tick all the 4 boot devices. (you could also edit xml directly) 3. start the guest Actual results: Error message popup, "Error starting domain: internal error: process exited while connecting to monitor: qemu-kvm: Too many boot devices for PC" Expected results: No error message popup Additional info: Un-check "Enable boot menu" check boor change <bootmenu enable='no'/>), the guest could start with enable 4 boot devices.