return
fi
- if vtoyfat -T; then
- vtdebug "vtoyfat test ok ..."
+ if vtoycli fat -T; then
+ vtdebug "vtoycli fat test ok ..."
else
- vtdebug "vtoyfat test fail ..."
+ vtdebug "vtoycli fat test fail ..."
ventoy_false
return
fi
echo ${DISK}p${2}
elif echo $DISK | grep -q "/dev/nbd[0-9]"; then
echo ${DISK}p${2}
+ elif echo $DISK | grep -q "/dev/zd[0-9]"; then
+ echo ${DISK}p${2}
+ elif echo $DISK | grep -q "/dev/md[0-9]"; then
+ echo ${DISK}p${2}
else
echo ${DISK}${2}
fi
PART2=$(get_disk_part_name $1 2)
- vtoyfat -s $PART2
+ vtoycli fat -s $PART2
}
get_disk_ventoy_version() {
PART2=$(get_disk_part_name $1 2)
- ParseVer=$(vtoyfat $PART2)
+ ParseVer=$(vtoycli fat $PART2)
if [ $? -eq 0 ]; then
vtdebug "Ventoy version in $PART2 is $ParseVer"
echo $ParseVer
ventoy_false
}
+wait_and_create_part() {
+ vPART1=$1
+ vPART2=$2
+ echo 'Wait for partitions $vPART1 and $vPART2 ...'
+ for i in 0 1 2 3 4 5 6 7 8 9; do
+ if ls -l $vPART1 2>/dev/null | grep -q '^b'; then
+ if ls -l $vPART2 2>/dev/null | grep -q '^b'; then
+ break
+ fi
+ else
+ echo "Wait for $vPART1 and $vPART2 ..."
+ sleep 1
+ fi
+ done
+
+ if ls -l $vPART1 2>/dev/null | grep -q '^b'; then
+ echo "$vPART1 exist OK"
+ else
+ MajorMinor=$(sed "s/:/ /" /sys/class/block/${vPART1#/dev/}/dev)
+ echo "mknod -m 0660 $vPART1 b $MajorMinor ..."
+ mknod -m 0660 $vPART1 b $MajorMinor
+ fi
+
+ if ls -l $vPART2 2>/dev/null | grep -q '^b'; then
+ echo "$vPART2 exist OK"
+ else
+ MajorMinor=$(sed "s/:/ /" /sys/class/block/${vPART2#/dev/}/dev)
+ echo "mknod -m 0660 $vPART2 b $MajorMinor ..."
+ mknod -m 0660 $vPART2 b $MajorMinor
+ fi
+
+ if ls -l $vPART1 2>/dev/null | grep -q '^b'; then
+ if ls -l $vPART2 2>/dev/null | grep -q '^b'; then
+ echo "partition exist OK"
+ fi
+ else
+ echo "[FAIL] $vPART1/$vPART2 does not exist"
+ exit 1
+ fi
+}
+
+
format_ventoy_disk_mbr() {
reserve_mb=$1
DISK=$2
vtdebug "part1_start_sector=$part1_start_sector part1_end_sector=$part1_end_sector"
vtdebug "part2_start_sector=$part2_start_sector part2_end_sector=$part2_end_sector"
+ if [ -e $PART1 ]; then
+ echo "delete $PART1"
+ rm -f $PART1
+ fi
+
if [ -e $PART2 ]; then
echo "delete $PART2"
rm -f $PART2
sleep 3
echo "Done"
- echo 'mkfs on disk partitions ...'
- for i in 1 2 3 4 5 6 7; do
- if [ -b $PART2 ]; then
+
+ echo 'Wait for partitions ...'
+ for i in 0 1 2 3 4 5 6 7 8 9; do
+ if [ -b $PART1 -a -b $PART2 ]; then
break
else
- echo "wait $PART2 ..."
+ echo "Wait for $PART1/$PART2 ..."
sleep 1
fi
done
-
+ if ! [ -b $PART1 ]; then
+ MajorMinor=$(sed "s/:/ /" /sys/class/block/${PART1#/dev/}/dev)
+ echo "mknod -m 0660 $PART1 b $MajorMinor ..."
+ mknod -m 0660 $PART1 b $MajorMinor
+ fi
+
if ! [ -b $PART2 ]; then
MajorMinor=$(sed "s/:/ /" /sys/class/block/${PART2#/dev/}/dev)
echo "mknod -m 0660 $PART2 b $MajorMinor ..."
- mknod -m 0660 $PART2 b $MajorMinor
-
- if ! [ -b $PART1 ]; then
- MajorMinor=$(sed "s/:/ /" /sys/class/block/${PART1#/dev/}/dev)
- echo "mknod -m 0660 $PART1 b $MajorMinor ..."
- mknod -m 0660 $PART1 b $MajorMinor
- fi
+ mknod -m 0660 $PART2 b $MajorMinor
+ fi
+
+ if [ -b $PART1 -a -b $PART2 ]; then
+ echo "partition exist OK"
+ else
+ echo "[FAIL] $PART1/$PART2 does not exist"
+ exit 1
fi
echo "create efi fat fs $PART2 ..."
vtdebug "part1_start_sector=$part1_start_sector part1_end_sector=$part1_end_sector"
vtdebug "part2_start_sector=$part2_start_sector part2_end_sector=$part2_end_sector"
+ if [ -e $PART1 ]; then
+ echo "delete $PART1"
+ rm -f $PART1
+ fi
+
if [ -e $PART2 ]; then
echo "delete $PART2"
rm -f $PART2
mkpart Ventoy ntfs $part1_start_sector $part1_end_sector \
mkpart VTOYEFI fat16 $part2_start_sector $part2_end_sector \
$vt_set_efi_type \
- set 2 hidden on \
quit
sync
- vtoygpt -f $DISK
+ vtoycli gpt -f $DISK
sync
udevadm trigger --name-match=$DISK >/dev/null 2>&1
sleep 3
echo "Done"
- echo 'mkfs on disk partitions ...'
- for i in 1 2 3 4 5 6 7; do
- if [ -b $PART2 ]; then
+ echo 'Wait for partitions ...'
+ for i in 0 1 2 3 4 5 6 7 8 9; do
+ if [ -b $PART1 -a -b $PART2 ]; then
break
else
- echo "wait $PART2 ..."
+ echo "Wait for $PART1/$PART2 ..."
sleep 1
fi
done
-
+ if ! [ -b $PART1 ]; then
+ MajorMinor=$(sed "s/:/ /" /sys/class/block/${PART1#/dev/}/dev)
+ echo "mknod -m 0660 $PART1 b $MajorMinor ..."
+ mknod -m 0660 $PART1 b $MajorMinor
+ fi
+
if ! [ -b $PART2 ]; then
MajorMinor=$(sed "s/:/ /" /sys/class/block/${PART2#/dev/}/dev)
echo "mknod -m 0660 $PART2 b $MajorMinor ..."
- mknod -m 0660 $PART2 b $MajorMinor
-
- if ! [ -b $PART1 ]; then
- MajorMinor=$(sed "s/:/ /" /sys/class/block/${PART1#/dev/}/dev)
- echo "mknod -m 0660 $PART1 b $MajorMinor ..."
- mknod -m 0660 $PART1 b $MajorMinor
- fi
+ mknod -m 0660 $PART2 b $MajorMinor
+ fi
+
+ if [ -b $PART1 -a -b $PART2 ]; then
+ echo "partition exist OK"
+ else
+ echo "[FAIL] $PART1/$PART2 does not exist"
+ exit 1
fi
echo "create efi fat fs $PART2 ..."
for i in 0 1 2 3 4 5 6 7 8 9; do
check_umount_disk "$PART2"
- if mkfs.vfat -F 16 -n VTOYEFI $PART2; then
+ if mkfs.vfat -F 16 -n VTOYEFI -s 1 $PART2; then
echo 'success'
break
else