diff --git a/IMG/cpio/ventoy/hook/debian/porteus-hook.sh b/IMG/cpio/ventoy/hook/debian/porteus-hook.sh index 689460ce..f63b1063 100644 --- a/IMG/cpio/ventoy/hook/debian/porteus-hook.sh +++ b/IMG/cpio/ventoy/hook/debian/porteus-hook.sh @@ -25,13 +25,25 @@ porteus_hook() { if $GREP -q exfat /proc/filesystems; then vtPath=$($VTOY_PATH/tool/vtoydump -p $VTOY_PATH/ventoy_os_param) + vtFindFlag=0 $GREP '`value from`' /usr/* -r | $AWK -F: '{print $1}' | while read vtline; do echo "hooking $vtline ..." >> $VTLOG $SED "s#\`value from\`#$vtPath#g" -i $vtline + vtFindFlag=1 done + if [ $vtFindFlag -eq 0 ]; then + if $GREP -q '`value from`' /linuxrc; then + echo "hooking linuxrc ..." >> $VTLOG + $SED "/searching *for *\$CFG *file/i$BUSYBOX_PATH/sh $VTOY_PATH/hook/debian/porteus-path.sh" -i /linuxrc + $SED "/searching *for *\$CFG *file/iFROM=\$(cat /porteus-from)" -i /linuxrc + $SED "/searching *for *\$CFG *file/iISO=\$(cat /porteus-from)" -i /linuxrc + vtFindFlag=1 + fi + fi + else - for vtfile in '/init' '/linuxrc' ; do + for vtfile in '/linuxrc' '/init'; do if [ -e $vtfile ]; then if ! $GREP -q ventoy $vtfile; then echo "hooking $vtfile ..." >> $VTLOG diff --git a/IMG/cpio/ventoy/hook/debian/porteus-path.sh b/IMG/cpio/ventoy/hook/debian/porteus-path.sh new file mode 100644 index 00000000..16297de8 --- /dev/null +++ b/IMG/cpio/ventoy/hook/debian/porteus-path.sh @@ -0,0 +1,38 @@ +#!/ventoy/busybox/sh +#************************************************************************************ +# Copyright (c) 2020, longpanda +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +#************************************************************************************ + +. /ventoy/hook/ventoy-hook-lib.sh + +vtlog "####### $0 $* ########" + +VTPATH_OLD=$PATH; PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH + +wait_for_usb_disk_ready + +vtdiskname=$(get_ventoy_disk_name) + +vtPath=$(vtoydump -p $VTOY_PATH/ventoy_os_param) + +if echo $vtdiskname | egrep -q "nvme|mmc|nbd"; then + echo ${vtdiskname}p1${vtPath} > /porteus-from +else + echo ${vtdiskname}1${vtPath} > /porteus-from +fi + +PATH=$VTPATH_OLD