88 lines
3.0 KiB
Diff
88 lines
3.0 KiB
Diff
|
From 55a56c546bde71fb42c99aadd96e98fca2199823 Mon Sep 17 00:00:00 2001
|
||
|
From: Laszlo Gombos <laszlo.gombos@gmail.com>
|
||
|
Date: Fri, 5 Apr 2024 15:50:20 +0200
|
||
|
Subject: [PATCH 19/23] fix(dracut): move hooks directory from /usr/lib to
|
||
|
/var/lib
|
||
|
|
||
|
Since https://github.com/systemd/systemd/commit/ffc1ec73, /usr is mounted as
|
||
|
read-only in the initramfs by default.
|
||
|
|
||
|
Fixes #2588
|
||
|
|
||
|
Co-authored-by: Antonio Alvarez Feijoo <antonio.feijoo@suse.com>
|
||
|
---
|
||
|
dracut-init.sh | 2 +-
|
||
|
dracut.sh | 6 +++++-
|
||
|
modules.d/99base/module-setup.sh | 5 ++++-
|
||
|
modules.d/99shutdown/module-setup.sh | 8 +++++---
|
||
|
4 files changed, 15 insertions(+), 6 deletions(-)
|
||
|
|
||
|
diff --git a/dracut-init.sh b/dracut-init.sh
|
||
|
index c37038e3..1c7ca58a 100755
|
||
|
--- a/dracut-init.sh
|
||
|
+++ b/dracut-init.sh
|
||
|
@@ -630,7 +630,7 @@ inst_hook() {
|
||
|
dfatal "No such hook type $1. Aborting initrd creation."
|
||
|
exit 1
|
||
|
fi
|
||
|
- hook="/lib/dracut/hooks/${1}/${2}-${3##*/}"
|
||
|
+ hook="/var/lib/dracut/hooks/${1}/${2}-${3##*/}"
|
||
|
inst_simple "$3" "$hook"
|
||
|
chmod u+x "$initdir/$hook"
|
||
|
}
|
||
|
diff --git a/dracut.sh b/dracut.sh
|
||
|
index a0af3dd2..5d43f44c 100755
|
||
|
--- a/dracut.sh
|
||
|
+++ b/dracut.sh
|
||
|
@@ -1883,7 +1883,11 @@ mkdir -p "${initdir}"/lib/dracut
|
||
|
|
||
|
if [[ $kernel_only != yes ]]; then
|
||
|
mkdir -p "${initdir}/etc/cmdline.d"
|
||
|
- mkdir -m 0755 "${initdir}"/lib/dracut/hooks
|
||
|
+ mkdir -m 0755 -p "${initdir}"/var/lib/dracut/hooks
|
||
|
+
|
||
|
+ # symlink to old hooks location for compatibility
|
||
|
+ ln_r /var/lib/dracut/hooks /lib/dracut/hooks
|
||
|
+
|
||
|
for _d in $hookdirs; do
|
||
|
# shellcheck disable=SC2174
|
||
|
mkdir -m 0755 -p "${initdir}/lib/dracut/hooks/$_d"
|
||
|
diff --git a/modules.d/99base/module-setup.sh b/modules.d/99base/module-setup.sh
|
||
|
index 54b0deb9..bfdc51d4 100755
|
||
|
--- a/modules.d/99base/module-setup.sh
|
||
|
+++ b/modules.d/99base/module-setup.sh
|
||
|
@@ -45,7 +45,10 @@ install() {
|
||
|
|
||
|
[ -e "${initdir}/lib" ] || mkdir -m 0755 -p "${initdir}"/lib
|
||
|
mkdir -m 0755 -p "${initdir}"/lib/dracut
|
||
|
- mkdir -m 0755 -p "${initdir}"/lib/dracut/hooks
|
||
|
+ mkdir -m 0755 -p "${initdir}"/var/lib/dracut/hooks
|
||
|
+
|
||
|
+ # symlink to old hooks location for compatibility
|
||
|
+ ln_r /var/lib/dracut/hooks /lib/dracut/hooks
|
||
|
|
||
|
mkdir -p "${initdir}"/tmp
|
||
|
|
||
|
diff --git a/modules.d/99shutdown/module-setup.sh b/modules.d/99shutdown/module-setup.sh
|
||
|
index 2b999024..f53017ff 100755
|
||
|
--- a/modules.d/99shutdown/module-setup.sh
|
||
|
+++ b/modules.d/99shutdown/module-setup.sh
|
||
|
@@ -17,9 +17,11 @@ install() {
|
||
|
inst_multiple umount poweroff reboot halt losetup stat sleep timeout
|
||
|
inst_multiple -o kexec
|
||
|
inst "$moddir/shutdown.sh" "$prefix/shutdown"
|
||
|
- [ -e "${initdir}/lib" ] || mkdir -m 0755 -p "${initdir}"/lib
|
||
|
- mkdir -m 0755 -p "${initdir}"/lib/dracut
|
||
|
- mkdir -m 0755 -p "${initdir}"/lib/dracut/hooks
|
||
|
+ mkdir -m 0755 -p "${initdir}"/var/lib/dracut/hooks
|
||
|
+
|
||
|
+ # symlink to old hooks location for compatibility
|
||
|
+ ln_r /var/lib/dracut/hooks /lib/dracut/hooks
|
||
|
+
|
||
|
for _d in $hookdirs shutdown shutdown-emergency; do
|
||
|
mkdir -m 0755 -p "${initdir}"/lib/dracut/hooks/"$_d"
|
||
|
done
|
||
|
--
|
||
|
2.42.0
|
||
|
|