Skip to content

Commit

Permalink
zdev/dracut: retain early persistent config over switch root
Browse files Browse the repository at this point in the history
Useful for debugging (what happened during early boot).

Also useful for distro installers, which can import the early config into
their own environment early after starting:
chzdev --import /run/zdev.initrd.config --persistent --yes \
       --no-root-update --force --verbose

After that, distro installers can modify/add the device config based
on interactive or unattended installation choices using
chzdev --enable --active --persistent ...

Finally, distro installers can likewise transfer the entire device config
to the installed system mounted under $SYSROOT:
chzdev --export /tmp/zdev.config --all --type --persistent --verbose

Github-ID: #158
Acked-by: Vineeth Vijayan <[email protected]>
Acked-by: Peter Oberparleiter <[email protected]>
Signed-off-by: Steffen Maier <[email protected]>
Signed-off-by: Jan Höppner <[email protected]>
  • Loading branch information
steffen-maier authored and hoeppnerj committed Dec 14, 2023
1 parent b4b5e0b commit bc4f455
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 0 deletions.
2 changes: 2 additions & 0 deletions zdev/dracut/95zdev/module-setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,8 @@ install() {
inst_hook cmdline 94 "$moddir/parse-dasd.sh"
inst_multiple /lib/s390-tools/zdev-from-dasd_mod.dasd

inst_hook pre-pivot 95 "$moddir/retain-zdev.sh"

# Rule to automatically enable devices when running in DPM
inst_rules "81-dpm.rules"

Expand Down
26 changes: 26 additions & 0 deletions zdev/dracut/95zdev/retain-zdev.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#!/bin/sh
#
# Copyright IBM Corp. 2023
#
# s390-tools is free software; you can redistribute it and/or modify
# it under the terms of the MIT license. See LICENSE for details.
#
# 95zdev/retain-zdev.sh
# Copy zdev persistent config from initrd to root-fs.
#

chzdev --export /run/zdev.initrd.config --all --type --persistent --quiet

# Apart from debugging purposes, this is useful for distro installers,
# which can import the early config into their own environment early
# after starting:
# chzdev --import /run/zdev.initrd.config --persistent --yes --no-root-update --force --verbose
#
# After that, distro installers can modify/add the device config based
# on interactive or unattended installation choices using
# chzdev --enable --active --persistent ...
#
# Finally, distro installers can likewise transfer the entire device config
# to the installed system mounted under $SYSROOT:
# chzdev --export /tmp/zdev.config --all --type --persistent --verbose
# chzdev --import /tmp/zdev.config --persistent --yes --no-root-update --force --verbose --base "$SYSROOT"
1 change: 1 addition & 0 deletions zdev/dracut/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ install:
$(ZDEVDIR)/zdev-lib.sh \
$(ZDEVDIR)/parse-zfcp.sh \
$(ZDEVDIR)/parse-dasd.sh \
$(ZDEVDIR)/retain-zdev.sh \
$(DESTDIR)$(DRACUTMODDIR)/$(ZDEVDIR)/
$(INSTALL) -m 755 -d $(DESTDIR)$(DRACUTMODDIR)/$(ZDEVKDUMPDIR)
$(INSTALL) -m 755 $(ZDEVKDUMPDIR)/module-setup.sh \
Expand Down

0 comments on commit bc4f455

Please sign in to comment.