X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/Ventoy.git/blobdiff_plain/85d1910722e042a2e4a6c3b7c97b92159eb584c5..HEAD:/INSTALL/tool/VentoyWorker.sh diff --git a/INSTALL/tool/VentoyWorker.sh b/INSTALL/tool/VentoyWorker.sh index c148f8c..7844b92 100644 --- a/INSTALL/tool/VentoyWorker.sh +++ b/INSTALL/tool/VentoyWorker.sh @@ -143,7 +143,7 @@ if grep "$DISK" /proc/mounts; then 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 @@ -185,14 +185,27 @@ if [ "$MODE" = "install" -a -z "$NONDESTRUCTIVE" ]; then 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 @@ -434,7 +447,7 @@ elif [ "$MODE" = "install" -a -n "$NONDESTRUCTIVE" ]; 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 @@ -452,7 +465,7 @@ elif [ "$MODE" = "install" -a -n "$NONDESTRUCTIVE" ]; then 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 @@ -613,6 +626,14 @@ else 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 ""