]> glassweightruler.freedombox.rocks Git - Ventoy.git/blobdiff - IMG/cpio/ventoy/hook/debian/puppy-disk.sh
Correct some spelling and grammar in BuildVentoyFromSource.txt (#2491)
[Ventoy.git] / IMG / cpio / ventoy / hook / debian / puppy-disk.sh
index 7f987223db8107b7ed651655fe14a98f583dd35a..17c715f8009db153e33c6942ba646438a8953a81 100644 (file)
@@ -27,6 +27,41 @@ 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
+
+    if ls $VTOY_PATH/mnt/iso/zdrv_*.sfs 2>/dev/null; then
+        sfsfile=$(ls $VTOY_PATH/mnt/iso/zdrv_*.sfs)
+    else
+        sfsfile=$(ls $VTOY_PATH/mnt/iso/*.sfs)
+    fi
+
+    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*)
+    if [ -z "$KoName" ]; then
+        KoName=$(ls $VTOY_PATH/mnt/squashfs/usr/lib/modules/$kVer/kernel/drivers/md/dm-mod.ko*)
+    fi
+
+    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,6 +71,12 @@ 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