]> glassweightruler.freedombox.rocks Git - Ventoy.git/blobdiff - INSTALL/tool/VentoyWorker.sh
update VentoyWorker.sh for nvme
[Ventoy.git] / INSTALL / tool / VentoyWorker.sh
index 6f20a0842d47293b42addf3ef679380fd53dd7e1..658b7a12af866109dcea4304b9d71c1e69b11847 100644 (file)
@@ -3,6 +3,7 @@
 . ./tool/ventoy_lib.sh
 
 print_usage() {
+    
     echo 'Usage:  Ventoy2Disk.sh CMD [ OPTION ] /dev/sdX'
     echo '  CMD:'
     echo '   -i  install ventoy to sdX (fail if disk already installed with ventoy)'
@@ -33,6 +34,11 @@ while [ -n "$1" ]; do
         RESERVE_SPACE="YES"
         shift
         RESERVE_SIZE_MB=$1
+    elif [ "$1" = "-V" ] || [ "$1" = "--version" ]; then
+        exit 0
+    elif [ "$1" == "-h" ] || [ "$1" = "--help" ]; then
+        print_usage
+        exit 0
     else
         if ! [ -b "$1" ]; then
             vterr "$1 is NOT a valid device"
@@ -116,7 +122,7 @@ if [ "$MODE" = "install" ]; then
         if parted -v > /dev/null 2>&1; then
             PARTTOOL='parted'
         else
-            vterr "parted is not found in the sysstem, Ventoy can't create new partition."
+            vterr "parted is not found in the system, Ventoy can't create new partition."
             exit 1
         fi
     else
@@ -125,7 +131,7 @@ if [ "$MODE" = "install" ]; then
         elif fdisk -v >/dev/null 2>&1; then
             PARTTOOL='fdisk'
         else
-            vterr "Both parted and fdisk are not found in the sysstem, Ventoy can't create new partition."
+            vterr "Both parted and fdisk are not found in the system, Ventoy can't create new partition."
             exit 1
         fi
     fi
@@ -144,7 +150,7 @@ if [ "$MODE" = "install" ]; then
     disk_sector_num=$(cat /sys/block/${DISK#/dev/}/size)
     disk_size_gb=$(expr $disk_sector_num / 2097152)
 
-    if [ $disk_sector_num -gt 4294967296 ]; then
+    if [ $disk_sector_num -gt 4294967296 ] && [ -z "$VTGPT" ]; then
         vterr "$DISK is over 2TB size, MBR will not work on it."
         exit 1
     fi
@@ -180,7 +186,7 @@ if [ "$MODE" = "install" ]; then
     vtwarn "All the data on the disk $DISK will be lost!!!"
     echo ""
 
-    read -p 'Continue? (y/n)'  Answer
+    read -p 'Continue? (y/n) '  Answer
     if [ "$Answer" != "y" ]; then
         if [ "$Answer" != "Y" ]; then
             exit 0
@@ -189,7 +195,7 @@ if [ "$MODE" = "install" ]; then
 
     echo ""
     vtwarn "All the data on the disk $DISK will be lost!!!"
-    read -p 'Double-check. Continue? (y/n)'  Answer
+    read -p 'Double-check. Continue? (y/n) '  Answer
     if [ "$Answer" != "y" ]; then
         if [ "$Answer" != "Y" ]; then
             exit 0
@@ -234,7 +240,10 @@ if [ "$MODE" = "install" ]; then
         cluster_sectors=64
     fi
 
-    $cmd -n ventoy -s $cluster_sectors ${DISK}1
+    PART1=$(get_disk_part_name $DISK 1)  
+    PART2=$(get_disk_part_name $DISK 2)  
+
+    $cmd -n ventoy -s $cluster_sectors ${PART1}
 
     vtinfo "writing data to disk ..."
     
@@ -262,7 +271,7 @@ if [ "$MODE" = "install" ]; then
     vtinfo "esp partition processing ..."
     
     sleep 1
-    mtpnt=$(grep "^${DISK}2" /proc/mounts | awk '{print $2}')
+    mtpnt=$(grep "^${PART2}" /proc/mounts | awk '{print $2}')
     if [ -n "$mtpnt" ]; then
         umount $mtpnt >/dev/null 2>&1
     fi
@@ -272,12 +281,12 @@ if [ "$MODE" = "install" ]; then
         
         vtdebug "mounting part2 ...."
         for tt in 1 2 3; do
-            if mount ${DISK}2 ./tmp_mnt; then
+            if mount ${PART2} ./tmp_mnt; then
                 vtdebug "mounting part2 success"
                 break
             fi
             
-            mtpnt=$(grep "^${DISK}2" /proc/mounts | awk '{print $2}')
+            mtpnt=$(grep "^${PART2}" /proc/mounts | awk '{print $2}')
             if [ -n "$mtpnt" ]; then
                 umount $mtpnt >/dev/null 2>&1
             fi
@@ -357,7 +366,7 @@ else
         
         vtdebug "mounting part2 ...."
         for tt in 1 2 3; do
-            if mount ${DISK}2 ./tmp_mnt; then
+            if mount ${PART2} ./tmp_mnt; then
                 vtdebug "mounting part2 success"
                 break
             fi