From f60955831c1d9fa9d6ca6ae25770dba32ece978a Mon Sep 17 00:00:00 2001 From: Jane Doe Date: Fri, 27 Dec 2024 00:19:13 +0000 Subject: [PATCH] Add: If the '/Root' partition is smaller than 8 Gb, the installer will now issue a warning against installation failure. Change: The list(s) of packages to be pacstrapped/installed in the system, now derives from a versatile array, instead of the 'hard-coded' variables previously used. This is valid for all 'Vanilla' setups & the 'Custom Arch Linux' setup. Fix: A 'secboot_sign' function (Secure-Boot Signing stage) issue that was causing failure to securely sign certain ukis, has now been resolved. Change: Code re-arrangement in the 'pacstrap_system' function (Pacstrap System stage). --- Amelia.sh | 99 ++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 69 insertions(+), 30 deletions(-) diff --git a/Amelia.sh b/Amelia.sh index f87b4d5..74de98b 100644 --- a/Amelia.sh +++ b/Amelia.sh @@ -2,7 +2,7 @@ # Amelia Installer # https://gitlab.com/prism7/archery -# Version: 8.1.0 +# Version: 8.2.0 set -euo pipefail ################################################################################################### @@ -3245,7 +3245,31 @@ ${multi_swap} #-------------------------------------------------------------------------------------------------- if [[ -e "${root_dev}" ]]; then - rootprt="ok" + rootpartsize="$(lsblk -dno SIZE --bytes "${root_dev}")" + if [[ "${rootpartsize}" -ge "8589934592" ]]; then + rootprt="ok" + else + rootprt="ok" + sleep 0.2 + RED " + ----------------------------------------------- + ### ${yellow}WARNING: /Root's size is not adequate ${red}### + -----------------------------------------------" + sleep 0.2 + RED " + ------------------------------------------------------------------------ + ### ${yellow}Depending on the size of your setup, installation might fail ! ${red}### + ------------------------------------------------------------------------" + NC " + + + + ${bwhite}Press any key to continue${nc} + + + " + read -r -s -n 1 + fi if [[ "${autoroot}" == "y" ]]; then if [[ "${presetpart}" == "y" || "${smartpart}" == "y" ]]; then sleep 0.2 @@ -5217,8 +5241,8 @@ Enter a number: " ################################################################################################### pacstrap_system() { - local prompt="Pacstrap System" basepkgs=(base efibootmgr nano pkgstats sudo vim "${fstools}" "${kernel}" "${microcode}") + local prompt="Pacstrap System" sleep 0.2 NC " @@ -5235,38 +5259,31 @@ ${magenta}###${nc}-------------------------------------${magenta}[ ${bwhite}Pacs fi fi - if [[ -n "${bootldr_pkgs}" ]]; then - basepkgs+=("${bootldr_pkgs}") - fi - if [[ "${vendor}" == "Virtual Machine" ]]; then basepkgs+=("${vmpkgs}") else - basepkgs+=("linux-firmware") + basepkgs+=(linux-firmware) fi - - if [[ "${vendor}" == "Nvidia" ]]; then - basepkgs+=("${kernel}-headers") + if [[ -n "${bootldr_pkgs}" ]]; then + basepkgs+=("${bootldr_pkgs}") fi - - if [[ -n "${vgapkgs}" ]]; then - basepkgs+=("${vgapkgs}") + if [[ -n "${ukify}" ]]; then + basepkgs+=("${ukify}") fi - - if [[ -n "${wireless_reg}" ]]; then - basepkgs+=("${wireless_reg}") - fi - - if [[ -n "${devel}" ]]; then - basepkgs+=("${devel}") - fi - if [[ -n "${zram}" ]]; then basepkgs+=("${zram}") fi - - if [[ -n "${ukify}" ]]; then - basepkgs+=("${ukify}") + if [[ -n "${vgapkgs}" ]]; then + basepkgs+=("${vgapkgs}") + fi + if [[ "${vendor}" == "Nvidia" ]]; then + basepkgs+=("${kernel}-headers") + fi + if [[ -n "${devel}" ]]; then + basepkgs+=("${devel}") + fi + if [[ -n "${wireless_reg}" ]]; then + basepkgs+=("${wireless_reg}") fi case "${packages}" in @@ -5326,11 +5343,33 @@ ${magenta}###${nc}-------------------------------------${magenta}[ ${bwhite}Pacs network="NetworkManager" ;; 12) # Custom System: + custarray=(base sudo "${custompkgs}" "${fstools}" "${kernel}" "${microcode}") + if [[ "${vendor}" == "Virtual Machine" ]]; then - deskpkgs="base sudo ${bootldr_pkgs} ${custompkgs} ${fstools} ${kernel} ${microcode} ${vmpkgs} ${greeter}" + custarray+=("${vmpkgs}") else - deskpkgs="base linux-firmware sudo ${bootldr_pkgs} ${custompkgs} ${fstools} ${kernel} ${microcode} ${vgapkgs} ${wireless_reg} ${greeter}" - fi ;; + custarray+=(linux-firmware) + fi + if [[ -n "${bootldr_pkgs}" ]]; then + custarray+=("${bootldr_pkgs}") + fi + if [[ -n "${ukify}" ]]; then + custarray+=("${ukify}") + fi + if [[ -n "${zram}" ]]; then + custarray+=("${zram}") + fi + if [[ -n "${vgapkgs}" ]]; then + custarray+=("${vgapkgs}") + fi + if [[ "${greeternmbr}" =~ ^(1|2|3|)$ ]]; then + custarray+=("${greeter}") + fi + if [[ -n "${wireless_reg}" ]]; then + custarray+=("${wireless_reg}") + fi + + deskpkgs="${custarray[*]}" ;; esac pkg_displ @@ -5699,7 +5738,7 @@ secboot_sign() { sbctl enroll-keys -m || exit sbctl sign -s /boot/vmlinuz-${kernel} || exit sbctl sign -s ${btldr_esp_mount}/EFI/BOOT/BOOTX64.EFI || exit - sbctl sign -s ${btldr_esp_mount}/EFI/Linux/arch-linux.efi || exit + sbctl sign -s ${btldr_esp_mount}/EFI/Linux/arch-${kernel}.efi || exit sbctl sign -s ${btldr_esp_mount}/EFI/systemd/systemd-bootx64.efi || exit sbctl sign -s -o /usr/lib/systemd/boot/efi/systemd-bootx64.efi.signed /usr/lib/systemd/boot/efi/systemd-bootx64.efi || exit SECSIGN