]> glassweightruler.freedombox.rocks Git - Ventoy.git/commitdiff
Optimization for booting TinyCore series distros
authorlongpanda <admin@ventoy.net>
Thu, 4 Feb 2021 17:14:22 +0000 (01:14 +0800)
committerlongpanda <admin@ventoy.net>
Thu, 4 Feb 2021 17:14:22 +0000 (01:14 +0800)
IMG/cpio/ventoy/hook/tinycore/ventoy-disk.sh [moved from IMG/cpio/ventoy/hook/tinycore/udev_disk_hook.sh with 66% similarity]
IMG/cpio/ventoy/hook/tinycore/ventoy-hook.sh
INSTALL/grub/grub.cfg

similarity index 66%
rename from IMG/cpio/ventoy/hook/tinycore/udev_disk_hook.sh
rename to IMG/cpio/ventoy/hook/tinycore/ventoy-disk.sh
index 6851668d95c96e31bc98631eaf2d49b0af89624b..5fc8bf1a954734f0bbce26ab87a3ce5c566a5c8a 100644 (file)
 
 . /ventoy/hook/ventoy-hook-lib.sh
 
 
 . /ventoy/hook/ventoy-hook-lib.sh
 
-if is_ventoy_hook_finished || not_ventoy_disk "${1:0:-1}"; then
+if is_ventoy_hook_finished; then
     exit 0
 fi
 
     exit 0
 fi
 
+vtlog "####### $0 $* ########"
+
+VTPATH_OLD=$PATH; 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
+
+if echo $vtdiskname | egrep -q "nvme.*p[0-9]$|mmc.*p[0-9]$"; then
+    vPart="${vtdiskname}p2"    
+else
+    vPart="${vtdiskname}2"
+fi
+
 # TinyCore linux distro doesn't contain dmsetup, we use aoe here
 # TinyCore linux distro doesn't contain dmsetup, we use aoe here
-sudo $BUSYBOX_PATH/modprobe aoe aoe_iflist=lo
+sudo modprobe aoe aoe_iflist=lo
 if [ -e /sys/module/aoe ]; then
     VBLADE_BIN=$(ventoy_get_vblade_bin)
 if [ -e /sys/module/aoe ]; then
     VBLADE_BIN=$(ventoy_get_vblade_bin)
-    sudo $VBLADE_BIN -r -f $VTOY_PATH/ventoy_image_map 9 0 lo "/dev/${1:0:-1}" &
+    
+    sudo nohup $VBLADE_BIN -r -f $VTOY_PATH/ventoy_image_map 9 0 lo "$vtdiskname" > /dev/null & 
+    sleep 2
 
     while ! [ -b /dev/etherd/e9.0 ]; do
         vtlog 'Wait for /dev/etherd/e9.0 ....'
 
     while ! [ -b /dev/etherd/e9.0 ]; do
         vtlog 'Wait for /dev/etherd/e9.0 ....'
-        $SLEEP 0.1
+        sleep 2
     done
 
     done
 
-    sudo $BUSYBOX_PATH/cp -a /dev/etherd/e9.0  "/dev/$1"
+    sudo cp -a /dev/etherd/e9.0  "$vPart"
 
     ventoy_find_bin_run rebuildfstab
 else
 
     ventoy_find_bin_run rebuildfstab
 else
@@ -42,4 +63,6 @@ else
 fi
 
 # OK finish
 fi
 
 # OK finish
+PATH=$VTPATH_OLD
+
 set_ventoy_hook_finish
 set_ventoy_hook_finish
index b78803094786d51069c47c40bd2ff6ba5ab538d7..2bd18b3e026bc5548745f867135c745b1e606934 100644 (file)
@@ -19,6 +19,5 @@
 
 . $VTOY_PATH/hook/ventoy-os-lib.sh
 
 
 . $VTOY_PATH/hook/ventoy-os-lib.sh
 
-ventoy_systemd_udevd_work_around
-
-ventoy_add_udev_rule_with_name "$VTOY_PATH/hook/tinycore/udev_disk_hook.sh %k" "90-ventoy.rules"
+$SED "/\[.*-n.*WAITUSB/i\WAITUSB=10" -i /etc/init.d/tc-config
+$SED "/\[.*-n.*AOE/i\$VTOY_PATH/hook/tinycore/ventoy-disk.sh" -i /etc/init.d/tc-config
index c497c6691a4dd4d8fe573b99b2402a78fabba5f9..70c97b2afc6b25a235f42f27bda3eb1513d6f803 100644 (file)
@@ -668,6 +668,14 @@ function uefi_unix_menu_func {
     fi
 }
 
     fi
 }
 
+function ventoy_reset_nojoliet {
+    if vt_str_begin "$vt_volume_id" "ARCARESCUE"; then
+        vt_iso9660_nojoliet 1
+    else
+        vt_iso9660_nojoliet 0
+    fi
+}
+
 function uefi_iso_menu_func {
 
     if [ -d (loop)/ ]; then
 function uefi_iso_menu_func {
 
     if [ -d (loop)/ ]; then
@@ -691,7 +699,7 @@ function uefi_iso_menu_func {
         set ventoy_fs_probe=udf
     else
         set ventoy_fs_probe=iso9660
         set ventoy_fs_probe=udf
     else
         set ventoy_fs_probe=iso9660
-        vt_iso9660_nojoliet 0
+        ventoy_reset_nojoliet
     fi
 
     loopback loop "${1}${chosen_path}"
     fi
 
     loopback loop "${1}${chosen_path}"
@@ -880,7 +888,7 @@ function legacy_iso_menu_func {
         set ventoy_fs_probe=udf
     else
         set ventoy_fs_probe=iso9660
         set ventoy_fs_probe=udf
     else
         set ventoy_fs_probe=iso9660
-        vt_iso9660_nojoliet 0
+        ventoy_reset_nojoliet
     fi
     
     loopback loop "${1}${chosen_path}"
     fi
     
     loopback loop "${1}${chosen_path}"