Bug 2007257
| Summary: | Can't get PXE boot logs from libvirt guest on a serial console | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 9 | Reporter: | Matej Marušák <mmarusak> |
| Component: | qemu-kvm | Assignee: | Klaus Heinrich Kiwi <kkiwi> |
| qemu-kvm sub component: | Graphics | QA Contact: | Virtualization Bugs <virt-bugs> |
| Status: | CLOSED DUPLICATE | Docs Contact: | |
| Severity: | high | ||
| Priority: | high | CC: | coli, jinqi, jinzhao, juzhang, kraxel, virt-maint, xuwei, yafu, yalzhang |
| Version: | 9.0 | Keywords: | Triaged |
| Target Milestone: | rc | Flags: | pm-rhel:
mirror+
|
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2021-10-07 20:02:23 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: | |||
I also hit this bug on qemu-kvm-6.1.0-2.el9.x86_64, it is a regression and not happened on qemu-kvm-6.0.0-30.module+el8.5.0+12586+476da3e1.x86_64.
Detail steps as below:
1. configure a vm as below, set it boot from network, and enable Serial Graphics Adapter which allows users to see BIOS messages on a serial port:
<os>
<type arch='x86_64' machine='pc-q35-rhel8.5.0'>hvm</type>
<boot dev='network'/>
<**bios useserial='yes'** rebootTimeout='-1'/>
</os>
...
<interface type='bridge'>
<mac address='52:54:00:bf:59:6f'/>
<source bridge='br0'/>
<target dev='vnet3'/>
<model type='virtio'/>
<alias name='net0'/>
<address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/>
</interface>
2. start the vm and connect to the serial console, there are no outputs from console:
# virsh start vm2 --console
Domain 'vm2' started
Connected to domain 'vm2'
Escape character is ^] (Ctrl + ])
3. but check the vm status from virt-viewer, there are boot messages about pxe like:
SeaBIOS (version 1.14.0-7.el9)
Machine UUID xxxxxx
iPXE (http://ipxe.org) 07:00.0 CA00 PCI2.10 PnP .......
Booting from ROM...
Assigned to Klaus for initial triage per bz process and age of bug created or assigned to virt-maint without triage. Unclear if this is a graphics bug or a bios bug - please change the subcomponent when assigning! I *believe* this is a symptom/duplicate with us removing the SGA device without libvirt being prepared for it (yet) - see Bug 2002993 If you can get it back to work with the version specified in 'fixed in version' in that bug (or higher), please close this as duplicate for that bug. Otherwise, I'll ask for some more investigation. > I *believe* this is a symptom/duplicate with us removing the SGA device without libvirt being prepared for it I am not entirely sure. Our CI hit the problem I reported originally about a week ago. Then yesterday we got yet another rhel-9 update and now we fail to `virsh create` if our xml contains `<bios useserial='yes' />`. It now fails with `qemu does not support SGA`. > If you can get it back to work with the version specified in 'fixed in version' in that bug (or higher)... It says it is fixed in version 6.0.0, but in both cases I described we had version 6.1.0 (In reply to Matej Marušák from comment #4) > > I *believe* this is a symptom/duplicate with us removing the SGA device without libvirt being prepared for it > > I am not entirely sure. Our CI hit the problem I reported originally about a > week ago. Then yesterday we got yet another rhel-9 update and now we fail to > `virsh create` if our xml contains `<bios useserial='yes' />`. It now fails > with `qemu does not support SGA`. > > > If you can get it back to work with the version specified in 'fixed in version' in that bug (or higher)... > > It says it is fixed in version 6.0.0, but in both cases I described we had > version 6.1.0 It's complicated (apologies for that).. RHEL9-Beta disabled the SGA device without the changes in libvirt and guestfs that would prevent us from having regressions... So this downstream-only change was reverted through Bug 2002993 in the package qemu-kvm-6.0.0-13.el9_b.4 (which is available only in the RHEL9-Beta stream, through Errata https://errata.devel.redhat.com/advisory/70225 RHEL9-GA (post-beta stream, which is currently using the qemu-6.1 rebase) doesn't have this BZ reverted, because libvirt and guestfs are in the process of being fixed in that release - but those might not be merged in the product yet. So to check if this a duplicate, please make sure you are running RHEL9-Beta fully updated (that means your qemu package should be qemu-kvm-6.0.0-13.el9_b.4 or higher, but still in the qemu-6.0.0 base.. Thanks, -Klaus Yes, we see this in 9-GA. Beta worked fine for us. > Yes, we see this in 9-GA. Beta worked fine for us. Thanks. So marking this as a Dupe for Bug 2003092 for now, but feel free to reopen if there's some aspect that is not addressed. -Klaus *** This bug has been marked as a duplicate of bug 2003092 *** |
In Cockpit after updating testing VM one test started to fail. From updated packages qemu-kvm seem the most suspicious. With previous version `/tmp/serial.txt` contained the output. Affected version 6.1.0-2.el9 Previous working version: 6.0.0-12.el9 Steps to reproduce: 1. Create a libvirt Virtual Network with tftp server configured. Example XML: # virsh net-dumpxml pxe-nat <network> <name>pxe-nat</name> <forward mode='nat'> <nat> <port start='1024' end='65535'/> </nat> </forward> <bridge name='virbr0' stp='on' delay='0'/> <mac address='52:54:00:53:7d:8e'/> <ip address='192.168.122.1' netmask='255.255.255.0'> <tftp root='/var/lib/libvirt/pxe-config'/> <dhcp> <range start='192.168.122.2' end='192.168.122.254'/> <bootp file='pxe.cfg'/> </dhcp> </ip> </network> 2. Create the IPXE configuration file with some dummy message to expect in the serial console. # cat /var/lib/libvirt/pxe-config/pxe.cfg #!ipxe echo Rebooting in 60 seconds sleep 60 reboot 3. Create a guest OS with no disks, configured to have network as boot device. The following virt-install command can be used: virt-install --name test-1 --pxe --network network=pxe-nat --boot useserial=yes --console log.file=/tmp/serial.txt --disk none --memory 500 Expected results: The /tmp/serial.txt file should be populated with the ipxe logs. Additional info: journalctl -u libvirtd doesn't have any errors/warnings. The host is actually a VM, with kvm module not loaded, thus I am using qemu emulation for the nested guest. Note tha the issue is not related to the serial console to file redirection. If we don't speficy file type for console and just run the command like this: virt-install --name test-1 --pxe --network network=pxe-nat --boot useserial=yes --nographics --disk none --memory 500 we still will not see the PXE logs in the terminal. Let me know if I can provide with additional files for debugging.