Bug 1657858

Summary: zipl: support multiple initrds
Product: Red Hat Enterprise Linux 8 Reporter: Jaroslav Škarvada <jskarvad>
Component: s390utilsAssignee: Dan Horák <dhorak>
Status: CLOSED CANTFIX QA Contact: Vilém Maršík <vmarsik>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 8.0CC: fmartine, javierm
Target Milestone: rc   
Target Release: 8.0   
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: 2019-03-20 10:17:02 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 Jaroslav Škarvada 2018-12-10 15:38:52 UTC
Description of problem:
According to the Matthew Garrett proposed update to the BLS standard [1] which is IMHO the standard for the RHEL / Fedora BLS implementation:
...
- multiple initrd entries are allowed, and will be processed in order
...

We used this standard when implementing the BLS support in Tuned, but it seems zipl doesn't support multiple initrds (bug 1576435 comment 23).

This is bad, because we need to add dirty workarounds for zipl even if we comply with the standard.

I am not sure about the s390x, but usually the support of multiple initrds consists of just concatenation of the cpio archive in the memory, which is trivial operation.

[1] https://fedoraproject.org/wiki/Changes/BootLoaderSpecByDefault#Differences_from_BootLoaderSpec

Version-Release number of selected component (if applicable):
s390utils-base-2.6.0-10.el8.s390x

How reproducible:
Always

Steps to Reproduce:
1. add multiple initrds like 'initrd initrd1.img initrd2.img' to the /boot/loader/entries/*.conf
2. reboot

Actual results:
It's not supported by zipl

Expected results:
It's supported by zipl

Additional info:
Currently we need the multiple initrds functionality for the x86_64, thus even if not correct approach it would be enough for us, if it just ignores it on s390x. But the right approach is to correctly support it.

Comment 1 Dan Horák 2018-12-10 15:53:06 UTC
Could you, please, open an upstream request for this feature at https://github.com/ibm-s390-tools/s390-tools ?

Comment 2 Jaroslav Škarvada 2018-12-10 16:23:16 UTC
Filled https://github.com/ibm-s390-tools/s390-tools/issues/49

Comment 3 Dan Horák 2019-03-20 10:17:02 UTC
The design of zipl doesn't allow multiple ramdisks, see upstream ticket for the details.

Comment 5 Javier Martinez Canillas 2019-12-12 14:00:25 UTC
Another thing that zipl doesn't support is environment variables that are supported by other bootloaders like GRUB and Petitboot. So I think that it's also incorrect to add these to the BLS snippets in s390x machines.

I've proposed the following pull-request to tuned that just makes the 92-tuned.install kernel-install plugin to exit if the machine architecture is s390x:

https://github.com/redhat-performance/tuned/pull/235