X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/Ventoy.git/blobdiff_plain/05a1b863a66bf72b26e5d87570c4e0e61b9736cd..bdab55e8aa191ef4066c088df82e7063fc292d7c:/IMG/cpio/ventoy/hook/alpine/udev_disk_hook.sh diff --git a/IMG/cpio/ventoy/hook/alpine/udev_disk_hook.sh b/IMG/cpio/ventoy/hook/alpine/udev_disk_hook.sh index 930009b..df4953e 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 +PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH -if [ -b /dev/${MDEV:0:-1} ]; then - vtlog "/dev/${MDEV:0:-1} exist" -else - $SLEEP 2 -fi +wait_for_usb_disk_ready -if is_ventoy_hook_finished || not_ventoy_disk "${MDEV:0:-1}"; then +vtdiskname=$(get_ventoy_disk_name) +if [ "$vtdiskname" = "unknown" ]; then + vtlog "ventoy disk not found" + PATH=$VTPATH_OLD exit 0 fi -PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH - # # longpanda: # Alpine initramfs doesn't contain dm-mod or fuse module, @@ -47,19 +42,31 @@ 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 KoModPath=$(find $VTOY_PATH/mnt/ -name 'dm-mod.ko*') -vtlog "insmod $KoModPath" +vtlog "KoModPath=$KoModPath" + +if modinfo $KoModPath | grep -q 'depend.*dax'; then + vtlog "First install dax mod ..." + DaxModPath=$(echo $KoModPath | sed 's#md/dm-mod#dax/dax#') + vtlog "insmod $DaxModPath" + insmod $DaxModPath +fi + insmod $KoModPath umount $VTOY_PATH/mnt