diff --git a/IMG/cpio/ventoy/hook/clear/hidden-hook.sh b/IMG/cpio/ventoy/hook/clear/hidden-hook.sh new file mode 100644 index 00000000..9b461b06 --- /dev/null +++ b/IMG/cpio/ventoy/hook/clear/hidden-hook.sh @@ -0,0 +1,43 @@ +#!/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 + +VTPATH_OLD=$PATH; PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH + +NEWROOT=$(grep switch_root /init | awk '{print $3}') + +for i in 'usr/bin' 'usr/sbin'; do + if [ -f $NEWROOT/$i/udevadm ]; then + UPATH=$i + break + fi +done + +blkdev_num=$(dmsetup ls | grep ventoy | sed 's/.*(\([0-9][0-9]*\),.*\([0-9][0-9]*\).*/\1:\2/') +vtDM=$(ventoy_find_dm_id ${blkdev_num}) + +sed "s#UPATH=.*#UPATH=/$UPATH#" -i /ventoy/hook/clear/udevadm +sed "s#DM=.*#DM=$vtDM#" -i /ventoy/hook/clear/udevadm + + +mv $NEWROOT/$UPATH/udevadm $NEWROOT/$UPATH/udevadm_bk +cp -a /ventoy/hook/clear/udevadm $NEWROOT/$UPATH/udevadm +chmod 777 $NEWROOT/$UPATH/udevadm + diff --git a/IMG/cpio/ventoy/hook/clear/udevadm b/IMG/cpio/ventoy/hook/clear/udevadm new file mode 100644 index 00000000..0977a410 --- /dev/null +++ b/IMG/cpio/ventoy/hook/clear/udevadm @@ -0,0 +1,12 @@ +#!/bin/bash + +UPATH=/usr/bin +DM=dm-0 + +rm -f $UPATH/udevadm +mv $UPATH/udevadm_bk $UPATH/udevadm + +echo 1 > /tmp/vthidden +mount --bind /tmp/vthidden /sys/block/$DM/hidden + +exec $UPATH/udevadm "$@" diff --git a/IMG/cpio/ventoy/hook/clear/ventoy-hook.sh b/IMG/cpio/ventoy/hook/clear/ventoy-hook.sh index d29eddfc..3d7e2b55 100644 --- a/IMG/cpio/ventoy/hook/clear/ventoy-hook.sh +++ b/IMG/cpio/ventoy/hook/clear/ventoy-hook.sh @@ -26,3 +26,6 @@ else echo "find_installer" >> $VTLOG $SED "/\$.*find_installer/i\ $BUSYBOX_PATH/sh $VTOY_PATH/hook/clear/disk-hook.sh" -i /init fi + +#issue 1674 +$SED "/switch_root/i $BUSYBOX_PATH/sh $VTOY_PATH/hook/clear/hidden-hook.sh" -i /init