diff --git a/overlay.d/05rhcos/usr/lib/dracut/modules.d/40rhcos-fips/module-setup.sh b/overlay.d/05rhcos/usr/lib/dracut/modules.d/40rhcos-fips/module-setup.sh index 1375fb9f..4747674c 100755 --- a/overlay.d/05rhcos/usr/lib/dracut/modules.d/40rhcos-fips/module-setup.sh +++ b/overlay.d/05rhcos/usr/lib/dracut/modules.d/40rhcos-fips/module-setup.sh @@ -17,6 +17,12 @@ install() { bwrap \ env + local _arch=${DRACUT_ARCH:-$(uname -m)} + if [[ "$_arch" == "s390x" ]]; then + inst_multiple zipl + inst /lib/s390-tools/stage3.bin + fi + inst_script "$moddir/rhcos-fips.sh" \ "/usr/sbin/rhcos-fips" inst_script "$moddir/coreos-dummy-ignition-files-run.sh" \ diff --git a/overlay.d/05rhcos/usr/lib/dracut/modules.d/40rhcos-fips/rhcos-fips.sh b/overlay.d/05rhcos/usr/lib/dracut/modules.d/40rhcos-fips/rhcos-fips.sh index f1071819..ce89e420 100755 --- a/overlay.d/05rhcos/usr/lib/dracut/modules.d/40rhcos-fips/rhcos-fips.sh +++ b/overlay.d/05rhcos/usr/lib/dracut/modules.d/40rhcos-fips/rhcos-fips.sh @@ -70,16 +70,20 @@ firstboot() { # We need to call zipl with the kernel image and ramdisk as running it without these options would require a zipl.conf and chroot # into rootfs tmpfile=$(mktemp) + optfile=$(mktemp) for f in "${tmpsysroot}"/boot/loader/entries/*.conf; do for line in title version linux initrd options; do echo $(grep $line $f) >> $tmpfile done done + echo "Appending 'ignition.firstboot' to ${optfile}" + options="$(grep options $tmpfile | cut -d ' ' -f2-) ignition.firstboot" + echo $options > "$optfile" zipl --verbose \ --target "${tmpsysroot}/boot" \ --image $tmpsysroot/boot/"$(grep linux $tmpfile | cut -d' ' -f2)" \ --ramdisk $tmpsysroot/boot/"$(grep initrd $tmpfile | cut -d' ' -f2)" \ - --parmfile $tmpfile + --parmfile $optfile fi echo "Rebooting"