X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/Ventoy.git/blobdiff_plain/d5b829f8e8c8367b032b4bb57a8fc37701d42e17..c7dcaa57342a3c5b556d8572dfdba720bb15eba3:/IMG/cpio/ventoy/hook/debian/puppy-disk.sh?ds=sidebyside diff --git a/IMG/cpio/ventoy/hook/debian/puppy-disk.sh b/IMG/cpio/ventoy/hook/debian/puppy-disk.sh index 6872f58..600088a 100644 --- a/IMG/cpio/ventoy/hook/debian/puppy-disk.sh +++ b/IMG/cpio/ventoy/hook/debian/puppy-disk.sh @@ -27,6 +27,33 @@ vtlog "####### $0 $* ########" VTPATH_OLD=$PATH; PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH +ventoy_os_install_dmsetup_by_fuse() { + vtlog "ventoy_os_install_dmsetup_by_fuse $*" + + mkdir -p $VTOY_PATH/mnt/fuse $VTOY_PATH/mnt/iso $VTOY_PATH/mnt/squashfs + + vtoydm -p -f $VTOY_PATH/ventoy_image_map -d $1 > $VTOY_PATH/ventoy_dm_table + vtoy_fuse_iso -f $VTOY_PATH/ventoy_dm_table -m $VTOY_PATH/mnt/fuse + + mount -t iso9660 $VTOY_PATH/mnt/fuse/ventoy.iso $VTOY_PATH/mnt/iso + + sfsfile=$(ls $VTOY_PATH/mnt/iso/*.sfs) + + mount -t squashfs $sfsfile $VTOY_PATH/mnt/squashfs + + kVer=$(uname -r) + KoName=$(ls $VTOY_PATH/mnt/squashfs/lib/modules/$kVer/kernel/drivers/md/dm-mod.ko*) + vtlog "insmod $KoName" + insmod $KoName + + umount $VTOY_PATH/mnt/squashfs + umount $VTOY_PATH/mnt/iso + umount $VTOY_PATH/mnt/fuse +} + + + + wait_for_usb_disk_ready vtdiskname=$(get_ventoy_disk_name) @@ -36,12 +63,19 @@ if [ "$vtdiskname" = "unknown" ]; then exit 0 fi +if grep -q 'device-mapper' /proc/devices; then + vtlog "device-mapper module exist" +else + ventoy_os_install_dmsetup_by_fuse $vtdiskname +fi + ventoy_udev_disk_common_hook "${vtdiskname#/dev/}2" "noreplace" if ! [ -e $VTOY_DM_PATH ]; then blkdev_num=$($VTOY_PATH/tool/dmsetup ls | grep ventoy | sed 's/.*(\([0-9][0-9]*\),.*\([0-9][0-9]*\).*/\1 \2/') mknod -m 0666 $VTOY_DM_PATH b $blkdev_num fi +cp -a $VTOY_DM_PATH /dev/ventoy PATH=$VTPATH_OLD