]> glassweightruler.freedombox.rocks Git - Ventoy.git/commitdiff
add support for nbd device (PR #746)
authorlongpanda <admin@ventoy.net>
Thu, 18 Feb 2021 01:43:27 +0000 (09:43 +0800)
committerlongpanda <admin@ventoy.net>
Thu, 18 Feb 2021 01:43:27 +0000 (09:43 +0800)
IMG/cpio/ventoy/hook/tinycore/ventoy-disk.sh
IMG/cpio/ventoy/hook/ventoy-hook-lib.sh
INSTALL/tool/ventoy_lib.sh
LiveCD/VTOY/ventoy/ventoy.sh
VtoyTool/vtoydm.c
VtoyTool/vtoytool/00/vtoytool_32
VtoyTool/vtoytool/00/vtoytool_64
VtoyTool/vtoytool/00/vtoytool_aa64

index 5fc8bf1a954734f0bbce26ab87a3ce5c566a5c8a..90ebbafe572fe0dd9321d0751083f36fc02e3933 100644 (file)
@@ -36,7 +36,7 @@ if [ "$vtdiskname" = "unknown" ]; then
     exit 0
 fi
 
-if echo $vtdiskname | egrep -q "nvme.*p[0-9]$|mmc.*p[0-9]$"; then
+if echo $vtdiskname | egrep -q "nvme.*p[0-9]$|mmc.*p[0-9]$|nbd.*p[0-9]$"; then
     vPart="${vtdiskname}p2"    
 else
     vPart="${vtdiskname}2"
index 689b68c8d857169743f156890f36250f994239d5..7a3a982ef7139a60075942be4fc7f14c7600b49c 100644 (file)
@@ -87,7 +87,7 @@ wait_for_usb_disk_ready() {
                usb_disk=$(get_ventoy_disk_name)
         vtlog "wait_for_usb_disk_ready $usb_disk ..."
         
-        if echo $usb_disk | $EGREP -q "nvme|mmc"; then
+        if echo $usb_disk | $EGREP -q "nvme|mmc|nbd"; then
             vtpart2=${usb_disk}p2
         else
             vtpart2=${usb_disk}2
@@ -103,7 +103,7 @@ wait_for_usb_disk_ready() {
 }
 
 check_usb_disk_ready() {
-    if echo $1 | $EGREP -q "nvme|mmc"; then
+    if echo $1 | $EGREP -q "nvme|mmc|nbd"; then
         vtpart2=${1}p2
     else
         vtpart2=${1}2
@@ -121,7 +121,7 @@ is_ventoy_disk() {
 }
 
 not_ventoy_disk() {
-    if echo $1 | $EGREP -q "nvme.*p$|mmc.*p$"; then
+    if echo $1 | $EGREP -q "nvme.*p$|mmc.*p$|nbd.*p$"; then
         vtDiskName=${1:0:-1}
     else
         vtDiskName=$1
@@ -486,7 +486,7 @@ ventoy_create_persistent_link() {
 }
 
 ventoy_udev_disk_common_hook() {    
-    if echo $1 | $EGREP -q "nvme.*p[0-9]$|mmc.*p[0-9]$"; then
+    if echo $1 | $EGREP -q "nvme.*p[0-9]$|mmc.*p[0-9]$|nbd.*p[0-9]$"; then
         VTDISK="${1:0:-2}"    
     else
         VTDISK="${1:0:-1}"
@@ -558,7 +558,7 @@ is_inotify_ventoy_part() {
     if echo $1 | $GREP -q "2$"; then
         if ! [ -e /sys/block/$1 ]; then
             if [ -e /sys/class/block/$1 ]; then
-                if echo $1 | $EGREP -q "nvme|mmc"; then
+                if echo $1 | $EGREP -q "nvme|mmc|nbd"; then
                     vtShortName=${1:0:-2}
                 else
                     vtShortName=${1:0:-1}
index 0e6f9b6aae7dbc8278e8919f4d58aaa4fb407229..c108197a0b7680f26ac4248147e294984668b2f1 100644 (file)
@@ -90,6 +90,8 @@ get_disk_part_name() {
         echo ${DISK}p${2}
     elif echo $DISK | grep -q "/dev/mmcblk[0-9]"; then
         echo ${DISK}p${2}
+    elif echo $DISK | grep -q "/dev/nbd[0-9]"; then
+        echo ${DISK}p${2}
     else
         echo ${DISK}${2}
     fi
index baeb1a9b638550bee12d465302144d52cdd1aa37..01df81082a71d4facf011d7fe372d84f37696a59 100644 (file)
@@ -20,7 +20,7 @@ get_disk_size() {
 enum_disk() {
     id=1
     rm -f /device.list
-    ls /sys/block/ | egrep 'd[a-z]|nvme|mmc' | while read dev; do
+    ls /sys/block/ | egrep 'd[a-z]|nvme|mmc|nbd' | while read dev; do
         if ! [ -b /dev/$dev ]; then
             continue
         fi
index ec0cb95302e3a048d6ce84a4e93dca7ed7dbc510..cb0fc89362efc46469e6d5febff219932efa262a 100644 (file)
@@ -507,7 +507,7 @@ static int vtoydm_print_linear_table(const char *img_map_file, const char *diskn
                (sector_start << 2), disk_sector_num, 
                diskname, (unsigned long long)chunk[i].disk_start_sector);
         #else
-        if (strstr(diskname, "nvme") || strstr(diskname, "mmc"))
+        if (strstr(diskname, "nvme") || strstr(diskname, "mmc") || strstr(diskname, "nbd"))
         {
             printf("%u %u linear %sp1 %llu\n", 
                (sector_start << 2), disk_sector_num, 
index 621262f28e1baf39bb6040bc2379514ad1e34378..a9e11f864b4f96687212f5aedaf607e07326894a 100644 (file)
Binary files a/VtoyTool/vtoytool/00/vtoytool_32 and b/VtoyTool/vtoytool/00/vtoytool_32 differ
index e9bd188ff7f0d8d62359f41bb9bf1fe54bbeaba5..52a4e5611e0e84ce851c5160a357bef3e69bcad5 100644 (file)
Binary files a/VtoyTool/vtoytool/00/vtoytool_64 and b/VtoyTool/vtoytool/00/vtoytool_64 differ
index 0799f3cb2f1ce09a061c865113277be8b357f517..c342a7961c71c32ac25f0fcdfa6b930d04c614c1 100644 (file)
Binary files a/VtoyTool/vtoytool/00/vtoytool_aa64 and b/VtoyTool/vtoytool/00/vtoytool_aa64 differ