fi
#check swap partition
-if swapon --help 2>&1 | grep -q '^ \-s,'; then
+if swapon --help 2>&1 | grep -q '^ -s,'; then
if swapon -s | grep -q "^${DISK}[0-9]"; then
vterr "$DISK is used as swap, please swapoff it first!"
exit 1
fi
else
if parted -v > /dev/null 2>&1; then
- PARTTOOL='parted'
+ PARTTOOL='parted'
elif fdisk -v >/dev/null 2>&1; then
- PARTTOOL='fdisk'
+ PARTTOOL='fdisk'
else
vterr "Both parted and fdisk are not found in the system, Ventoy can't create new partitions."
exit 1
fi
fi
+
+ if [ "$PARTTOOL" = "parted" ]; then
+ if parted -s $DISK p 2>&1 | grep -i -q 'sector size.*4096.*4096'; then
+ vterr "Currently Ventoy does not support 4K native device."
+ exit 1
+ fi
+ else
+ if fdisk -l $DISK | grep -i -q 'sector size.*4096.*4096'; then
+ vterr "Currently Ventoy does not support 4K native device."
+ exit 1
+ fi
+ fi
+
version=$(get_disk_ventoy_version $DISK)
if [ $? -eq 0 ]; then
PART1_BLKID=$(blkid $PART1)
blkid $PART1
- if echo $PART1_BLKID | egrep -q -i 'TYPE=ntfs|TYPE=.ntfs'; then
+ if echo $PART1_BLKID | grep -E -q -i 'TYPE=ntfs|TYPE=.ntfs'; then
echo "Partition 1 contains NTFS filesystem"
which ntfsresize
echo "###[FAIL] ntfsresize failed."
exit 1
fi
- elif echo $PART1_BLKID | egrep -q -i 'TYPE=ext[2-4]|TYPE=.ext[2-4]'; then
+ elif echo $PART1_BLKID | grep -E -q -i 'TYPE=ext[2-4]|TYPE=.ext[2-4]'; then
echo "Partition 1 contains EXT filesystem"
which resize2fs
vtoycli partresize -s $DISK $part2_start
fi
+
+ if [ "$PART1_TYPE" = "EE" ]; then
+ vtinfo "update esp partition attribute"
+ vtoycli gpt -f $DISK
+ sync
+ fi
+
+
echo ""
vtinfo "Update Ventoy on $DISK successfully finished."
echo ""