Bug 1216081

Summary: Xen chainloading fails to boot after fresh Tumbleweed install
Product: [openSUSE] openSUSE Tumbleweed Reporter: Paulo Gomes <paulo.gomes>
Component: XenAssignee: Michael Chang <mchang>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Major    
Priority: P5 - None CC: bootloader-maintainers, paulo.gomes
Version: CurrentFlags: mchang: needinfo? (paulo.gomes)
Target Milestone: ---   
Hardware: 64bit   
OS: openSUSE Tumbleweed   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Paulo Gomes 2023-10-10 08:08:15 UTC
User-Agent:       Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36
Build Identifier: 

The system does not boot if the boot loader option "Tumbleweed with Xen Hypervisor" is selected. However, selecting "Tumbleweed" works fine.

Reproducible: Always

Steps to Reproduce:
1. Fresh install of Tumbleweed 20231006 (System Role: Server)
2. Install Xen and Xen tools via Yast 
3. Use Yast to set Xen boot loader option as default
4. Reboot
Actual Results:  
The boot process is aborted with the message:

Booting 'openSUSE Tumbleweed, with Xen hypervisor'

Loading Xen 4.17.2_04-1 with Linux 6.5.4-1-default ...
/EndEntire
file path: /ACPI(a0341d0,0)/PCI(0,1d)/PCI(0,0)/UnknownMessaging(17)/HD(1,800,1000000,73b90fa720582e4c,2,2)/File(\efi\opensuse)/File(xen-4.17.2_04-1.efi)/EndEntire
error: ../../grub-core/loader/efi/chainloader.c:595:no matching file path found.
unaligned pointer 0x6900000074
Aborted. Press any key to exit.


Expected Results:  
The server to load Tumbleweed with Xen successfully.
Comment 1 Michael Chang 2023-10-24 07:15:01 UTC
Could you please help to enable debug message for grub chainloader ? You can do that by typing ESC to enter grub's command mode and set the debug variable

  grub> set debug=chain

And try to execute xen boot entry and should output more message with a chain prefix.

> error: ../../grub-core/loader/efi/chainloader.c:595:no matching file path found.

I couldn't reproduce the error, but it seemed grub_efi_get_media_file_path() couldn't deal with your device path properly, the log might be helpful to check further.

Thanks.
Comment 2 Michael Chang 2023-10-25 02:45:13 UTC
A submit request has been created to fix the "no matching file path found" error in an attempt to workaround special firmware with apparently broken secure boot status:

https://build.opensuse.org/request/show/1120141

Setting the resolution to fixed, please reopen if the fix doesn't work for you.
Comment 3 Paulo Gomes 2023-11-15 14:27:13 UTC
I can confirm this is fixed on the latest version of Tumbleweed. Thank you for the quick turnaround.