Fix the issue when booting the latest recalbox img file. (#1423)

This commit is contained in:
longpanda
2022-02-06 00:25:27 +08:00
parent 82e99a3b37
commit 34a36bfc3e
7 changed files with 102 additions and 3 deletions

View File

@@ -312,7 +312,10 @@ ventoy_dm_patch() {
vtKv=$($BUSYBOX_PATH/uname -r)
if [ -d /lib/modules/$vtKv/kernel/fs ]; then
if [ ! -d /lib/modules/$vtKv ]; then
vtlog "No modules directory found"
return
elif [ -d /lib/modules/$vtKv/kernel/fs ]; then
vtModPath=$($FIND /lib/modules/$vtKv/kernel/fs/ -name "*.ko*" | $HEAD -n1)
else
vtModPath=$($FIND /lib/modules/$vtKv/kernel/ -name "xfs.ko*" | $HEAD -n1)
@@ -326,7 +329,10 @@ ventoy_dm_patch() {
vtlog "template module is $vtModPath $vtModName"
if echo $vtModPath | $GREP -q "[.]ko$"; then
if [ -z "$vtModPath" ]; then
vtlog "No template module found"
return
elif echo $vtModPath | $GREP -q "[.]ko$"; then
$BUSYBOX_PATH/cp -a $vtModPath $VTOY_PATH/$vtModName
elif echo $vtModPath | $GREP -q "[.]ko[.]xz$"; then
$BUSYBOX_PATH/xzcat $vtModPath > $VTOY_PATH/$vtModName

View File

@@ -0,0 +1,45 @@
#!/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
if [ -f /vtoy_dm_table ]; then
vtPartCnt=$(cat /vtoy_dm_table | wc -l)
if [ $vtPartCnt -ne 1 ]; then
exit 0
fi
else
exit 0
fi
vtlog "try patch init script"
if [ -f /new_root/etc/init.d/S11share ]; then
cp -a /new_root/etc/init.d/S11share /new_root/overlay/S11share
sed "/^ *createMissingPartitions *$/r $VTOY_PATH/loop/recalbox/ventoy-share.sh" -i /new_root/overlay/S11share
vtFile=$(ls -1 /new_root/etc/init.d/ | grep -m1 S01)
mount --bind /new_root/overlay/S11share /new_root/etc/init.d/$vtFile
vtlog "patch S11share to $vtFile"
fi
PATH=$VTPATH_OLD

View File

@@ -36,10 +36,15 @@ if [ "$vtdiskname" = "unknown" ]; then
exit 0
fi
if [ -f $VTOY_PATH/modules/dm-mod.ko ]; then
insmod $VTOY_PATH/modules/dm-mod.ko
fi
ventoy_udev_disk_common_hook "${vtdiskname#/dev/}2" "noreplace"
ventoy_create_dev_ventoy_part
PATH=$VTPATH_OLD
set_ventoy_hook_finish

View File

@@ -20,4 +20,6 @@
. $VTOY_PATH/hook/ventoy-os-lib.sh
$SED "/mount.*devtmpfs/a\ $BUSYBOX_PATH/sh $VTOY_PATH/loop/recalbox/ventoy-disk.sh" -i /init
$SED "/switch_root/i\ $BUSYBOX_PATH/sh $VTOY_PATH/loop/recalbox/ventoy-create-part.sh" -i /init
#$SED "/switch_root/i\ exec /ventoy/busybox/sh" -i /init

View File

@@ -0,0 +1,15 @@
echo '#################################################' > /dev/console
echo '#################################################' > /dev/console
echo '### PLEASE REBOOT AND BOOT FROM VENTOY AGAIN ###' > /dev/console
echo '#################################################' > /dev/console
echo '#################################################' > /dev/console
echo '#################################################' > /dev/tty0
echo '#################################################' > /dev/tty0
echo '### PLEASE REBOOT AND BOOT FROM VENTOY AGAIN ###' > /dev/tty0
echo '#################################################' > /dev/tty0
echo '#################################################' > /dev/tty0
sync
sleep 3600