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/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
}
+check_umount_disk() {
+ DiskOrPart="$1"
+ grep "^${DiskOrPart}" /proc/mounts | while read mtline; do
+ mtpnt=$(echo $mtline | awk '{print $2}')
+ vtdebug "Trying to umount $mtpnt ..."
+ umount $mtpnt >/dev/null 2>&1
+ done
+}
get_ventoy_version_from_cfg() {
if grep -q 'set.*VENTOY_VERSION=' $1; then
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
fi
part2_start_sector=$(expr $part1_end_sector + 1)
+
+ modsector=$(expr $part2_start_sector % 8)
+ if [ $modsector -gt 0 ]; then
+ vtdebug "modsector:$modsector need to be aligned with 4KB"
+ part1_end_sector=$(expr $part1_end_sector - $modsector)
+ part2_start_sector=$(expr $part1_end_sector + 1)
+ fi
+
part2_end_sector=$(expr $part2_start_sector + $VENTOY_SECTOR_NUM - 1)
export part2_start_sector
echo "create efi fat fs $PART2 ..."
for i in 0 1 2 3 4 5 6 7 8 9; do
- if mkfs.vfat -F 16 -n VTOYEFI $PART2; then
+ check_umount_disk "$PART2"
+
+ if mkfs.vfat -F 16 -n VTOYEFI -s 1 $PART2; then
echo 'success'
break
else
fi
part2_start_sector=$(expr $part1_end_sector + 1)
+
+ modsector=$(expr $part2_start_sector % 8)
+ if [ $modsector -gt 0 ]; then
+ vtdebug "modsector:$modsector need to be aligned with 4KB"
+ part1_end_sector=$(expr $part1_end_sector - $modsector)
+ part2_start_sector=$(expr $part1_end_sector + 1)
+ fi
+
part2_end_sector=$(expr $part2_start_sector + $VENTOY_SECTOR_NUM - 1)
export part2_start_sector
sync
- vtoygpt -f $DISK
+ vtoycli gpt -f $DISK
sync
udevadm trigger --name-match=$DISK >/dev/null 2>&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
echo 'success'
break