X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/Ventoy.git/blobdiff_plain/ebaa4d954aa0b3d70f14b2fd6fec63df1599b8ce..12e8ae26ae543b518517243e13d5cf8b53f37f9b:/INSTALL/tool/VentoyWorker.sh diff --git a/INSTALL/tool/VentoyWorker.sh b/INSTALL/tool/VentoyWorker.sh index d353c45..7e276db 100644 --- a/INSTALL/tool/VentoyWorker.sh +++ b/INSTALL/tool/VentoyWorker.sh @@ -15,12 +15,12 @@ print_usage() { echo ' -r SIZE_MB preserve some space at the bottom of the disk (only for install)' echo ' -s/-S enable/disable secure boot support (default is disabled)' echo ' -g use GPT partition style, default is MBR (only for install)' - echo ' -L Label of the 1st exfat partition (default is ventoy)' + echo ' -L Label of the 1st exfat partition (default is Ventoy)' echo '' } -VTNEW_LABEL='ventoy' +VTNEW_LABEL='Ventoy' RESERVE_SIZE_MB=0 while [ -n "$1" ]; do if [ "$1" = "-i" ]; then @@ -75,8 +75,8 @@ fi if [ -e /sys/class/block/${DISK#/dev/}/start ]; then vterr "$DISK is a partition, please use the whole disk." echo "For example:" - vterr " sudo sh Ventoy2Disk.sh -i /dev/sdX1 <=== This is wrong" - vtinfo " sudo sh Ventoy2Disk.sh -i /dev/sdX <=== This is right" + vterr " sudo sh Ventoy2Disk.sh -i /dev/sdb1 <=== This is wrong" + vtinfo " sudo sh Ventoy2Disk.sh -i /dev/sdb <=== This is right" echo "" exit 1 fi @@ -90,15 +90,6 @@ if [ -n "$RESERVE_SPACE" -a "$MODE" = "install" ]; then fi fi -#check access -if dd if="$DISK" of=/dev/null bs=1 count=1 >/dev/null 2>&1; then - vtdebug "root permission check ok ..." -else - vterr "Failed to access $DISK, maybe root privilege is needed!" - echo '' - exit 1 -fi - vtdebug "MODE=$MODE FORCE=$FORCE RESERVE_SPACE=$RESERVE_SPACE RESERVE_SIZE_MB=$RESERVE_SIZE_MB" #check tools @@ -121,17 +112,11 @@ if [ "$MODE" = "list" ]; then echo "Disk Partition Style : MBR" fi - vtPART2=$(get_disk_part_name $DISK 2) - rm -rf ./tmpmntp2 && mkdir ./tmpmntp2 - mount $vtPART2 ./tmpmntp2 > /dev/null 2>&1 - - if [ -e ./tmpmntp2/EFI/BOOT/MokManager.efi ]; then + if check_disk_secure_boot $DISK; then echo "Secure Boot Support : YES" else echo "Secure Boot Support : NO" fi - umount ./tmpmntp2 > /dev/null 2>&1 - rm -rf ./tmpmntp2 else echo "Ventoy Version: NA" fi @@ -159,6 +144,16 @@ if swapon --help 2>&1 | grep -q '^ \-s,'; then fi fi +#check access +if dd if="$DISK" of=/dev/null bs=1 count=1 >/dev/null 2>&1; then + vtdebug "root permission check ok ..." +else + vterr "Failed to access $DISK, maybe root privilege is needed!" + echo '' + exit 1 +fi + + #check tmp_mnt directory if [ -d ./tmp_mnt ]; then vtdebug "There is a tmp_mnt directory, now delete it." @@ -331,8 +326,8 @@ if [ "$MODE" = "install" ]; then mkdir ./tmp_mnt vtdebug "mounting part2 ...." - for tt in 1 2 3; do - if mount ${PART2} ./tmp_mnt; then + for tt in 1 2 3 4 5; do + if mount ${PART2} ./tmp_mnt > /dev/null 2>&1; then vtdebug "mounting part2 success" break fi @@ -340,7 +335,7 @@ if [ "$MODE" = "install" ]; then mtpnt=$(grep "^${PART2}" /proc/mounts | awk '{print $2}') if [ -n "$mtpnt" ]; then umount $mtpnt >/dev/null 2>&1 - fi + fi sleep 2 done @@ -422,7 +417,8 @@ else dd status=none conv=fsync if=${DISK} skip=2040 bs=512 count=8 of=./rsvdata.bin if [ "$PART1_TYPE" = "EE" ]; then - vtdebug "This is GPT partition style ..." + vtdebug "This is GPT partition style ..." + echo -en '\x22' | dd status=none of=$DISK conv=fsync bs=1 count=1 seek=92 xzcat ./boot/core.img.xz | dd status=none conv=fsync of=$DISK bs=512 count=2014 seek=34 echo -en '\x23' | dd of=$DISK conv=fsync bs=1 count=1 seek=17908 status=none else @@ -450,13 +446,15 @@ else if [ "$SECUREBOOT" != "YES" ]; then mkdir ./tmp_mnt - vtdebug "mounting part2 ...." - for tt in 1 2 3; do - if mount ${PART2} ./tmp_mnt; then + vtdebug "mounting part2 ...." + for tt in 1 2 3 4 5; do + if mount ${PART2} ./tmp_mnt > /dev/null 2>&1; then vtdebug "mounting part2 success" break + else + vtdebug "mounting part2 failed, now wait and retry..." fi - sleep 2 + sleep 2 done rm -f ./tmp_mnt/EFI/BOOT/BOOTX64.EFI @@ -471,7 +469,7 @@ else for tt in 1 2 3; do - if umount ./tmp_mnt; then + if umount ./tmp_mnt > /dev/null 2>&1; then vtdebug "umount part2 success" rm -rf ./tmp_mnt break