mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-25 02:49:32 +03:00
Move dracut specifics to dracut module
Dracut depends on the environment variable BOOTFS to be set after pool import. This dracut specific systemd ExecStartPost command should not be called for any non-dracut systems, so let's move it to a static systemd unit that. Reviewed-by: Manuel Amador (Rudd-O) <rudd-o@rudd-o.com> Reviewed-by: Matthew Thode <prometheanfire@gentoo.org> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Michael Niewöhner <foss@mniewoehner.de> Closes #8510
This commit is contained in:
parent
f72ecb8d27
commit
ce4432c542
1
contrib/dracut/90zfs/.gitignore
vendored
1
contrib/dracut/90zfs/.gitignore
vendored
@ -6,3 +6,4 @@ zfs-generator.sh
|
||||
zfs-lib.sh
|
||||
zfs-load-key.sh
|
||||
zfs-needshutdown.sh
|
||||
zfs-env-bootfs.service
|
||||
|
@ -9,6 +9,9 @@ pkgdracut_SCRIPTS = \
|
||||
zfs-needshutdown.sh \
|
||||
zfs-lib.sh
|
||||
|
||||
pkgdracut_DATA = \
|
||||
zfs-env-bootfs.service
|
||||
|
||||
EXTRA_DIST = \
|
||||
$(top_srcdir)/contrib/dracut/90zfs/export-zfs.sh.in \
|
||||
$(top_srcdir)/contrib/dracut/90zfs/module-setup.sh.in \
|
||||
@ -17,9 +20,10 @@ EXTRA_DIST = \
|
||||
$(top_srcdir)/contrib/dracut/90zfs/zfs-generator.sh.in \
|
||||
$(top_srcdir)/contrib/dracut/90zfs/zfs-load-key.sh.in \
|
||||
$(top_srcdir)/contrib/dracut/90zfs/zfs-needshutdown.sh.in \
|
||||
$(top_srcdir)/contrib/dracut/90zfs/zfs-lib.sh.in
|
||||
$(top_srcdir)/contrib/dracut/90zfs/zfs-lib.sh.in \
|
||||
$(top_srcdir)/contrib/dracut/90zfs/zfs-env-bootfs.service.in
|
||||
|
||||
$(pkgdracut_SCRIPTS):%:%.in
|
||||
$(pkgdracut_SCRIPTS) $(pkgdracut_DATA) :%:%.in
|
||||
-$(SED) -e 's,@bindir\@,$(bindir),g' \
|
||||
-e 's,@sbindir\@,$(sbindir),g' \
|
||||
-e 's,@udevdir\@,$(udevdir),g' \
|
||||
@ -30,4 +34,4 @@ $(pkgdracut_SCRIPTS):%:%.in
|
||||
$< >'$@'
|
||||
|
||||
distclean-local::
|
||||
-$(RM) $(pkgdracut_SCRIPTS)
|
||||
-$(RM) $(pkgdracut_SCRIPTS) $(pkgdracut_DATA)
|
||||
|
@ -98,6 +98,9 @@ install() {
|
||||
type mark_hostonly >/dev/null 2>&1 && mark_hostonly @systemdunitdir@/zfs-import-$_item.service
|
||||
fi
|
||||
done
|
||||
inst "${moddir}"/zfs-env-bootfs.service "${systemdsystemunitdir}"/zfs-env-bootfs.service
|
||||
ln -s ../zfs-env-bootfs.service "${initdir}/${systemdsystemunitdir}/zfs-import.target.wants"/zfs-env-bootfs.service
|
||||
type mark_hostonly >/dev/null 2>&1 && mark_hostonly @systemdunitdir@/zfs-env-bootfs.service
|
||||
dracut_install systemd-ask-password
|
||||
dracut_install systemd-tty-ask-password-agent
|
||||
mkdir -p "${initdir}/$systemdsystemunitdir/initrd.target.wants"
|
||||
|
14
contrib/dracut/90zfs/zfs-env-bootfs.service.in
Normal file
14
contrib/dracut/90zfs/zfs-env-bootfs.service.in
Normal file
@ -0,0 +1,14 @@
|
||||
[Unit]
|
||||
Description=Set BOOTFS environment for dracut
|
||||
Documentation=man:zpool(8)
|
||||
DefaultDependencies=no
|
||||
After=zfs-import-cache.service
|
||||
After=zfs-import-scan.service
|
||||
Before=zfs-import.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/bin/sh -c "/bin/systemctl set-environment BOOTFS=$(@sbindir@/zpool list -H -o bootfs | grep -m1 -v '^-$')"
|
||||
|
||||
[Install]
|
||||
WantedBy=zfs-import.target
|
@ -13,7 +13,6 @@ ConditionPathExists=@sysconfdir@/zfs/zpool.cache
|
||||
Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
ExecStart=@sbindir@/zpool import -c @sysconfdir@/zfs/zpool.cache -aN
|
||||
ExecStartPost=/bin/sh -c "/bin/systemctl set-environment BOOTFS=$(@sbindir@/zpool list -H -o bootfs | grep -m1 -v '^-$')"
|
||||
|
||||
[Install]
|
||||
WantedBy=zfs-import.target
|
||||
|
@ -12,7 +12,6 @@ ConditionPathExists=!@sysconfdir@/zfs/zpool.cache
|
||||
Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
ExecStart=@sbindir@/zpool import -aN -o cachefile=none
|
||||
ExecStartPost=/bin/sh -c "/bin/systemctl set-environment BOOTFS=$(@sbindir@/zpool list -H -o bootfs | grep -m1 -v '^-$')"
|
||||
|
||||
[Install]
|
||||
WantedBy=zfs-import.target
|
||||
|
Loading…
Reference in New Issue
Block a user