From ca552e14c0b14a260aac14cde3d29f9ab361d89a Mon Sep 17 00:00:00 2001 From: longpanda Date: Mon, 28 Sep 2026 20:56:47 +0800 Subject: [PATCH] Change hard coded dracut hooks directory to variable. (#3753) Some distros (e.g. Fedora 45) change dracut hooks directory from /lib/dracut/hooks to /var/lib/dracut/hooks --- IMG/cpio/ventoy/hook/blackPanther/ventoy-hook.sh | 2 +- IMG/cpio/ventoy/hook/gobo/ventoy-hook.sh | 2 +- IMG/cpio/ventoy/hook/lunar/ventoy-hook.sh | 2 +- IMG/cpio/ventoy/hook/mageia/ventoy-hook.sh | 2 +- IMG/cpio/ventoy/hook/openEuler/ventoy-hook.sh | 8 ++++---- IMG/cpio/ventoy/hook/rhel7/ventoy-hook.sh | 10 +++++----- IMG/cpio/ventoy/hook/rhel7/ventoy-inotifyd-hook.sh | 2 +- IMG/cpio/ventoy/hook/rhel7/ventoy-inotifyd-start.sh | 2 +- IMG/cpio/ventoy/hook/ventoy-hook-lib.sh | 6 ++++++ IMG/cpio/ventoy/hook/ventoy-os-lib.sh | 7 +++++++ 10 files changed, 28 insertions(+), 15 deletions(-) diff --git a/IMG/cpio/ventoy/hook/blackPanther/ventoy-hook.sh b/IMG/cpio/ventoy/hook/blackPanther/ventoy-hook.sh index e3b19f40..389ed9bd 100644 --- a/IMG/cpio/ventoy/hook/blackPanther/ventoy-hook.sh +++ b/IMG/cpio/ventoy/hook/blackPanther/ventoy-hook.sh @@ -20,6 +20,6 @@ . $VTOY_PATH/hook/ventoy-os-lib.sh ventoy_set_inotify_script blackPanther/ventoy-inotifyd-hook.sh -$BUSYBOX_PATH/cp -a $VTOY_PATH/hook/blackPanther/ventoy-inotifyd-start.sh /lib/dracut/hooks/pre-udev/00-ventoy-inotifyd-start.sh +$BUSYBOX_PATH/cp -a $VTOY_PATH/hook/blackPanther/ventoy-inotifyd-start.sh $VT_DRACUT_HOOKS/pre-udev/00-ventoy-inotifyd-start.sh $SED "s#printf\(.*\)\$CMDLINE#printf\1 root=/dev/ventoy \$CMDLINE root=/dev/ventoy#" -i /lib/dracut-lib.sh diff --git a/IMG/cpio/ventoy/hook/gobo/ventoy-hook.sh b/IMG/cpio/ventoy/hook/gobo/ventoy-hook.sh index eb22a28a..ea96c2b9 100644 --- a/IMG/cpio/ventoy/hook/gobo/ventoy-hook.sh +++ b/IMG/cpio/ventoy/hook/gobo/ventoy-hook.sh @@ -23,4 +23,4 @@ $SED "s#printf\(.*\)\$CMDLINE#printf\1\$CMDLINE root=live:/dev/mapper/ventoy#" - ventoy_set_inotify_script gobo/ventoy-inotifyd-hook.sh -$BUSYBOX_PATH/cp -a $VTOY_PATH/hook/gobo/ventoy-inotifyd-start.sh /lib/dracut/hooks/pre-udev/01-ventoy-inotifyd-start.sh +$BUSYBOX_PATH/cp -a $VTOY_PATH/hook/gobo/ventoy-inotifyd-start.sh $VT_DRACUT_HOOKS/pre-udev/01-ventoy-inotifyd-start.sh diff --git a/IMG/cpio/ventoy/hook/lunar/ventoy-hook.sh b/IMG/cpio/ventoy/hook/lunar/ventoy-hook.sh index 31744f6c..cf63087b 100644 --- a/IMG/cpio/ventoy/hook/lunar/ventoy-hook.sh +++ b/IMG/cpio/ventoy/hook/lunar/ventoy-hook.sh @@ -24,4 +24,4 @@ $SED "s#printf\(.*\)\$CMDLINE#printf\1\$CMDLINE root=/dev/ventoy#" -i /lib/dracu $BUSYBOX_PATH/rm -f /usr/lib/systemd/system-generators/systemd-fstab-generator /lib/systemd/system-generators/systemd-fstab-generator ventoy_set_inotify_script lunar/ventoy-inotifyd-hook.sh -$BUSYBOX_PATH/cp -a $VTOY_PATH/hook/lunar/ventoy-inotifyd-start.sh /lib/dracut/hooks/pre-udev/01-ventoy-inotifyd-start.sh +$BUSYBOX_PATH/cp -a $VTOY_PATH/hook/lunar/ventoy-inotifyd-start.sh $VT_DRACUT_HOOKS/pre-udev/01-ventoy-inotifyd-start.sh diff --git a/IMG/cpio/ventoy/hook/mageia/ventoy-hook.sh b/IMG/cpio/ventoy/hook/mageia/ventoy-hook.sh index 05c6c412..3a197b14 100644 --- a/IMG/cpio/ventoy/hook/mageia/ventoy-hook.sh +++ b/IMG/cpio/ventoy/hook/mageia/ventoy-hook.sh @@ -23,7 +23,7 @@ #ventoy_add_udev_rule "$VTOY_PATH/hook/mageia/udev_disk_hook.sh %k noreplace" ventoy_set_inotify_script mageia/ventoy-inotifyd-hook.sh -$BUSYBOX_PATH/cp -a $VTOY_PATH/hook/mageia/ventoy-inotifyd-start.sh /lib/dracut/hooks/pre-udev/99-ventoy-inotifyd-start.sh +$BUSYBOX_PATH/cp -a $VTOY_PATH/hook/mageia/ventoy-inotifyd-start.sh $VT_DRACUT_HOOKS/pre-udev/99-ventoy-inotifyd-start.sh diff --git a/IMG/cpio/ventoy/hook/openEuler/ventoy-hook.sh b/IMG/cpio/ventoy/hook/openEuler/ventoy-hook.sh index 40d67d5d..8673e072 100644 --- a/IMG/cpio/ventoy/hook/openEuler/ventoy-hook.sh +++ b/IMG/cpio/ventoy/hook/openEuler/ventoy-hook.sh @@ -93,9 +93,9 @@ else vtPriority=01 fi -$BUSYBOX_PATH/cp -a $VTOY_PATH/hook/openEuler/ventoy-inotifyd-start.sh /lib/dracut/hooks/pre-udev/${vtPriority}-ventoy-inotifyd-start.sh -$BUSYBOX_PATH/cp -a $VTOY_PATH/hook/openEuler/ventoy-timeout.sh /lib/dracut/hooks/initqueue/timeout/${vtPriority}-ventoy-timeout.sh -$BUSYBOX_PATH/cp -a $VTOY_PATH/hook/openEuler/ventoy-repo.sh /lib/dracut/hooks/pre-pivot/99-ventoy-repo.sh +$BUSYBOX_PATH/cp -a $VTOY_PATH/hook/openEuler/ventoy-inotifyd-start.sh $VT_DRACUT_HOOKS/pre-udev/${vtPriority}-ventoy-inotifyd-start.sh +$BUSYBOX_PATH/cp -a $VTOY_PATH/hook/openEuler/ventoy-timeout.sh $VT_DRACUT_HOOKS/initqueue/timeout/${vtPriority}-ventoy-timeout.sh +$BUSYBOX_PATH/cp -a $VTOY_PATH/hook/openEuler/ventoy-repo.sh $VT_DRACUT_HOOKS/pre-pivot/99-ventoy-repo.sh if [ -f /sbin/dmsquash-live-root ]; then echo "patch /sbin/dmsquash-live-root ..." >> $VTLOG @@ -109,5 +109,5 @@ fi if [ -f $VTOY_PATH/autoinstall ]; then - cp -a $VTOY_PATH/hook/openEuler/ventoy-autoexp.sh /lib/dracut/hooks/pre-mount/99-ventoy-autoexp.sh + cp -a $VTOY_PATH/hook/openEuler/ventoy-autoexp.sh $VT_DRACUT_HOOKS/pre-mount/99-ventoy-autoexp.sh fi diff --git a/IMG/cpio/ventoy/hook/rhel7/ventoy-hook.sh b/IMG/cpio/ventoy/hook/rhel7/ventoy-hook.sh index 613fa767..d0a6f4f6 100644 --- a/IMG/cpio/ventoy/hook/rhel7/ventoy-hook.sh +++ b/IMG/cpio/ventoy/hook/rhel7/ventoy-hook.sh @@ -24,7 +24,7 @@ if [ -f $VTOY_PATH/autoinstall ]; then VTKS="inst.ks=file:$VTOY_PATH/autoinstall" - cp -a $VTOY_PATH/hook/rhel7/ventoy-autoexp.sh /lib/dracut/hooks/pre-mount/99-ventoy-autoexp.sh + cp -a $VTOY_PATH/hook/rhel7/ventoy-autoexp.sh $VT_DRACUT_HOOKS/pre-mount/99-ventoy-autoexp.sh else for vtParam in $($CAT /proc/cmdline); do if echo $vtParam | $GREP -q 'ks=file:/'; then @@ -119,7 +119,7 @@ fi echo "vtNeedRepo=$vtNeedRepo" >> $VTLOG if [ "$vtNeedRepo" = "yes" ]; then - $BUSYBOX_PATH/cp -a $VTOY_PATH/hook/rhel7/ventoy-repo.sh /lib/dracut/hooks/pre-pivot/99-ventoy-repo.sh + $BUSYBOX_PATH/cp -a $VTOY_PATH/hook/rhel7/ventoy-repo.sh $VT_DRACUT_HOOKS/pre-pivot/99-ventoy-repo.sh fi @@ -161,8 +161,8 @@ else vtPriority=01 fi -$BUSYBOX_PATH/cp -a $VTOY_PATH/hook/rhel7/ventoy-inotifyd-start.sh /lib/dracut/hooks/pre-udev/${vtPriority}-ventoy-inotifyd-start.sh -$BUSYBOX_PATH/cp -a $VTOY_PATH/hook/rhel7/ventoy-timeout.sh /lib/dracut/hooks/initqueue/timeout/${vtPriority}-ventoy-timeout.sh +$BUSYBOX_PATH/cp -a $VTOY_PATH/hook/rhel7/ventoy-inotifyd-start.sh $VT_DRACUT_HOOKS/pre-udev/${vtPriority}-ventoy-inotifyd-start.sh +$BUSYBOX_PATH/cp -a $VTOY_PATH/hook/rhel7/ventoy-timeout.sh $VT_DRACUT_HOOKS/initqueue/timeout/${vtPriority}-ventoy-timeout.sh if [ -e /sbin/dmsquash-live-root ]; then @@ -178,7 +178,7 @@ fi #For Fedora CoreOS if $GREP -i -q 'fedora.*coreos' /etc/os-release; then $SED "s#isosrc=.*#isosrc=/dev/mapper/ventoy#" -i /lib/systemd/system-generators/live-generator - cp -a $VTOY_PATH/hook/rhel7/ventoy-make-link.sh /lib/dracut/hooks/pre-mount/99-ventoy-premount-mklink.sh + cp -a $VTOY_PATH/hook/rhel7/ventoy-make-link.sh $VT_DRACUT_HOOKS/pre-mount/99-ventoy-premount-mklink.sh fi diff --git a/IMG/cpio/ventoy/hook/rhel7/ventoy-inotifyd-hook.sh b/IMG/cpio/ventoy/hook/rhel7/ventoy-inotifyd-hook.sh index 0ab59475..0b29e970 100644 --- a/IMG/cpio/ventoy/hook/rhel7/ventoy-inotifyd-hook.sh +++ b/IMG/cpio/ventoy/hook/rhel7/ventoy-inotifyd-hook.sh @@ -34,7 +34,7 @@ if is_inotify_ventoy_part $3; then vtlog "find ventoy partition ..." vtReplaceOpt=noreplace - if [ -f /lib/dracut/hooks/pre-pivot/99-ventoy-repo.sh ]; then + if [ -f $VT_DRACUT_HOOKS/pre-pivot/99-ventoy-repo.sh ]; then vtReplaceOpt="" fi diff --git a/IMG/cpio/ventoy/hook/rhel7/ventoy-inotifyd-start.sh b/IMG/cpio/ventoy/hook/rhel7/ventoy-inotifyd-start.sh index 21920c45..a54e50ac 100644 --- a/IMG/cpio/ventoy/hook/rhel7/ventoy-inotifyd-start.sh +++ b/IMG/cpio/ventoy/hook/rhel7/ventoy-inotifyd-start.sh @@ -30,5 +30,5 @@ else #don't call it too early issue 2225 #$BUSYBOX_PATH/sh $vtHook n /dev "${vtdisk#/dev/}2" - cp -a $VTOY_PATH/hook/rhel7/ventoy-inotifyd-call.sh /lib/dracut/hooks/initqueue/settled/90-ventoy-inotifyd-call.sh + cp -a $VTOY_PATH/hook/rhel7/ventoy-inotifyd-call.sh $VT_DRACUT_HOOKS/initqueue/settled/90-ventoy-inotifyd-call.sh fi diff --git a/IMG/cpio/ventoy/hook/ventoy-hook-lib.sh b/IMG/cpio/ventoy/hook/ventoy-hook-lib.sh index 4d62264d..b31f8528 100644 --- a/IMG/cpio/ventoy/hook/ventoy-hook-lib.sh +++ b/IMG/cpio/ventoy/hook/ventoy-hook-lib.sh @@ -32,6 +32,11 @@ VTOY_DM_PATH=/dev/mapper/ventoy VTOY_DEBUG_LEVEL=$($BUSYBOX_PATH/hexdump -n 1 -s 450 -e '1/1 "%02x"' $VTOY_PATH/ventoy_os_param) VTOY_LINUX_REMOUNT=$($BUSYBOX_PATH/hexdump -n 1 -s 454 -e '1/1 "%02x"' $VTOY_PATH/ventoy_os_param) VTOY_VLNK_BOOT=$($BUSYBOX_PATH/hexdump -n 1 -s 455 -e '1/1 "%02x"' $VTOY_PATH/ventoy_os_param) +if [ -d /var/lib/dracut/hooks ]; then + VT_DRACUT_HOOKS=/var/lib/dracut/hooks +else + VT_DRACUT_HOOKS=/lib/dracut/hooks +fi if [ "$VTOY_DEBUG_LEVEL" = "01" ]; then if [ -e /dev/console ]; then @@ -39,6 +44,7 @@ if [ "$VTOY_DEBUG_LEVEL" = "01" ]; then fi fi + vtlog() { if [ "$VTLOG" = "$VTOY_PATH/log" ]; then echo "$*" >>$VTLOG diff --git a/IMG/cpio/ventoy/hook/ventoy-os-lib.sh b/IMG/cpio/ventoy/hook/ventoy-os-lib.sh index a52cd746..5e21bce5 100644 --- a/IMG/cpio/ventoy/hook/ventoy-os-lib.sh +++ b/IMG/cpio/ventoy/hook/ventoy-os-lib.sh @@ -22,6 +22,13 @@ VT_PRINTK_LEVEL=0 VT_UDEV_RULE_FILE_NAME="99-ventoy.rules" VT_UDEV_RULE_PREFIX="ACTION==\"add\", SUBSYSTEM==\"block\"," + +if [ -d /var/lib/dracut/hooks ]; then + VT_DRACUT_HOOKS=/var/lib/dracut/hooks +else + VT_DRACUT_HOOKS=/lib/dracut/hooks +fi + ventoy_close_printk() { VT_PRINTK_LEVEL=$($CAT /proc/sys/kernel/printk | $AWK '{print $1}') if [ -e /proc/sys/kernel/printk ]; then