mirror of
https://gitlab.com/prism7/archery.git
synced 2026-04-28 01:17:35 +02:00
Change: Adapt script to a recent systemd 'hostnamectl' change
Change: 'Disk Management' stage/'Partition Manager' stage: Edit prompts for better aesthetics Add: Greatly re-worked the 'GPT Partitioner' stage. Now this stage comes with an extra submenu of options for user convenience and enhanced info/aesthetics
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
# Amelia Installer
|
||||
# Source: https://gitlab.com/prism7/archery
|
||||
# Version: 9.5.2
|
||||
# Version: 9.6.0
|
||||
|
||||
set -euo pipefail
|
||||
###################################################################################################
|
||||
@@ -406,7 +406,6 @@ set_font() {
|
||||
###################################################################################################
|
||||
slct_font() {
|
||||
|
||||
clear
|
||||
NC "
|
||||
|
||||
|
||||
@@ -535,10 +534,10 @@ machine_dtct() {
|
||||
${magenta}###${nc}------------------------------------${magenta}[ ${bwhite}Machine Detection${nc} ${magenta}]${nc}------------------------------------${magenta}###
|
||||
"
|
||||
CPU="$(grep -E 'vendor_id' /proc/cpuinfo)"
|
||||
hardw_model="$(hostnamectl | grep -E 'Hardware Model:'| sed 's| Hardware Model: ||')"
|
||||
hardw_model_vend="$(hostnamectl | grep -E 'Hardware Model:'| sed 's| Hardware Model: ||' | awk "{print \$1}")"
|
||||
hardw_vendor="$(hostnamectl | grep -E 'Hardware Vendor' | awk "{print \$3}")"
|
||||
machine="$(hostnamectl | grep -E 'Chassis' | awk "{print \$2}")"
|
||||
hardw_model="$(hostnamectl | grep -E "Hardware Model:" | sed 's| Hardware Model: ||')"
|
||||
hardw_model_vend="$(hostnamectl | grep -E "Hardware Model:" | sed 's| Hardware Model: ||' | awk "{print \$1}")"
|
||||
hardw_vendor="$(hostnamectl | grep -E "Hardware Vendor" | awk "{print \$3}")"
|
||||
machine="$(hostnamectl | grep -Em 1 "Chassis" | awk "{print \$2}")"
|
||||
|
||||
if [[ "${hypervisor}" != "none" ]]; then
|
||||
vm
|
||||
@@ -3249,7 +3248,7 @@ ${magenta}###${nc}-------------------------------------${magenta}[ ${bwhite}Disk
|
||||
> Select a Submenu: "
|
||||
NC "
|
||||
|
||||
[1] Disk GPT Manager
|
||||
[1] GPT Manager
|
||||
|
||||
[2] Partition Manager
|
||||
|
||||
@@ -3266,7 +3265,7 @@ Enter a number: "
|
||||
1)
|
||||
until gpt_mngr; do : ; done ;;
|
||||
2)
|
||||
until disk_mngr; do : ; done ;;
|
||||
until part_mngr; do : ; done ;;
|
||||
"")
|
||||
until main_menu; do : ; done ;;
|
||||
*)
|
||||
@@ -3277,25 +3276,21 @@ Enter a number: "
|
||||
###################################################################################################
|
||||
gpt_mngr() {
|
||||
|
||||
local prompt="Disk GPT"
|
||||
local prompt="GPT Manager"
|
||||
sleep 0.2
|
||||
NC "
|
||||
|
||||
|
||||
${magenta}###${nc}------------------------------------${magenta}[ ${bwhite}Disk GPT Manager${nc} ${magenta}]${nc}------------------------------------${magenta}###
|
||||
${magenta}###${nc}---------------------------------------${magenta}[ ${bwhite}GPT Manager${nc} ${magenta}]${nc}---------------------------------------${magenta}###
|
||||
"
|
||||
gpt_dsk_nmbr=" "
|
||||
|
||||
while [[ -n "${gpt_dsk_nmbr}" ]]; do
|
||||
|
||||
if [[ -z "${instl_drive}" ]]; then
|
||||
YELLOW "
|
||||
|
||||
> Select a disk to manage its GPT:
|
||||
|
||||
|
||||
|
||||
### Select disk and:
|
||||
|
||||
### Type ${nc}'?'${yellow} for help, ${nc}'x'${yellow} for extra functionality or ${nc}'q'${yellow} to quit "
|
||||
> Select a disk to manage its GPT: "
|
||||
NC "
|
||||
|
||||
|
||||
@@ -3310,7 +3305,37 @@ Enter a disk number ${bwhite}(empty to skip)${blue}: "
|
||||
|
||||
if [[ -n "${gpt_dsk_nmbr}" ]]; then
|
||||
gptdrive="$(echo "${disks}" | awk "\$1 == ${gpt_dsk_nmbr} {print \$2}")"
|
||||
else
|
||||
skip
|
||||
ok
|
||||
if [[ "${install}" == "yes" ]]; then
|
||||
until instl_dsk; do : ; done
|
||||
else
|
||||
until dsks_submn; do : ; done
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -n "${instl_drive}" ]]; then
|
||||
gptdrive="${instl_drive}"
|
||||
fi
|
||||
|
||||
if [[ -e "${gptdrive}" ]]; then
|
||||
parttable="$(fdisk -l "${gptdrive}" 2> ${void} | grep '^Disklabel type' | awk "{print \$3}")"
|
||||
if [[ "${parttable}" == "gpt" ]]; then
|
||||
sleep 0.2
|
||||
NC "
|
||||
---------------------
|
||||
### ${green}Disk GPT OK ${nc}###
|
||||
---------------------"
|
||||
elif [[ "${parttable}" != "gpt" && -z "${install}" ]]; then
|
||||
sleep 0.2
|
||||
RED "
|
||||
---------------------------------------
|
||||
### ${yellow}No GPT found on selected disk ${red}###
|
||||
---------------------------------------"
|
||||
fi
|
||||
if [[ "${run_as}" != "root" ]]; then
|
||||
sleep 0.2
|
||||
RED "
|
||||
@@ -3320,28 +3345,92 @@ Enter a disk number ${bwhite}(empty to skip)${blue}: "
|
||||
reload
|
||||
until dsks_submn; do : ; done
|
||||
fi
|
||||
|
||||
YELLOW "
|
||||
|
||||
> Make a Selection: "
|
||||
NC "
|
||||
______________________________________________
|
||||
"
|
||||
gdisk "${gptdrive}"
|
||||
|
||||
[1] Create new GPT table on selected disk [Destroy any existing GPT/MBR structures]
|
||||
|
||||
[2] Use the program interactively [Expert Mode]
|
||||
|
||||
[ ] Return to Previous Menu "
|
||||
BLUE "
|
||||
|
||||
|
||||
Enter a number: "
|
||||
read -r -p "
|
||||
==> " gptslct
|
||||
echo
|
||||
|
||||
if [[ "${gptslct}" == "1" ]]; then
|
||||
sgdisk -Z "${gptdrive}" > ${void} &&
|
||||
sgdisk -o "${gptdrive}" > ${void} &&
|
||||
parttable="$(fdisk -l "${gptdrive}" 2> ${void} | grep '^Disklabel type' | awk "{print \$3}")"
|
||||
if [[ "${parttable}" == "gpt" ]]; then
|
||||
gptok="yes"
|
||||
sleep 0.2
|
||||
NC "
|
||||
|
||||
==> [${green}${gptdrive} OK${nc}]
|
||||
==> [${green}GPT Entries OK${nc}]
|
||||
"
|
||||
else
|
||||
gptok="no"
|
||||
sleep 0.2
|
||||
RED "
|
||||
---------------------------------------
|
||||
### ${yellow}No GPT found on selected disk ${red}###
|
||||
---------------------------------------"
|
||||
reload
|
||||
return 1
|
||||
fi
|
||||
elif [[ "${gptslct}" == "2" ]]; then
|
||||
YELLOW "
|
||||
|
||||
### Type ${nc}'?'${yellow} for help, ${nc}'x'${yellow} for extra functionality or ${nc}'q'${yellow} to quit "
|
||||
NC "
|
||||
|
||||
|
||||
______________________________________________
|
||||
"
|
||||
gdisk "${gptdrive}"
|
||||
parttable="$(fdisk -l "${gptdrive}" 2> ${void} | grep '^Disklabel type' | awk "{print \$3}")"
|
||||
if [[ "${parttable}" == "gpt" ]]; then
|
||||
gptok="yes"
|
||||
sleep 0.2
|
||||
NC "
|
||||
|
||||
==> [${green}GPT Entries OK${nc}]
|
||||
"
|
||||
else
|
||||
gptok="no"
|
||||
sleep 0.2
|
||||
RED "
|
||||
|
||||
|
||||
---------------------------------------
|
||||
### ${yellow}No GPT found on selected disk ${red}###
|
||||
---------------------------------------"
|
||||
reload
|
||||
return 1
|
||||
fi
|
||||
elif [[ -z "${gptslct}" ]]; then
|
||||
if [[ -n "${instl_drive}" ]]; then
|
||||
skip
|
||||
ok
|
||||
until instl_dsk; do : ; done
|
||||
elif [[ -z "${instl_drive}" ]]; then
|
||||
reload
|
||||
return 1
|
||||
fi
|
||||
else
|
||||
invalid
|
||||
return 1
|
||||
fi
|
||||
else
|
||||
skip
|
||||
ok
|
||||
|
||||
if [[ "${install}" == "yes" ]]; then
|
||||
until instl_dsk; do : ; done
|
||||
else
|
||||
until dsks_submn; do : ; done
|
||||
fi
|
||||
invalid
|
||||
return 1
|
||||
fi
|
||||
done
|
||||
}
|
||||
@@ -3352,7 +3441,7 @@ ask_multibooting() {
|
||||
sleep 0.2
|
||||
NC "
|
||||
|
||||
${magenta}###${nc}-------------------------------------${magenta}[ ${bwhite}MultiBoot Status${nc} ${magenta}]${nc}-------------------------------------${magenta}###
|
||||
${magenta}###${nc}------------------------------------${magenta}[ ${bwhite}MultiBoot Status${nc} ${magenta}]${nc}------------------------------------${magenta}###
|
||||
"
|
||||
YELLOW "
|
||||
|
||||
@@ -3401,7 +3490,7 @@ Enter [y/n]: "
|
||||
ok
|
||||
}
|
||||
###################################################################################################
|
||||
disk_mngr() {
|
||||
part_mngr() {
|
||||
|
||||
if [[ "${multibooting}" == "y" ]]; then
|
||||
until manual_part; do : ; done
|
||||
@@ -3646,7 +3735,7 @@ set_partsize() {
|
||||
### Current ${nc}Root${yellow} partition's size is ${nc}[${rootsize} GiB]${yellow}
|
||||
|
||||
|
||||
> Adjust Root Partition's size (by setting a custom ${nc}% ${yellow}value) ? "
|
||||
> ${nc}Adjust ${yellow}Root Partition's size (by setting a custom ${nc}% ${yellow}value) ? "
|
||||
BLUE "
|
||||
|
||||
|
||||
@@ -3703,57 +3792,41 @@ partitioner() {
|
||||
local prompt="Disk ${sgdrive} Preset-Partitioned"
|
||||
fi
|
||||
|
||||
if [[ "${preset}" == "1" ]]; then
|
||||
wipefs -af "${sgdrive}" > "${void}" 2> "${log}" || stage_fail
|
||||
if [[ "${gptok}" != "yes" ]]; then
|
||||
sgdisk -Z "${sgdrive}" > "${void}" 2> "${log}" || stage_fail
|
||||
sgdisk -o "${sgdrive}" > "${void}" 2> "${log}" || stage_fail
|
||||
gptok="yes"
|
||||
fi
|
||||
|
||||
if [[ "${preset}" == "1" ]]; then
|
||||
sgdisk -I -n1:0:+512M -t1:ef00 -c1:ESP "${sgdrive}" > "${void}" 2> "${log}" || stage_fail
|
||||
sgdisk -I -n2:0:0 -t2:8304 -c2:ROOT "${sgdrive}" > "${void}" 2> "${log}" || stage_fail
|
||||
partprobe -s "${sgdrive}" > "${void}" 2> "${log}" || stage_fail
|
||||
if [[ "${install}" == "yes" ]]; then
|
||||
until sanity_check; do : ; done
|
||||
else
|
||||
ok
|
||||
fi
|
||||
elif [[ "${preset}" == "2" ]]; then
|
||||
until set_swapsize; do : ; done
|
||||
wipefs -af "${sgdrive}" > "${void}" 2> "${log}" || stage_fail
|
||||
sgdisk -o "${sgdrive}" > "${void}" 2> "${log}" || stage_fail
|
||||
sgdisk -I -n1:0:+512M -t1:ef00 -c1:ESP "${sgdrive}" > "${void}" 2> "${log}" || stage_fail
|
||||
sgdisk -I -n2:0:+"${swapsize}"G -t2:8200 -c2:SWAP "${sgdrive}" > "${void}" 2> "${log}" || stage_fail
|
||||
sgdisk -I -n3:0:0 -t3:8304 -c3:ROOT "${sgdrive}" > "${void}" 2> "${log}" || stage_fail
|
||||
partprobe -s "${sgdrive}" > "${void}" 2> "${log}" || stage_fail
|
||||
if [[ "${install}" == "yes" ]]; then
|
||||
until sanity_check; do : ; done
|
||||
else
|
||||
ok
|
||||
fi
|
||||
elif [[ "${preset}" == "3" ]]; then
|
||||
wipefs -af "${sgdrive}" > "${void}" 2> "${log}" || stage_fail
|
||||
sgdisk -o "${sgdrive}" > "${void}" 2> "${log}" || stage_fail
|
||||
sgdisk -I -n1:0:+512M -t1:ef00 -c1:ESP "${sgdrive}" > "${void}" 2> "${log}" || stage_fail
|
||||
sgdisk -I -n2:0:+"${rootsize}"G -t2:8304 -c2:ROOT "${sgdrive}" > "${void}" 2> "${log}" || stage_fail
|
||||
sgdisk -I -n3:0:0 -t3:8302 -c3:HOME "${sgdrive}" > "${void}" 2> "${log}" || stage_fail
|
||||
partprobe -s "${sgdrive}" > "${void}" 2> "${log}" || stage_fail
|
||||
if [[ "${install}" == "yes" ]]; then
|
||||
until sanity_check; do : ; done
|
||||
else
|
||||
ok
|
||||
fi
|
||||
elif [[ "${preset}" == "4" ]]; then
|
||||
wipefs -af "${sgdrive}" > "${void}" 2> "${log}" || stage_fail
|
||||
until set_swapsize; do : ; done
|
||||
sgdisk -o "${sgdrive}" > "${void}" 2> "${log}" || stage_fail
|
||||
sgdisk -I -n1:0:+512M -t1:ef00 -c1:ESP "${sgdrive}" > "${void}" 2> "${log}" || stage_fail
|
||||
sgdisk -I -n2:0:+"${swapsize}"G -t2:8200 -c2:SWAP "${sgdrive}" > "${void}" 2> "${log}" || stage_fail
|
||||
sgdisk -I -n3:0:+"${rootsize}"G -t3:8304 -c3:ROOT "${sgdrive}" > "${void}" 2> "${log}" || stage_fail
|
||||
sgdisk -I -n4:0:0 -t4:8302 -c4:HOME "${sgdrive}" > "${void}" 2> "${log}" || stage_fail
|
||||
partprobe -s "${sgdrive}" > "${void}" 2> "${log}" || stage_fail
|
||||
fi
|
||||
if [[ "${install}" == "yes" ]]; then
|
||||
until sanity_check; do : ; done
|
||||
else
|
||||
ok
|
||||
fi
|
||||
fi
|
||||
}
|
||||
###################################################################################################
|
||||
manual_part() {
|
||||
@@ -5787,7 +5860,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="")
|
||||
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="")
|
||||
export "${reset[@]}"
|
||||
gfxpkgs=()
|
||||
|
||||
@@ -7420,7 +7493,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="")
|
||||
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="")
|
||||
export "${vars[@]}"
|
||||
sleep 0.2
|
||||
CYANBG "************************************************************************************************* "
|
||||
|
||||
Reference in New Issue
Block a user