Skip to content

Commit

Permalink
fix(dracut): move hooks directory from /usr/lib to /var/lib
Browse files Browse the repository at this point in the history
Since systemd/systemd@ffc1ec73, /usr is mounted as
read-only in the initramfs by default.

Fixes #2588
  • Loading branch information
aafeijoo-suse authored and LaszloGombos committed Apr 16, 2024
1 parent 5fa405d commit c089092
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 6 deletions.
2 changes: 1 addition & 1 deletion dracut-init.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
Expand Down
6 changes: 5 additions & 1 deletion dracut.sh
Original file line number Diff line number Diff line change
Expand Up @@ -1886,7 +1886,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"
Expand Down
5 changes: 4 additions & 1 deletion modules.d/99base/module-setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
8 changes: 5 additions & 3 deletions modules.d/99shutdown/module-setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit c089092

Please sign in to comment.