From d062cded765d1ba1fbef164d3eaa02de13a6897c Mon Sep 17 00:00:00 2001 From: Jane Doe Date: Sun, 31 Aug 2025 03:13:53 +0300 Subject: [PATCH] Add: When 'btrfs' is used along with LUKS encryption, the 'btrfs' binary will get loaded in initramfs Change: When 'btrfs' is used, the 'fsck' mkinitcpio.conf hook will not be included Change: Variable renaming Change: Sed syntax change to avoid repetition --- Amelia.sh | 63 ++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 42 insertions(+), 21 deletions(-) diff --git a/Amelia.sh b/Amelia.sh index 9a84bcc..9d4ecae 100644 --- a/Amelia.sh +++ b/Amelia.sh @@ -2,7 +2,7 @@ # Amelia Installer # Source: https://gitlab.com/prism7/archery -# Version: 9.4.2 +# Version: 9.4.3 set -euo pipefail ################################################################################################### @@ -2437,23 +2437,23 @@ Enter a number ${bwhite}(empty to skip)${blue}: " web_pkg="vivaldi" web_name="Vivaldi" ;; 4) - web_foreign="brave-bin" + web_aur="brave-bin" web_name="Brave Browser" ;; 5) - web_foreign="microsoft-edge-stable-bin" + web_aur="microsoft-edge-stable-bin" web_name="Microsoft Edge" ;; 6) - web_foreign="zen-browser-bin" + web_aur="zen-browser-bin" web_name="Zen Browser" ;; 7) - web_foreign="opera" + web_aur="opera" web_name="Opera" ;; 8) - web_foreign="google-chrome" + web_aur="google-chrome" web_name="Google Chrome" ;; "") web_pkg="" - web_foreign="" + web_aur="" web_name="" web_slct="yes" skip ;; @@ -2475,7 +2475,7 @@ Enter a number ${bwhite}(empty to skip)${blue}: " ### No Browser selected " web_pkg="" - web_foreign="" + web_aur="" web_name="" web_slct="" skip @@ -5749,7 +5749,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_foreign="" web_slct="" set_optm_slct="" oomd="" irqbalance="" thermald="" rngd="" rtkit="" tlp="" E_ROOT="") + 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="" E_ROOT="") export "${reset[@]}" gfxpkgs=() @@ -6402,6 +6402,7 @@ main_chroot() { echo KEYMAP=${SETKBD} > /etc/vconsole.conf || exit cat <<-MKINITCPIO > /etc/mkinitcpio.conf.d/mkinitcpiod.conf || exit ${mkinitcpio_mods} + ${mkinitcpio_bins} ${mkinitcpio_hooks} MKINITCPIO mkinitcpio -P || exit @@ -6834,7 +6835,7 @@ PRINT_CONF ################################################################################################### foreign() { - if [[ -n "${web_foreign}" ]]; then + if [[ -n "${web_aur}" ]]; then local stage_prompt="Base-devel Installation" if [[ "${dev}" != "y" ]]; then if arch-chroot /mnt <<-BASE-DEVEL > "${void}" 2>&1 2> "${log}" ; then @@ -6850,7 +6851,7 @@ BASE-DEVEL if arch-chroot /mnt <<-AUR-PKGS > "${void}" 2>&1 2> "${log}" ; then pacman -S --noconfirm git || exit sed -i 's|if (( EUID == 0 )); then|if (( EUID != 0 )); then|g' /usr/bin/makepkg || exit - git clone https://aur.archlinux.org/${web_foreign}.git && cd ${web_foreign} && makepkg -s --noconfirm && pacman -U --noconfirm *x86_64.pkg.tar.zst && cd .. && rm -rf ${web_foreign} || exit + git clone https://aur.archlinux.org/${web_aur}.git && cd ${web_aur} && makepkg -s --noconfirm && pacman -U --noconfirm *x86_64.pkg.tar.zst && cd .. && rm -rf ${web_aur} || exit sed -i 's|if (( EUID != 0 )); then|if (( EUID == 0 )); then|g' /usr/bin/makepkg || exit AUR-PKGS stage_ok @@ -6963,9 +6964,10 @@ JOURNAL DefaultTimeoutStopSec=5s DefaultTimeoutAbortSec=5s TIMEOUT - sed -i "/# set linenumbers/"'s/^#//' /etc/nanorc || exit - sed -i "/# set minibar/"'s/^#//' /etc/nanorc || exit - sed -i "/# set mouse/"'s/^#//' /etc/nanorc || exit + sed -i \ + -e '/^# set linenumbers/s/^#//' \ + -e '/^# set minibar/s/^#//' \ + -e '/^# set mouse/s/^#//' /etc/nanorc || exit echo " include /usr/share/nano/*.nanorc" | tee -a /etc/nanorc || exit echo tcp_bbr | tee /etc/modules-load.d/modulesd.conf || exit cat <<-SUDOERS > /etc/sudoers.d/sudoersd || exit @@ -7075,6 +7077,8 @@ set_vars() { gfx_bootopts=() # Mkinitcpio Modules MODULES=() + # Mkinitcpio Binaries + BINARIES=() # Mkinitcpio Hooks HOOKS=() # Zram Swap @@ -7082,6 +7086,11 @@ set_vars() { # Zram Swap Kernel Parameters zram_bootopts="zswap.enabled=0" fi + # Mkinitcpio Btrfs Binary + if [[ "${fs}" == "2" ]]; then + # Mkinitcpio Binaries + BINARIES+=(/usr/bin/btrfs) + fi #-------------------------------------------------------------------------------------------------- # ENCRYPTION = 'YES' if [[ "${encrypt}" == "yes" ]]; then @@ -7115,12 +7124,17 @@ set_vars() { fi # HOOKS SETUP (Encryption) - # Nvidia Only Vendor + # Nvidia Vendor if [[ "${vendor}" == "Nvidia" ]]; then - HOOKS+=(systemd keyboard autodetect microcode modconf sd-vconsole block sd-encrypt filesystems fsck) + HOOKS+=(systemd keyboard autodetect microcode modconf sd-vconsole block sd-encrypt filesystems) # Other Vendors / Multi-Vendors else - HOOKS+=(systemd keyboard autodetect microcode modconf kms sd-vconsole block sd-encrypt filesystems fsck) + HOOKS+=(systemd keyboard autodetect microcode modconf kms sd-vconsole block sd-encrypt filesystems) + fi + + # Fsck + if [[ "${fs}" == "1" ]]; then + HOOKS+=(fsck) fi # MAIN KERNEL PARAMETERS (Encryption) @@ -7134,12 +7148,17 @@ set_vars() { # ENCRYPTION = 'NO' elif [[ "${encrypt}" == "no" ]]; then # HOOKS SETUP - # Nvidia Only Vendor + # Nvidia Vendor if [[ "${vendor}" == "Nvidia" ]]; then - HOOKS+=(systemd autodetect microcode modconf keyboard sd-vconsole block filesystems fsck) + HOOKS+=(systemd autodetect microcode modconf keyboard sd-vconsole block filesystems) # Other Vendors / Multi-Vendors else - HOOKS+=(systemd autodetect microcode modconf kms keyboard sd-vconsole block filesystems fsck) + HOOKS+=(systemd autodetect microcode modconf kms keyboard sd-vconsole block filesystems) + fi + + # Fsck + if [[ "${fs}" == "1" ]]; then + HOOKS+=(fsck) fi # MAIN KERNEL PARAMETERS @@ -7200,6 +7219,8 @@ set_vars() { # MAIN MKINITCPIO MODULES mkinitcpio_mods="MODULES=(${MODULES[*]})" + # MAIN MKINITCPIO BINARIES + mkinitcpio_bins="BINARIES=(${BINARIES[*]})" # MAIN MKINITCPIO HOOKS mkinitcpio_hooks="HOOKS=(${HOOKS[*]})" } @@ -7356,7 +7377,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="" 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_foreign="" 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="" E_ROOT="") + 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="" E_ROOT="") export "${vars[@]}" sleep 0.2 CYANBG "************************************************************************************************* "