]> glassweightruler.freedombox.rocks Git - Ventoy.git/commitdiff
Fix the issue that install media not recognized when install Clear Linux. (#1674)
authorlongpanda <admin@ventoy.net>
Thu, 16 Jun 2022 14:49:04 +0000 (22:49 +0800)
committerlongpanda <admin@ventoy.net>
Thu, 16 Jun 2022 14:49:04 +0000 (22:49 +0800)
IMG/cpio/ventoy/hook/clear/hidden-hook.sh [new file with mode: 0644]
IMG/cpio/ventoy/hook/clear/udevadm [new file with mode: 0644]
IMG/cpio/ventoy/hook/clear/ventoy-hook.sh

diff --git a/IMG/cpio/ventoy/hook/clear/hidden-hook.sh b/IMG/cpio/ventoy/hook/clear/hidden-hook.sh
new file mode 100644 (file)
index 0000000..9b461b0
--- /dev/null
@@ -0,0 +1,43 @@
+#!/ventoy/busybox/sh
+#************************************************************************************
+# Copyright (c) 2020, longpanda <admin@ventoy.net>
+# 
+# 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 <http://www.gnu.org/licenses/>.
+# 
+#************************************************************************************
+
+. /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 (file)
index 0000000..0977a41
--- /dev/null
@@ -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 "$@"
index d29eddfcd847a4beb98e4107ad7325c68d4b7a9b..3d7e2b55a87ce7ff36d99e5f8ed135f03d8b86b1 100644 (file)
@@ -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