Change: If 'Multi-booting' has been selected, then the 'Manual Mode' will no longer offer to format the EFI partition.

Change: If a seperate Ext4 /Home partition is set to be re-used, then the 'Manual Mode' will skip the Ext4 partition formatting prompt.
Change: Code cleanup for efficiency (Functions {'revise' 'confirm_status' 'instl'} have been edited)
Remove: Code cleanup for efficiency (Function 'ask_homepart_form' has been removed)
Change: BTRFS > The subvolumes mounting options to be passed in the 'fstab' have been re-defined.
Change: A few prompts have been edited for aesthetic reasons.
This commit is contained in:
Jane Doe
2025-11-29 19:19:09 +02:00
parent 69e88a293d
commit e57161c8ad
+41 -149
View File
@@ -2,7 +2,7 @@
# Amelia Installer # Amelia Installer
# Source: https://gitlab.com/prism7/archery # Source: https://gitlab.com/prism7/archery
# Version: 1.1.0 # Version: 1.1.1
set -euo pipefail set -euo pipefail
################################################################################################### ###################################################################################################
@@ -281,7 +281,7 @@ keypress() {
NC " NC "
${bwhite}Press any key to continue${nc} ${bwhite}Press any key to continue${nc}
" "
@@ -639,7 +639,7 @@ Enter a number: "
3) 3)
until dsks_submn; do : ; done ;; until dsks_submn; do : ; done ;;
4) 4)
until instl; do : ; done ;; instl ;;
"") "")
sleep 0.2 sleep 0.2
RED " RED "
@@ -3472,7 +3472,7 @@ ${magenta}###${nc}------------------------------------${magenta}[ ${bwhite}Multi
YELLOW " YELLOW "
### ${nc}If ${bwhite}[y]es${nc} then:${cyan} ### If ${bwhite}[y]${nc}es ${yellow}then:${cyan}
>> ${nc}Your ${yellowl}EFI ${nc}System Partition (ESP) will stay ${yellowl}intact${nc}${cyan} >> ${nc}Your ${yellowl}EFI ${nc}System Partition (ESP) will stay ${yellowl}intact${nc}${cyan}
@@ -4812,7 +4812,7 @@ instl() {
until slct_shell; do : ; done until slct_shell; do : ; done
fi fi
if [[ -z "${kernelnmbr}" ]]; then if [[ -z "${kernelnmbr}" || "${revision}" == "y" ]]; then
local stage_prompt="Kernel, Secureboot Signing, Bootloader & ESP Mountpoint" local stage_prompt="Kernel, Secureboot Signing, Bootloader & ESP Mountpoint"
completion_err completion_err
until slct_krnl; do : ; done until slct_krnl; do : ; done
@@ -4821,40 +4821,40 @@ instl() {
until slct_espmnt; do : ; done until slct_espmnt; do : ; done
fi fi
if [[ -z "${fs}" ]]; then if [[ -z "${fs}" || "${revision}" == "y" ]]; then
local stage_prompt="Filesystem & Swap Setup" local stage_prompt="Filesystem & Swap Setup"
completion_err completion_err
until slct_fs; do : ; done until slct_fs; do : ; done
until slct_swap; do : ; done until slct_swap; do : ; done
fi fi
if [[ "${vendor}" != "Virtual Machine" && -z "${gfx_slct}" ]]; then if [[ "${vendor}" != "Virtual Machine" && -z "${gfx_slct}" ]] || [[ "${vendor}" != "Virtual Machine" && "${revision}" == "y" ]]; then
local stage_prompt="Graphics Setup" local stage_prompt="Graphics Setup"
completion_err completion_err
until dtct_gfx; do : ; done until dtct_gfx; do : ; done
fi fi
if [[ -z "${desktop}" ]]; then if [[ -z "${desktop}" || "${revision}" == "y" ]]; then
local stage_prompt="Desktop Setup" local stage_prompt="Desktop Setup"
completion_err completion_err
until dsktp_slct; do : ; done until dsktp_slct; do : ; done
fi fi
if [[ -z "${dev}" ]]; then if [[ -z "${dev}" || "${revision}" == "y" ]]; then
until base_devel; do : ; done until base_devel; do : ; done
fi fi
if [[ -z "${web_slct}" ]]; then if [[ -z "${web_slct}" || "${revision}" == "y" ]]; then
if [[ ! "${desktop}" =~ ^(11|12)$ ]]; then if [[ ! "${desktop}" =~ ^(11|12)$ ]]; then
until web_browser; do : ; done until web_browser; do : ; done
fi fi
fi fi
if [[ "${vendor}" != "Virtual Machine" ]]; then if [[ "${vendor}" != "Virtual Machine" ]]; then
if [[ -z "${printer}" ]]; then if [[ -z "${printer}" || "${revision}" == "y" ]]; then
if [[ ! "${desktop}" =~ ^(11|12)$ ]]; then if [[ ! "${desktop}" =~ ^(11|12)$ ]]; then
until print_scan; do : ; done until print_scan; do : ; done
fi fi
fi fi
if [[ -z "${efi_entr_del}" ]]; then if [[ -z "${efi_entr_del}" || "${revision}" == "y" ]]; then
local stage_prompt="EFI Boot Entries Deletion" local stage_prompt="EFI Boot Entries Deletion"
completion_err completion_err
until boot_entr; do : ; done until boot_entr; do : ; done
@@ -4895,6 +4895,7 @@ instl() {
elif [[ "${encrypt}" == "yes" ]]; then elif [[ "${encrypt}" == "yes" ]]; then
until sec_erase; do : ; done until sec_erase; do : ; done
until luks; do : ; done until luks; do : ; done
fi
until opt_pcmn; do : ; done until opt_pcmn; do : ; done
until pacstrap_system; do : ; done until pacstrap_system; do : ; done
if [[ "${swapmode}" == "2" ]]; then if [[ "${swapmode}" == "2" ]]; then
@@ -4905,7 +4906,6 @@ instl() {
fi fi
set_vars set_vars
chroot_conf chroot_conf
fi
} }
################################################################################################### ###################################################################################################
swappart() { swappart() {
@@ -4977,6 +4977,7 @@ Enter a Mode number: "
2) 2)
until manual_mode; do : ; done ;; until manual_mode; do : ; done ;;
"") "")
sleep 0.2
RED " RED "
------------------------------------------ ------------------------------------------
### ${nc}Please select a Mode to continue ${red}### ### ${nc}Please select a Mode to continue ${red}###
@@ -5105,24 +5106,24 @@ ${magenta}###${nc}----------------------------------------${magenta}[ ${bwhite}A
until mount_esp; do : ; done until mount_esp; do : ; done
fi fi
fi fi
sleep 0.2 sleep 0.2
#-------------------------------------------------------------------------------------------------- #--------------------------------------------------------------------------------------------------
if [[ "${xbootloader}" == "yes" ]]; then if [[ "${xbootloader}" == "yes" ]]; then
if mkfs.fat -F 32 -n XBOOTLDR "${xboot_dev}" > "${void}" 2> "${log}" ; then if mkfs.fat -F 32 -n XBOOTLDR "${xboot_dev}" > "${void}" 2> "${log}" ; then
mount --mkdir "${xboot_dev}" /mnt/boot > "${void}" 2> "${log}" || err_abort mount --mkdir "${xboot_dev}" /mnt/boot > "${void}" 2> "${log}" || err_abort
sleep 0.2
NC "
==> [${green}/XBOOTLDR OK${nc}]
"
else
umount_manual
until form_xboot; do : ; done
until mount_mnt; do : ; done
until mount_esp; do : ; done
until mount_xboot; do : ; done
fi
fi
sleep 0.2 sleep 0.2
NC "
==> [${green}/XBOOTLDR OK${nc}]
"
else
umount_manual
until form_xboot; do : ; done
until mount_mnt; do : ; done
until mount_esp; do : ; done
until mount_xboot; do : ; done
fi
fi
sleep 0.2
#-------------------------------------------------------------------------------------------------- #--------------------------------------------------------------------------------------------------
if [[ "${fs}" == "1" && -e "${home_dev}" && "${sep_home}" == "y" ]]; then if [[ "${fs}" == "1" && -e "${home_dev}" && "${sep_home}" == "y" ]]; then
if [[ "${smartpart}" == "y" ]]; then if [[ "${smartpart}" == "y" ]]; then
@@ -5160,9 +5161,6 @@ ${magenta}###${nc}----------------------------------------${magenta}[ ${bwhite}A
NC " NC "
==> [${green}Unformatted /Home Mounted OK${nc}] ==> [${green}Unformatted /Home Mounted OK${nc}]
" "
else
y_n
until ask_homepart_form; do : ; done
fi fi
fi fi
} }
@@ -5171,12 +5169,14 @@ manual_mode() {
volumes="$(fdisk -l | grep '^/dev' | cat --number)" volumes="$(fdisk -l | grep '^/dev' | cat --number)"
if [[ "${multibooting}" == "no" ]]; then
until form_esp; do : ; done until form_esp; do : ; done
fi
if [[ "${xbootloader}" == "yes" ]]; then if [[ "${xbootloader}" == "yes" ]]; then
until form_xboot; do : ; done until form_xboot; do : ; done
fi fi
until form_root; do : ; done until form_root; do : ; done
if [[ -e "${home_dev}" && "${sep_home}" == "y" ]]; then if [[ "${sep_home}" == "y" && "${hometype}" == "1" ]]; then
until form_home; do : ; done until form_home; do : ; done
fi fi
until mount_mnt; do : ; done until mount_mnt; do : ; done
@@ -5184,7 +5184,7 @@ manual_mode() {
if [[ "${xbootloader}" == "yes" ]]; then if [[ "${xbootloader}" == "yes" ]]; then
until mount_xboot; do : ; done until mount_xboot; do : ; done
fi fi
if [[ -e "${home_dev}" && "${sep_home}" == "y" ]]; then if [[ "${sep_home}" == "y" ]]; then
until mount_home; do : ; done until mount_home; do : ; done
fi fi
} }
@@ -5432,51 +5432,6 @@ Enter a name: "
done done
} }
################################################################################################### ###################################################################################################
ask_homepart_form() {
if [[ "${fs}" == "1" && -e "${home_dev}" && "${sep_home}" == "y" ]]; then
if [[ "${smartpart}" == "y" ]]; then
homeform="y"
elif [[ "${preset}" =~ ^(3|4)$ ]]; then
homeform="y"
elif [[ "${hometype}" == "1" ]]; then
homeform="y"
elif [[ "${hometype}" == "2" ]]; then
homeform="n"
fi
if [[ "${homeform}" == "y" ]]; then
if mkfs.ext4 -F -L Home "${home_dev}" > "${void}" 2> "${log}" ; then
tune2fs -O fast_commit "${home_dev}" > "${void}" 2> "${log}" || err_abort
mount --mkdir "${home_dev}" /mnt/home > "${void}" 2> "${log}" || err_abort
sleep 0.2
NC "
==> [${green}/Home OK${nc}]
"
else
umount_manual
until manual_part; do : ; done
until form_home; do : ; done
until mount_mnt; do : ; done
until mount_esp; do : ; done
if [[ "${xbootloader}" == "yes" ]]; then
until mount_xboot; do : ; done
fi
until mount_home; do : ; done
fi
elif [[ "${homeform}" == "n" ]]; then
mount --mkdir "${home_dev}" /mnt/home > "${void}" 2> "${log}" || err_abort
sleep 0.2
NC "
==> [${green}Unformatted /Home Mounted OK${nc}]
"
else
y_n
return 1
fi
fi
}
###################################################################################################
form_home() { form_home() {
sleep 0.2 sleep 0.2
@@ -5792,16 +5747,7 @@ ${magenta}###${nc}-------------------------------${magenta}[ ${bwhite}Confirm In
if [[ "${agree}" == "yes" ]]; then if [[ "${agree}" == "yes" ]]; then
ok ok
until opt_pcmn; do : ; done return 0
until pacstrap_system; do : ; done
if [[ "${swapmode}" == "2" ]]; then
until "${swaptype}"; do : ; done
fi
if [[ -n "${REGDOM}" ]]; then
until set_wireless_regdom; do : ; done
fi
set_vars
chroot_conf
elif [[ "${agree}" == "no" ]]; then elif [[ "${agree}" == "no" ]]; then
unmount unmount
until revise; do : ; done until revise; do : ; done
@@ -5813,66 +5759,12 @@ ${magenta}###${nc}-------------------------------${magenta}[ ${bwhite}Confirm In
################################################################################################### ###################################################################################################
revise() { revise() {
revision="y"
reset=(xbootloader="" desktop="" terminal="" custompkgs="" customservices="" cust_bootopts="" REGDOM="" autoroot="" autoxboot="" autohome="" autoswap="" lowlat="" nogsp="" sanity="" partok="" preset="" set_optm="" ask_param="" kill_watchdog="" genoptm="" desk_setup="" devel="" web="" web_pkg="" web_aur="" web_slct="" oomd="" irqbalance="" thermald="" rngd="" rtkit="" tlp="" CRYPTPASS="" CRYPTPASS2="" askoptm="" gptslct="" gptok="" gptabort="" nvdprop="" nowarning="" hometype="" homeform="" smartpart="" LuksParts="") reset=(xbootloader="" desktop="" terminal="" custompkgs="" customservices="" cust_bootopts="" REGDOM="" autoroot="" autoxboot="" autohome="" autoswap="" lowlat="" nogsp="" sanity="" partok="" preset="" set_optm="" ask_param="" kill_watchdog="" genoptm="" desk_setup="" devel="" web="" web_pkg="" web_aur="" web_slct="" oomd="" irqbalance="" thermald="" rngd="" rtkit="" tlp="" CRYPTPASS="" CRYPTPASS2="" askoptm="" gptslct="" gptok="" gptabort="" nvdprop="" nowarning="" hometype="" homeform="" smartpart="" LuksParts="")
export "${reset[@]}" export "${reset[@]}"
gfxpkgs=() gfxpkgs=()
instl
until slct_krnl; do : ; done
until ask_sign; do : ; done
until slct_bootldr; do : ; done
until slct_espmnt; do : ; done
until slct_fs; do : ; done
until slct_swap; do : ; done
if [[ "${vendor}" != "Virtual Machine" ]]; then
until dtct_gfx; do : ; done
fi
until dsktp_slct; do : ; done
until base_devel; do : ; done
if [[ ! "${desktop}" =~ ^(11|12)$ ]]; then
until web_browser; do : ; done
fi
if [[ "${vendor}" != "Virtual Machine" ]]; then
until print_scan; do : ; done
until boot_entr; do : ; done
fi
if [[ "${askoptm}" == "y" ]]; then
until cust_kern_param; do : ; done
until sys_watchdog; do : ; done
until gen_optm; do : ; done
if [[ "${vendor}" != "Virtual Machine" ]]; then
until ask_wireless_regdom; do : ; done
fi
until systemd_oomd; do : ; done
until irqbalance; do : ; done
until thermald; do : ; done
until rngd; do : ; done
until rtkit; do : ; done
if [[ "${vendor}" != "Virtual Machine" ]]; then
until tlp; do : ; done
fi
fi
until instl_dsk; do : ; done
until ask_crypt; do : ; done
if [[ "${swapmode}" == "1" ]]; then
until "${swaptype}"; do : ; done
fi
if [[ "${encrypt}" == "no" ]]; then
until set_mode; do : ; done
until confirm_status; do : ; done
elif [[ "${encrypt}" == "yes" ]]; then
until sec_erase; do : ; done
until luks; do : ; done
until opt_pcmn; do : ; done
until pacstrap_system; do : ; done
if [[ "${swapmode}" == "2" ]]; then
until "${swaptype}"; do : ; done
fi
if [[ -n "${REGDOM}" ]]; then
until set_wireless_regdom; do : ; done
fi
set_vars
chroot_conf
fi
} }
################################################################################################### ###################################################################################################
sec_erase() { sec_erase() {
@@ -6215,9 +6107,9 @@ pkg_validation() {
local stage_prompt="Arch Packages Validation" local stage_prompt="Arch Packages Validation"
sleep 0.2 sleep 0.2
YELLOWL " YELLOWL "
------------------------------------------- ------------------------------------------
### ${bwhite}Validating installation packages: ${yellowl}### ### ${bwhite}Validating Installation Packages ${yellowl}###
------------------------------------------- ------------------------------------------
" "
@@ -6358,7 +6250,7 @@ ${magenta}###${nc}-------------------------------------${magenta}[ ${bwhite}Pacs
local stage_prompt="Fstab" local stage_prompt="Fstab"
genfstab -t PARTUUID /mnt >> /mnt/etc/fstab 2> "${log}" || stage_fail genfstab -t PARTUUID /mnt >> /mnt/etc/fstab 2> "${log}" || stage_fail
arch-chroot /mnt <<-FSTAB_SBVL_MNT_OPTS > "${void}" 2>&1 2> "${log}" || stage_fail arch-chroot /mnt <<-FSTAB_SBVL_MNT_OPTS > "${void}" 2>&1 2> "${log}" || stage_fail
sed -i 's/rw,noatime,compress=zstd:3,discard=async,space_cache=v2/${sbvl_mnt_opts}/' /etc/fstab || exit sed -i 's/^rw.*/${sbvl_mnt_opts}/' /etc/fstab || exit
FSTAB_SBVL_MNT_OPTS FSTAB_SBVL_MNT_OPTS
ok ok
fi fi