diff --git a/IMG/cpio/ventoy/hook/alpine/insert.sh b/IMG/cpio/ventoy/hook/alpine/insert.sh new file mode 100644 index 00000000..65c47fa5 --- /dev/null +++ b/IMG/cpio/ventoy/hook/alpine/insert.sh @@ -0,0 +1,4 @@ +for i in 1 2; do +if [ $i -eq 2 ]; then + /ventoy/busybox/sh /ventoy/hook/alpine/udev_disk_hook.sh +fi diff --git a/IMG/cpio/ventoy/hook/alpine/udev_disk_hook.sh b/IMG/cpio/ventoy/hook/alpine/udev_disk_hook.sh index 91391cca..df4953ec 100644 --- a/IMG/cpio/ventoy/hook/alpine/udev_disk_hook.sh +++ b/IMG/cpio/ventoy/hook/alpine/udev_disk_hook.sh @@ -19,22 +19,17 @@ . /ventoy/hook/ventoy-hook-lib.sh -if [ "$SUBSYSTEM" != "block" ] || [ "$DEVTYPE" != "partition" ]; then - exit 0 -fi - -if [ -b /dev/${MDEV:0:-1} ]; then - vtlog "/dev/${MDEV:0:-1} exist" -else - $SLEEP 2 -fi - -if is_ventoy_hook_finished || not_ventoy_disk "${MDEV:0:-1}"; then - exit 0 -fi - PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH +wait_for_usb_disk_ready + +vtdiskname=$(get_ventoy_disk_name) +if [ "$vtdiskname" = "unknown" ]; then + vtlog "ventoy disk not found" + PATH=$VTPATH_OLD + exit 0 +fi + # # longpanda: # Alpine initramfs doesn't contain dm-mod or fuse module, @@ -47,13 +42,17 @@ PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH # 3. unmount and delete the squashfs file # +MDEV="${vtdiskname#/dev/}2" + vtoydm -i -f $VTOY_PATH/ventoy_image_map -d /dev/${MDEV:0:-1} > $VTOY_PATH/iso_file_list vtLine=$(grep '[-][-] modloop-lts ' $VTOY_PATH/iso_file_list) sector=$(echo $vtLine | awk '{print $(NF-1)}') length=$(echo $vtLine | awk '{print $NF}') +echo -n "Mounting boot media, please wait ......" vtoydm -e -f $VTOY_PATH/ventoy_image_map -d /dev/${MDEV:0:-1} -s $sector -l $length -o /vt_modloop +echo "done" mkdir -p $VTOY_PATH/mnt mount /vt_modloop $VTOY_PATH/mnt diff --git a/IMG/cpio/ventoy/hook/alpine/ventoy-hook.sh b/IMG/cpio/ventoy/hook/alpine/ventoy-hook.sh index ae366cdf..f894966f 100644 --- a/IMG/cpio/ventoy/hook/alpine/ventoy-hook.sh +++ b/IMG/cpio/ventoy/hook/alpine/ventoy-hook.sh @@ -19,6 +19,17 @@ . $VTOY_PATH/hook/ventoy-os-lib.sh -echo "-[-a-z0-9]*2 root:root 0666 @$BUSYBOX_PATH/sh $VTOY_PATH/hook/alpine/udev_disk_hook.sh" >> /mdev.conf -$CAT /etc/mdev.conf >> /mdev.conf -$BUSYBOX_PATH/mv /mdev.conf /etc/mdev.conf +PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH + +LineBegin=$(grep -n "ebegin.*Mounting boot media" /init | awk -F: '{print $1}') + +grep -n "^eend" /init > /t.list +while read line; do + LineEnd=$(echo $line | awk -F: '{print $1}') + if [ $LineEnd -gt $LineBegin ]; then + sed "${LineEnd}i\done" -i /init + sed "${LineBegin}r /ventoy/hook/alpine/insert.sh" -i /init + break + fi +done < /t.list +rm -f /t.list diff --git a/IMG/cpio/ventoy/hook/debian/default-hook.sh b/IMG/cpio/ventoy/hook/debian/default-hook.sh index 37f5a9ed..5db56e35 100644 --- a/IMG/cpio/ventoy/hook/debian/default-hook.sh +++ b/IMG/cpio/ventoy/hook/debian/default-hook.sh @@ -64,6 +64,10 @@ if [ -f $VTOY_PATH/autoinstall ]; then $SED "/^mount \/proc/a export file=$VTOY_PATH/autoinstall; export auto='true'; export priority='critical'" -i /init fi fi + + # if [ -e /bin/check-missing-firmware ]; then + # $SED "/^#!/a\exit 0" -i /bin/check-missing-firmware + # fi fi #for ARMA aka Omoikane