Bug 1973564

Summary: kernel cmdline in BLS snippet are overwritten by grub2-mkconfig on ppc64le OPAL with old Petitboot
Product: Red Hat Enterprise Linux 9 Reporter: Javier Martinez Canillas <fmartine>
Component: grub2Assignee: Javier Martinez Canillas <fmartine>
Status: CLOSED CURRENTRELEASE QA Contact: Release Test Team <release-test-team>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: CentOS StreamCC: bstinson, jieli, jwboyer, pholica, pjanda, pzatko
Target Milestone: betaKeywords: Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: grub2-2.06~rc1-9.el9 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-12-07 21:33:05 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: 1971841    

Description Javier Martinez Canillas 2021-06-18 07:48:10 UTC
Description of problem:

The ppc64le machines with an OPAL firmware (bare metal) use the Petitboot user-space bootloader to kexec the RHEL kernel.

Petiboot has support to parse BLS snippets since version 1.8.0, so older versions must use a GRUB configuration with menuentry commands instead.

The /etc/grub.d/10_linux script generates such config using the BLS snippets, to support Petitboot versions without BLS support.

But while doing that, it's wrongly overwriting the kernel command line parameters.

Version-Release number of selected component (if applicable):

grub2-2.06~rc1-8.el9

How reproducible:

Easy

Steps to Reproduce:
1. Provision a ppc64le OPAL machine (Petitboot < 1.8.0) with CentOS Stream 9 / RHEL9 
2. Update the kernel cmdline params with grubby --update-kernel DEFAULT --args foo=bar
3. Reboot and check that the cmdline is not set.

Actual results:

The cmdline set is not present in /proc/cmdline after a reboot.

Expected results:

The cmdline set is present in /proc/cmdline

Additional info: