From ab684ca04977f46e7016f0a54eff76de589e2fab Mon Sep 17 00:00:00 2001 From: longpanda Date: Fri, 9 Oct 2026 10:04:53 +0800 Subject: [PATCH] Improve ISO partition auto mount for different Linux distros. --- .../ventoy/hook/arch/ventoy-uauto-hook.sh | 3 +++ .../hook/blackPanther/ventoy-uauto-hook.sh | 16 ++++++++++++ .../ventoy/hook/deepin/ventoy-uauto-exec.sh | 10 ++++++++ .../ventoy/hook/deepin/ventoy-uauto-hook.sh | 25 +++++++++++++++++++ .../ventoy/hook/default/ventoy-uauto-hook.sh | 16 ++++++++++++ .../ventoy/hook/gobo/ventoy-uauto-hook.sh | 16 ++++++++++++ .../hook/hyperbola/ventoy-uauto-exec.sh | 9 +++++++ .../hook/hyperbola/ventoy-uauto-hook.sh | 19 ++++++++++++++ .../ventoy/hook/kaos/ventoy-uauto-exec.sh | 9 +++++++ .../ventoy/hook/kaos/ventoy-uauto-hook.sh | 25 +++++++++++++++++++ .../hook/openEuler/ventoy-uauto-hook.sh | 16 ++++++++++++ .../ventoy/hook/rhel7/ventoy-uauto-hook.sh | 5 ++++ .../ventoy/hook/suse/ventoy-uauto-hook.sh | 16 ++++++++++++ IMG/cpio/ventoy/ventoy_chain.sh | 5 +++- 14 files changed, 189 insertions(+), 1 deletion(-) create mode 100644 IMG/cpio/ventoy/hook/blackPanther/ventoy-uauto-hook.sh create mode 100644 IMG/cpio/ventoy/hook/deepin/ventoy-uauto-exec.sh create mode 100644 IMG/cpio/ventoy/hook/deepin/ventoy-uauto-hook.sh create mode 100644 IMG/cpio/ventoy/hook/default/ventoy-uauto-hook.sh create mode 100644 IMG/cpio/ventoy/hook/gobo/ventoy-uauto-hook.sh create mode 100644 IMG/cpio/ventoy/hook/hyperbola/ventoy-uauto-exec.sh create mode 100644 IMG/cpio/ventoy/hook/hyperbola/ventoy-uauto-hook.sh create mode 100644 IMG/cpio/ventoy/hook/kaos/ventoy-uauto-exec.sh create mode 100644 IMG/cpio/ventoy/hook/kaos/ventoy-uauto-hook.sh create mode 100644 IMG/cpio/ventoy/hook/openEuler/ventoy-uauto-hook.sh create mode 100644 IMG/cpio/ventoy/hook/suse/ventoy-uauto-hook.sh diff --git a/IMG/cpio/ventoy/hook/arch/ventoy-uauto-hook.sh b/IMG/cpio/ventoy/hook/arch/ventoy-uauto-hook.sh index 90db5bf6..8f6aeee3 100644 --- a/IMG/cpio/ventoy/hook/arch/ventoy-uauto-hook.sh +++ b/IMG/cpio/ventoy/hook/arch/ventoy-uauto-hook.sh @@ -10,6 +10,9 @@ vtoy_udev_auto_hook() { if grep -q 'break.*=.*postmount' /init; then vtlog "udev auto before postmount" sed "/break.*=.*postmount/i\\$BUSYBOX_PATH/sh $VTOY_PATH/hook/manjaro/ventoy-uauto-exec.sh" -i /init + elif [ -d $VT_DRACUT_HOOKS/pre-pivot ]; then + vtlog "dracut distro" + ventoy_dracut_pivot_udev_rule fi } diff --git a/IMG/cpio/ventoy/hook/blackPanther/ventoy-uauto-hook.sh b/IMG/cpio/ventoy/hook/blackPanther/ventoy-uauto-hook.sh new file mode 100644 index 00000000..ba23d92f --- /dev/null +++ b/IMG/cpio/ventoy/hook/blackPanther/ventoy-uauto-hook.sh @@ -0,0 +1,16 @@ +#!/ventoy/busybox/sh + +. /ventoy/hook/ventoy-hook-lib.sh + +PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH + +vtlog "####### $0 $* ########" + +vtoy_udev_auto_hook() { + if [ -d $VT_DRACUT_HOOKS/pre-pivot ]; then + vtlog "dracut distro" + ventoy_dracut_pivot_udev_rule + fi +} + +vtoy_udev_auto_hook diff --git a/IMG/cpio/ventoy/hook/deepin/ventoy-uauto-exec.sh b/IMG/cpio/ventoy/hook/deepin/ventoy-uauto-exec.sh new file mode 100644 index 00000000..5616dc1e --- /dev/null +++ b/IMG/cpio/ventoy/hook/deepin/ventoy-uauto-exec.sh @@ -0,0 +1,10 @@ +#!/ventoy/busybox/sh + +. /ventoy/hook/ventoy-hook-lib.sh + +PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH + +vtlog "####### $0 $* ########" + +ventoy_copy_udev_auto_rules + diff --git a/IMG/cpio/ventoy/hook/deepin/ventoy-uauto-hook.sh b/IMG/cpio/ventoy/hook/deepin/ventoy-uauto-hook.sh new file mode 100644 index 00000000..a7d30461 --- /dev/null +++ b/IMG/cpio/ventoy/hook/deepin/ventoy-uauto-hook.sh @@ -0,0 +1,25 @@ +#!/ventoy/busybox/sh + +. /ventoy/hook/ventoy-hook-lib.sh + +PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH + +vtlog "####### $0 $* ########" + +vtoy_udev_auto_hook() { + if [ -e /init ]; then + if $GREP -q '^mountroot$' /init; then + vtlog "mountroot distro" + sed "/^mountroot$/a\\$BUSYBOX_PATH/sh $VTOY_PATH/hook/deepin/ventoy-uauto-exec.sh" -i /init + return + fi + + if $GREP -q '^ *exec.*switch_root' /init; then + vtlog "switch_root distro" + sed "/^ *exec.*switch_root/i\\$BUSYBOX_PATH/sh $VTOY_PATH/hook/deepin/ventoy-uauto-exec.sh" -i /init + return + fi + fi +} + +vtoy_udev_auto_hook diff --git a/IMG/cpio/ventoy/hook/default/ventoy-uauto-hook.sh b/IMG/cpio/ventoy/hook/default/ventoy-uauto-hook.sh new file mode 100644 index 00000000..ba23d92f --- /dev/null +++ b/IMG/cpio/ventoy/hook/default/ventoy-uauto-hook.sh @@ -0,0 +1,16 @@ +#!/ventoy/busybox/sh + +. /ventoy/hook/ventoy-hook-lib.sh + +PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH + +vtlog "####### $0 $* ########" + +vtoy_udev_auto_hook() { + if [ -d $VT_DRACUT_HOOKS/pre-pivot ]; then + vtlog "dracut distro" + ventoy_dracut_pivot_udev_rule + fi +} + +vtoy_udev_auto_hook diff --git a/IMG/cpio/ventoy/hook/gobo/ventoy-uauto-hook.sh b/IMG/cpio/ventoy/hook/gobo/ventoy-uauto-hook.sh new file mode 100644 index 00000000..ba23d92f --- /dev/null +++ b/IMG/cpio/ventoy/hook/gobo/ventoy-uauto-hook.sh @@ -0,0 +1,16 @@ +#!/ventoy/busybox/sh + +. /ventoy/hook/ventoy-hook-lib.sh + +PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH + +vtlog "####### $0 $* ########" + +vtoy_udev_auto_hook() { + if [ -d $VT_DRACUT_HOOKS/pre-pivot ]; then + vtlog "dracut distro" + ventoy_dracut_pivot_udev_rule + fi +} + +vtoy_udev_auto_hook diff --git a/IMG/cpio/ventoy/hook/hyperbola/ventoy-uauto-exec.sh b/IMG/cpio/ventoy/hook/hyperbola/ventoy-uauto-exec.sh new file mode 100644 index 00000000..aef9a3b2 --- /dev/null +++ b/IMG/cpio/ventoy/hook/hyperbola/ventoy-uauto-exec.sh @@ -0,0 +1,9 @@ +#!/ventoy/busybox/sh + +. /ventoy/hook/ventoy-hook-lib.sh + +PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH + +vtlog "####### $0 $* ########" + +ventoy_copy_udev_auto_rules diff --git a/IMG/cpio/ventoy/hook/hyperbola/ventoy-uauto-hook.sh b/IMG/cpio/ventoy/hook/hyperbola/ventoy-uauto-hook.sh new file mode 100644 index 00000000..e7948bae --- /dev/null +++ b/IMG/cpio/ventoy/hook/hyperbola/ventoy-uauto-hook.sh @@ -0,0 +1,19 @@ +#!/ventoy/busybox/sh + +. /ventoy/hook/ventoy-hook-lib.sh + +PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH + +vtlog "####### $0 $* ########" + +vtoy_udev_auto_hook() { + if grep -q 'break.*=.*postmount' /init; then + vtlog "udev auto before postmount" + sed "/break.*=.*postmount/i\\$BUSYBOX_PATH/sh $VTOY_PATH/hook/hyperbola/ventoy-uauto-exec.sh" -i /init + elif [ -d $VT_DRACUT_HOOKS/pre-pivot ]; then + vtlog "dracut distro" + ventoy_dracut_pivot_udev_rule + fi +} + +vtoy_udev_auto_hook diff --git a/IMG/cpio/ventoy/hook/kaos/ventoy-uauto-exec.sh b/IMG/cpio/ventoy/hook/kaos/ventoy-uauto-exec.sh new file mode 100644 index 00000000..0e87794c --- /dev/null +++ b/IMG/cpio/ventoy/hook/kaos/ventoy-uauto-exec.sh @@ -0,0 +1,9 @@ +#!/ventoy/busybox/sh + +. /ventoy/hook/ventoy-hook-lib.sh + +PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH + +vtlog "####### $0 $* ########" + +ventoy_copy_udev_auto_rules \ No newline at end of file diff --git a/IMG/cpio/ventoy/hook/kaos/ventoy-uauto-hook.sh b/IMG/cpio/ventoy/hook/kaos/ventoy-uauto-hook.sh new file mode 100644 index 00000000..68b8e481 --- /dev/null +++ b/IMG/cpio/ventoy/hook/kaos/ventoy-uauto-hook.sh @@ -0,0 +1,25 @@ +#!/ventoy/busybox/sh + +. /ventoy/hook/ventoy-hook-lib.sh + +PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH + +vtlog "####### $0 $* ########" + +vtoy_udev_auto_hook() { + if [ -e /init ]; then + if $GREP -q '^mountroot$' /init; then + vtlog "mountroot distro" + sed "/^mountroot$/a\\$BUSYBOX_PATH/sh $VTOY_PATH/hook/kaos/ventoy-uauto-exec.sh" -i /init + return + fi + + if $GREP -q '^ *exec.*switch_root' /init; then + vtlog "switch_root distro" + sed "/^ *exec.*switch_root/i\\$BUSYBOX_PATH/sh $VTOY_PATH/hook/kaos/ventoy-uauto-exec.sh" -i /init + return + fi + fi +} + +vtoy_udev_auto_hook diff --git a/IMG/cpio/ventoy/hook/openEuler/ventoy-uauto-hook.sh b/IMG/cpio/ventoy/hook/openEuler/ventoy-uauto-hook.sh new file mode 100644 index 00000000..ba23d92f --- /dev/null +++ b/IMG/cpio/ventoy/hook/openEuler/ventoy-uauto-hook.sh @@ -0,0 +1,16 @@ +#!/ventoy/busybox/sh + +. /ventoy/hook/ventoy-hook-lib.sh + +PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH + +vtlog "####### $0 $* ########" + +vtoy_udev_auto_hook() { + if [ -d $VT_DRACUT_HOOKS/pre-pivot ]; then + vtlog "dracut distro" + ventoy_dracut_pivot_udev_rule + fi +} + +vtoy_udev_auto_hook diff --git a/IMG/cpio/ventoy/hook/rhel7/ventoy-uauto-hook.sh b/IMG/cpio/ventoy/hook/rhel7/ventoy-uauto-hook.sh index 093b5e9b..9af798c7 100644 --- a/IMG/cpio/ventoy/hook/rhel7/ventoy-uauto-hook.sh +++ b/IMG/cpio/ventoy/hook/rhel7/ventoy-uauto-hook.sh @@ -17,6 +17,11 @@ vtoy_udev_auto_hook() { fi fi fi + + if [ -d $VT_DRACUT_HOOKS/pre-pivot ]; then + vtlog "dracut distro" + ventoy_dracut_pivot_udev_rule + fi } vtoy_udev_auto_hook diff --git a/IMG/cpio/ventoy/hook/suse/ventoy-uauto-hook.sh b/IMG/cpio/ventoy/hook/suse/ventoy-uauto-hook.sh new file mode 100644 index 00000000..ba23d92f --- /dev/null +++ b/IMG/cpio/ventoy/hook/suse/ventoy-uauto-hook.sh @@ -0,0 +1,16 @@ +#!/ventoy/busybox/sh + +. /ventoy/hook/ventoy-hook-lib.sh + +PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH + +vtlog "####### $0 $* ########" + +vtoy_udev_auto_hook() { + if [ -d $VT_DRACUT_HOOKS/pre-pivot ]; then + vtlog "dracut distro" + ventoy_dracut_pivot_udev_rule + fi +} + +vtoy_udev_auto_hook diff --git a/IMG/cpio/ventoy/ventoy_chain.sh b/IMG/cpio/ventoy/ventoy_chain.sh index fc7089b6..3c3550c4 100644 --- a/IMG/cpio/ventoy/ventoy_chain.sh +++ b/IMG/cpio/ventoy/ventoy_chain.sh @@ -406,7 +406,10 @@ ventoy_get_os_type() { fi fi - + if [ -f /scripts/casper ]; then + echo "debian"; return + fi + echo "default" }