From 82977d9b8a3328c2532c8e50fb82b36b95c22333 Mon Sep 17 00:00:00 2001 From: longpanda Date: Thu, 18 Feb 2021 09:43:27 +0800 Subject: [PATCH] add support for nbd device (PR #746) --- IMG/cpio/ventoy/hook/tinycore/ventoy-disk.sh | 2 +- IMG/cpio/ventoy/hook/ventoy-hook-lib.sh | 10 +++++----- INSTALL/tool/ventoy_lib.sh | 2 ++ LiveCD/VTOY/ventoy/ventoy.sh | 2 +- VtoyTool/vtoydm.c | 2 +- VtoyTool/vtoytool/00/vtoytool_32 | Bin 65776 -> 65776 bytes VtoyTool/vtoytool/00/vtoytool_64 | Bin 65464 -> 65464 bytes VtoyTool/vtoytool/00/vtoytool_aa64 | Bin 153824 -> 153824 bytes 8 files changed, 10 insertions(+), 8 deletions(-) diff --git a/IMG/cpio/ventoy/hook/tinycore/ventoy-disk.sh b/IMG/cpio/ventoy/hook/tinycore/ventoy-disk.sh index 5fc8bf1a..90ebbafe 100644 --- a/IMG/cpio/ventoy/hook/tinycore/ventoy-disk.sh +++ b/IMG/cpio/ventoy/hook/tinycore/ventoy-disk.sh @@ -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" diff --git a/IMG/cpio/ventoy/hook/ventoy-hook-lib.sh b/IMG/cpio/ventoy/hook/ventoy-hook-lib.sh index 689b68c8..7a3a982e 100644 --- a/IMG/cpio/ventoy/hook/ventoy-hook-lib.sh +++ b/IMG/cpio/ventoy/hook/ventoy-hook-lib.sh @@ -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} diff --git a/INSTALL/tool/ventoy_lib.sh b/INSTALL/tool/ventoy_lib.sh index 0e6f9b6a..c108197a 100644 --- a/INSTALL/tool/ventoy_lib.sh +++ b/INSTALL/tool/ventoy_lib.sh @@ -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 diff --git a/LiveCD/VTOY/ventoy/ventoy.sh b/LiveCD/VTOY/ventoy/ventoy.sh index baeb1a9b..01df8108 100644 --- a/LiveCD/VTOY/ventoy/ventoy.sh +++ b/LiveCD/VTOY/ventoy/ventoy.sh @@ -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 diff --git a/VtoyTool/vtoydm.c b/VtoyTool/vtoydm.c index ec0cb953..cb0fc893 100644 --- a/VtoyTool/vtoydm.c +++ b/VtoyTool/vtoydm.c @@ -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, diff --git a/VtoyTool/vtoytool/00/vtoytool_32 b/VtoyTool/vtoytool/00/vtoytool_32 index 621262f28e1baf39bb6040bc2379514ad1e34378..a9e11f864b4f96687212f5aedaf607e07326894a 100644 GIT binary patch delta 8733 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 HWfc2Aq>26j diff --git a/VtoyTool/vtoytool/00/vtoytool_64 b/VtoyTool/vtoytool/00/vtoytool_64 index e9bd188ff7f0d8d62359f41bb9bf1fe54bbeaba5..52a4e5611e0e84ce851c5160a357bef3e69bcad5 100644 GIT binary patch delta 10874 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

H~BoJ@~+a zx5w871<4`xFiX$P0|9~1yc}HaI zF(3OQP8IZIB>+0`ergwYGA#3%^#STj55OHve#Isw2t0qi^f=Et@U$jdvCP6~T(Lzt z2_C)=b%pbM3!W+}08b^A6i2aZR9zge9R5I6O?7N&Q}BNsven~cJ30o@vFT`%GUTwT zMsXg*=~Q?Xhi)RyF%IUjcot0w$CB7t+H@>Qi9>FqtsLh@;cJkHDuq~y39)HLeTr-) zGJaVZR}uwJvPxv-Lr8JXy28Ev1B5eF1kR~+zQm+#M@psnkPsM@BvvL7$KW8bQdv0$ z6nEv*!aZCHbRStu<5@3SQktX~K2p`#ryN*U^xHR=qz+VF+RyCsv8uksQS5oPm)Dyx zp%w1eI&l4yY{yMr0T*fN@$N|eHytEo}VWfcG z6Lh01_=FKT%!x>fC|_eW_K(#VhY!>FyNU5gA-`;Zjt?8E^)n&@hi`IvYy(_hSRlE_m$uMb)J_5;|{c5_&1NLPh0T523N{Tvml-4 z55ZF-coec#TCjQPs1vE6a+SIrYr(53tK>WpUB8P_I?s?{l0_FIasik3C`DqKP?3Pf}pP< z^CemNY@IGux5u{ynn}q(XLr@nI-ma#s261c-8M=`*9y(`>gh9zr6Qn){yGW~t#slj z=5>Iofx2RJl*bt_!-Q-y1y@;ED%q-JC1p~qhNWvYzG{R98>Iv7(NRZnA86&6&~ShX zpuwA}P{$IxEGsA4>YS&scf6R8HgQjSkrk*StaQ~usUt_RFMBBUvIWUx9(abXiPg|W zBJ~(8c&<!fGT@70~Ombp4e=_8&raKC#barQ={7?JKMw60zzeE6@$Yb<{_o zJB92FO8v~jwo~3`GVYwc=&zt_pIMZbyX*X43tOt-A3^5NWo7;|em24R;4|$-$v_vi z&}AnHThT!I9G6iR(BEx3S{HjS3bd4pfW9(NN438=NRqTdpczyRbefojmUsYNFVK1v z{BK#wpRLO-6n6Iu^d++WTSjs;?%x)rhlmykYo!t1Lhf5%Du9MZ&-nJa&~TBe{%v7z z5W6ZXFAt5?B;$1jQdk3h?zhPbG&D^|wdWHYZGiH4o=>SjQ>W^vxMiiO0^LPo$;v0zSPhHR zYDo&fDd75BQ8mzKW3QP&=TPt$vT|A6kU~`I0hHf_^T`G@eVnejm4Jr}*(6E_I(n{- z*2&HlsGSPFu&~us1)d*cbsmdg`atm9BX(U@-V*w?#04B@1o{bCuUpt{N(IleG1<^x zpB=j1cH?1RUJ^Gu|IFJ;E4vX>*)bFcZn6i zHKmpR6MFC>e`N}uBoq**VokFs`72p@XSJ?QfWSo=*bbDVNWnMabNywV12{GF#WKCij;iDbKtJVU(Px_12WL!gzE4)pqDUADD= z(*(MT3U12@{nqGco$NY+{xnsmFB4vE0iB=rXX)<={wu`p$m}1a+=<6Koq7jZF6E)d zFF1GP|H)3e2kZX(&;#&HBlBHZ84{&iOc$$^!+8)rNt6t)ZnH1gPbg9^UpzgSg)r)+L)ov_x%HPTn$17i2&|JmPHI0_9X$qKYcoc7g1!$zQd zFD_Cl&`o0Qb^E(ZXg)`IK%b4wcaZOL-)vL?G(>n6B{ZKGvS;Z5(2vDQ=qS)11d2~t z4|1tz*5rvmjg$=Zs#tTgkPQpb=i7?1fM#@w)##4|T7p-T&*&Z%dGLAcI`2tpjL=b@ eSc2<5>N@4>yi;i06N}&aExLmBuDmBvUjGl)OBzuC diff --git a/VtoyTool/vtoytool/00/vtoytool_aa64 b/VtoyTool/vtoytool/00/vtoytool_aa64 index 0799f3cb2f1ce09a061c865113277be8b357f517..c342a7961c71c32ac25f0fcdfa6b930d04c614c1 100644 GIT binary patch delta 5258 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 delta 5166 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