diff --git a/Amelia.sh b/Amelia.sh index 54ab829..bbabffa 100644 --- a/Amelia.sh +++ b/Amelia.sh @@ -2,7 +2,7 @@ # Amelia Installer # Source: https://gitlab.com/prism7/archery -# Version: 9.6.0 +# Version: 9.7.0 set -euo pipefail ################################################################################################### @@ -3310,10 +3310,11 @@ Enter a disk number ${bwhite}(empty to skip)${blue}: " ok if [[ "${install}" == "yes" ]]; then until instl_dsk; do : ; done + return 0 else until dsks_submn; do : ; done + return 0 fi - return 0 fi fi @@ -3351,9 +3352,9 @@ Enter a disk number ${bwhite}(empty to skip)${blue}: " > Make a Selection: " NC " - [1] Create new GPT table on selected disk [Destroy any existing GPT/MBR structures] + [1] Create new GPT on selected disk [Destroy any existing GPT/MBR structures] - [2] Use the program interactively [Expert Mode] + [2] Use the 'gdisk' program interactively [Expert Mode] [ ] Return to Previous Menu " BLUE " @@ -3373,8 +3374,15 @@ Enter a number: " sleep 0.2 NC " -==> [${green}GPT Entries OK${nc}] - " +==> [${green}GPT OK${nc}] " + + if [[ "${install}" == "yes" ]]; then + until instl_dsk; do : ; done + return 0 + else + until dsks_submn; do : ; done + return 0 + fi else gptok="no" sleep 0.2 @@ -3401,8 +3409,15 @@ ______________________________________________ sleep 0.2 NC " -==> [${green}GPT Entries OK${nc}] - " +==> [${green}GPT OK${nc}] " + + if [[ "${install}" == "yes" ]]; then + until instl_dsk; do : ; done + return 0 + else + until dsks_submn; do : ; done + return 0 + fi else gptok="no" sleep 0.2 @@ -3417,9 +3432,12 @@ ______________________________________________ fi elif [[ -z "${gptslct}" ]]; then if [[ -n "${instl_drive}" ]]; then + gptabort="yes" skip ok + line2 until instl_dsk; do : ; done + return 0 elif [[ -z "${instl_drive}" ]]; then reload return 1 @@ -3545,33 +3563,28 @@ auto_part() { ${magenta}###${nc}---------------------------------${magenta}[ ${bwhite}Automatic Partitioning${nc} ${magenta}]${nc}---------------------------------${magenta}### " + if [[ -e "${instl_drive}" ]]; then sleep 0.2 line2 REDBG " ------------------------------------------------------------ " REDBG " [!] WARNING: All data on selected disk will be destroyed [!] " REDBG " ------------------------------------------------------------ " line2 - if [[ -e "${instl_drive}" ]]; then sgdsk_nmbr="${instl_dsk_nmbr}" sgdrive="$(echo "${disks}" | awk "\$1 == ${sgdsk_nmbr} {print \$2}")" - if [[ -e "${sgdrive}" ]]; then - capacity="$(fdisk -l "${sgdrive}" | grep -E 'bytes' | grep -E 'Disk' | awk "{print \$5}")" - cap_gib="$((capacity/1024000000))" - rootsize="$((capacity*25/100/1024000000))" - if [[ "${run_as}" != "root" ]]; then - sleep 0.2 - RED " + capacity="$(fdisk -l "${sgdrive}" | grep -E 'bytes' | grep -E 'Disk' | awk "{print \$5}")" + cap_gib="$((capacity/1024000000))" + rootsize="$((capacity*25/100/1024000000))" + if [[ "${run_as}" != "root" ]]; then + sleep 0.2 + RED " ----------------------------------- ### ${yellow}Root Privileges Missing.. ${red}### -----------------------------------" - reload - until dsks_submn; do : ; done - fi - else - invalid - return 1 + reload + until dsks_submn; do : ; done + return 0 fi - sleep 0.2 NC " ----------------------------------------------------------- @@ -3589,11 +3602,13 @@ ${magenta}###${nc}---------------------------------${magenta}[ ${bwhite}Automati until smart_presets; do : ; done until set_partsize; do : ; done until partitioner; do : ; done + return 0 elif [[ "${smartpart}" == "n" ]]; then alternatives until manual_presets; do : ; done until set_partsize; do : ; done until partitioner; do : ; done + return 0 else y_n return 1 @@ -3627,22 +3642,26 @@ Enter a disk number ${bwhite}(empty to skip)${blue}: " -----------------------------------" reload until dsks_submn; do : ; done + return 0 fi until manual_presets; do : ; done until set_partsize; do : ; done until partitioner; do : ; done + return 0 else invalid return 1 fi else skip - reload + local prompt="Partition Manager" + ok fi fi if [[ -z "${sanity}" ]]; then until dsks_submn; do : ; done + return 0 fi } ################################################################################################### @@ -3709,11 +3728,14 @@ Enter a Preset number ${bwhite}(empty to skip)${blue}: " if [[ "${preset}" =~ ^(1|2|3|4)$ ]]; then presetpart="y" + return 0 elif [[ -z "${preset}" && "${partok}" == "n" ]]; then alternatives manual_part + return 0 elif [[ -z "${preset}" ]]; then skip + return 0 else invalid return 1 @@ -3784,6 +3806,13 @@ partitioner() { if [[ "${partok}" == "y" ]]; then return 0 + elif [[ -z "${preset}" && "${install}" == "yes" ]]; then + until sanity_check; do : ; done + return 0 + elif [[ -z "${preset}" ]]; then + local prompt="Partition Manager" + ok + return 0 fi if [[ "${smartpart}" == "y" ]]; then @@ -3825,7 +3854,9 @@ partitioner() { if [[ "${install}" == "yes" ]]; then until sanity_check; do : ; done else - ok + if [[ -n "${preset}" ]]; then + ok + fi fi } ################################################################################################### @@ -3890,6 +3921,8 @@ Enter a disk number ${bwhite}(empty to skip)${blue}: " fi else skip + local prompt="Partition Manager" + ok if [[ -z "${sanity}" ]]; then until dsks_submn; do : ; done @@ -3902,6 +3935,7 @@ Enter a disk number ${bwhite}(empty to skip)${blue}: " ################################################################################################### instl_dsk() { + if [[ ! -e "${instl_drive}" ]]; then sleep 0.2 NC " @@ -3921,6 +3955,7 @@ Enter a disk number: " read -r -p " ==> " instl_dsk_nmbr echo + fi if [[ -n "${instl_dsk_nmbr}" ]]; then instl_drive="$(echo "${disks}" | awk "\$1 == ${instl_dsk_nmbr} {print \$2}")" @@ -3943,7 +3978,16 @@ Enter a disk number: " sbvl_mnt_opts="rw,compress=zstd" fi parttable="$(fdisk -l "${instl_drive}" | grep '^Disklabel type' | awk "{print \$3}")" - if [[ "${parttable}" != "gpt" ]]; then + if [[ "${parttable}" != "gpt" && -n "${gptabort}" ]]; then + sleep 0.2 + RED " + --------------------------------------- + ### ${yellow}Please create GPT to continue ${red}### + ---------------------------------------" + reload + until gpt_mngr; do : ; done + return 0 + elif [[ "${parttable}" != "gpt" ]]; then sleep 0.2 RED " --------------------------------------- @@ -3953,6 +3997,7 @@ Enter a disk number: " until gpt_mngr; do : ; done return 0 fi + if [[ -z "${multibooting}" ]]; then until ask_multibooting; do : ; done fi @@ -5860,7 +5905,7 @@ ${magenta}###${nc}-------------------------------${magenta}[ ${bwhite}Confirm In ################################################################################################### revise() { - reset=(xbootloader="" gfxconf="" vendor_slct="" vendor="" desktop="" terminal="" custompkgs="" customservices="" cust_bootopts="" REGDOM="" autoroot="" autoxboot="" autohome="" autoswap="" vendors="" lowlat="" nogsp="" sanity="" smartpart="" partok="" preset="" presetpart="" set_optm="" ask_param="" kill_watchdog="" genoptm="" desk_setup="" devel="" web="" web_pkg="" web_aur="" web_slct="" set_optm_slct="" oomd="" irqbalance="" thermald="" rngd="" rtkit="" tlp="" CRYPTPASS="" CRYPTPASS2="" askoptm="" gptslct="" gptok="") + reset=(xbootloader="" gfxconf="" vendor_slct="" vendor="" desktop="" terminal="" custompkgs="" customservices="" cust_bootopts="" REGDOM="" autoroot="" autoxboot="" autohome="" autoswap="" vendors="" lowlat="" nogsp="" sanity="" smartpart="" partok="" preset="" presetpart="" set_optm="" ask_param="" kill_watchdog="" genoptm="" desk_setup="" devel="" web="" web_pkg="" web_aur="" web_slct="" set_optm_slct="" oomd="" irqbalance="" thermald="" rngd="" rtkit="" tlp="" CRYPTPASS="" CRYPTPASS2="" askoptm="" gptslct="" gptok="" gptabort="") export "${reset[@]}" gfxpkgs=() @@ -7493,7 +7538,7 @@ CUSTOMSERV log="Amelia_log.txt" disks="$(lsblk --nodeps --paths --noheadings --output=name,size,model | cat --number)" trg="" - vars=(LOCALESET="" SETLOCALE="" lcl_slct="" USERNAME="" kernelnmbr="" fs="" gfxcount="" gfxcard="" intelcount="" intelcards="" nvidiacount="" nvidiacards="" amdcount="" amdcards="" gfxconf="" gfx_conf="" gfx_setup="" vendor="" vendor1="" vendor2="" vendor3="" vendor_slct="" desktop="" terminal="" efi_entr_del="" sanity="" install="" bootldr_pkgs="" devel="" REGDOM="" gfx_bootopts="" btrfs_bootopts="" trim="" swapmode="" homecrypt="" greeter="" greeternmbr="" cust_bootopts="" vmpkgs="" vm_services="" perf_stream="" displaymanager="" wireless_reg="" bitness="" bootloader="" gfx_slct="" espsize="" autoroot="" autoesp="" autoxboot="" autohome="" autoswap="" rootprt="" espprt="" xbootprt="" homeprt="" swapprt="" partok="" instl_drive="" sgdsk_nmbr="" part_mode="" preset="" capacity="" cap_gib="" rootsize="" sgdrive="" cgdrive="" smartpart="" presetpart="" prcnt="" roottype="" stage_prompt="" zram="" zram_bootopts="" xbootloader="" multibooting="" hypervisor="" mkinitcpio_mods="" mkinitcpio_bins="" uki="" ukify="" cng_espmnt="" sep_home="" encr_swap_bootopts="" uefimode="" luks_encrypt="" nrg_plc="" multilib="" nvname="" nogsp="" luks_root="" luks_swap="" luks_home="" installation="" kill_watchdog="" oomd="" setrescue="" lowlat="" vendors="" dev="" web="" web_pkg="" web_aur="" web_slct="" printer="" print_pkgs="" shellnmbr="" shell="" shellname="" shellname2="" shell_pkgs="" genoptm="" set_optm="" ask_param="" desk_setup="" set_optm_slct="" irqbalance="" thermald="" rngd="" rtkit="" tlp="" CRYPTPASS="" CRYPTPASS2="" askoptm="" gptslct="" gptok="") + vars=(LOCALESET="" SETLOCALE="" lcl_slct="" USERNAME="" kernelnmbr="" fs="" gfxcount="" gfxcard="" intelcount="" intelcards="" nvidiacount="" nvidiacards="" amdcount="" amdcards="" gfxconf="" gfx_conf="" gfx_setup="" vendor="" vendor1="" vendor2="" vendor3="" vendor_slct="" desktop="" terminal="" efi_entr_del="" sanity="" install="" bootldr_pkgs="" devel="" REGDOM="" gfx_bootopts="" btrfs_bootopts="" trim="" swapmode="" homecrypt="" greeter="" greeternmbr="" cust_bootopts="" vmpkgs="" vm_services="" perf_stream="" displaymanager="" wireless_reg="" bitness="" bootloader="" gfx_slct="" espsize="" autoroot="" autoesp="" autoxboot="" autohome="" autoswap="" rootprt="" espprt="" xbootprt="" homeprt="" swapprt="" partok="" instl_drive="" sgdsk_nmbr="" part_mode="" preset="" capacity="" cap_gib="" rootsize="" sgdrive="" cgdrive="" smartpart="" presetpart="" prcnt="" roottype="" stage_prompt="" zram="" zram_bootopts="" xbootloader="" multibooting="" hypervisor="" mkinitcpio_mods="" mkinitcpio_bins="" uki="" ukify="" cng_espmnt="" sep_home="" encr_swap_bootopts="" uefimode="" luks_encrypt="" nrg_plc="" multilib="" nvname="" nogsp="" luks_root="" luks_swap="" luks_home="" installation="" kill_watchdog="" oomd="" setrescue="" lowlat="" vendors="" dev="" web="" web_pkg="" web_aur="" web_slct="" printer="" print_pkgs="" shellnmbr="" shell="" shellname="" shellname2="" shell_pkgs="" genoptm="" set_optm="" ask_param="" desk_setup="" set_optm_slct="" irqbalance="" thermald="" rngd="" rtkit="" tlp="" CRYPTPASS="" CRYPTPASS2="" askoptm="" gptslct="" gptok="" gptabort="") export "${vars[@]}" sleep 0.2 CYANBG "************************************************************************************************* "