]> glassweightruler.freedombox.rocks Git - Ventoy.git/commitdiff
Fix the issue that VTOY_LINUX_REMOUNT=1 does not work with Batocera 35 (#1878)
authorlongpanda <admin@ventoy.net>
Fri, 7 Oct 2022 03:16:45 +0000 (11:16 +0800)
committerlongpanda <admin@ventoy.net>
Fri, 7 Oct 2022 03:16:45 +0000 (11:16 +0800)
IMG/cpio/ventoy/loop/batocera/ventoy-disk.sh

index 08c9d73d5c252bc779d3b4bc3da14908c889dae7..e9f8658762ee921994fd4b770ced4fb8385f532f 100644 (file)
@@ -37,9 +37,38 @@ if [ "$vtdiskname" = "unknown" ]; then
 fi
 
 ventoy_udev_disk_common_hook "${vtdiskname#/dev/}2" "noreplace"
 fi
 
 ventoy_udev_disk_common_hook "${vtdiskname#/dev/}2" "noreplace"
-
 ventoy_create_dev_ventoy_part
 
 ventoy_create_dev_ventoy_part
 
+if ventoy_need_dm_patch; then
+    vtlog "extract a ko file"
+
+    mkdir -p /ventoy/tmpmnt1 /ventoy/tmpmnt2
+    mount /dev/ventoy1 /ventoy/tmpmnt1
+    mount /ventoy/tmpmnt1/boot/batocera /ventoy/tmpmnt2
+    vtKV=$(uname -r)
+    
+    mkdir -p /lib/modules/$vtKV/kernel/
+    vtKO=$(find "/ventoy/tmpmnt2/lib/modules/$vtKV/kernel/fs/" -name "*.ko*" | head -n1)    
+    cp -a $vtKO /lib/modules/$vtKV/kernel/
+    
+    vtlog "vtKV=$vtKV vtKO=$vtKO"
+    
+    umount /ventoy/tmpmnt2
+    umount /ventoy/tmpmnt1
+
+    vtPartid=1
+    cat /vtoy_dm_table | while read vtline; do
+        dmsetup remove ventoy$vtPartid
+        vtPartid=$(expr $vtPartid + 1)
+    done
+    dmsetup remove ventoy
+    
+    vtlog "Recreate device-mapper"
+    ventoy_udev_disk_common_hook "${vtdiskname#/dev/}2" "noreplace"
+    ventoy_create_dev_ventoy_part
+fi
+
+
 PATH=$VTPATH_OLD
 
 set_ventoy_hook_finish
 PATH=$VTPATH_OLD
 
 set_ventoy_hook_finish