From e5f8b3c728805c70d4214e18ad7a631fb33a71b5 Mon Sep 17 00:00:00 2001 From: Jane Doe Date: Wed, 1 Apr 2026 19:22:23 +0300 Subject: [PATCH] Fix: [Only if the installation has been revised real-time at least once by the user] 'pacstrap' re-running in the end of installation has been adressed Fix: [Only if the installation has been revised real-time at least once by the user] The installation now successfully completes if the selected filesystem has been changed from/to 'Ext4/Btrfs' or opposite --- Amelia.sh | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/Amelia.sh b/Amelia.sh index 6398a1c..776fd06 100644 --- a/Amelia.sh +++ b/Amelia.sh @@ -1,7 +1,7 @@ #!/bin/bash # Amelia installer for Archlinux -# Version: 1.4.1 +# Version: 1.4.2 # Source: https://gitlab.com/prism7/archery set -euo pipefail @@ -2842,10 +2842,6 @@ instl() { fi set_vars chroot_conf - completion - installation="ok" - umount -R /mnt - reboot } swappart() { if [[ "${encrypt}" == "yes" ]]; then @@ -2901,8 +2897,10 @@ auto_mode() { sleep 0.2 YELLOW "\n\n > Auto Mode Selected\n\n" if [[ "${fs}" == "1" ]]; then + [[ "$revision" == "y" ]] && wipefs -t btrfs -f "${root_dev}" > "${void}" 2> "${log}" if mkfs.ext4 -F -L Root "${root_dev}" > "${void}" 2> "${log}" ; then tune2fs -O fast_commit "${root_dev}" > "${void}" 2> "${log}" || err_abort + udevadm trigger --subsystem-match=block --action=change || err_abort mount "${root_dev}" /mnt > "${void}" 2> "${log}" || err_abort sleep 0.2 NC "\n==> [${green}/Root OK${nc}]" @@ -2912,7 +2910,9 @@ auto_mode() { until mount_mnt; do : ; done fi elif [[ "${fs}" == "2" ]]; then + [[ "$revision" == "y" ]] && wipefs -t ext4 -f "${root_dev}" > "${void}" 2> "${log}" if mkfs.btrfs -f -L Root "${root_dev}" > "${void}" 2> "${log}" ; then + udevadm trigger --subsystem-match=block --action=change || err_abort mount "${root_dev}" /mnt > "${void}" 2> "${log}" || err_abort btrfs subvolume create /mnt/@ > "${void}" 2> "${log}" || err_abort btrfs subvolume create /mnt/@home > "${void}" 2> "${log}" || err_abort @@ -3000,8 +3000,10 @@ auto_mode() { homeform="n" fi if [[ "${homeform}" == "y" ]]; then + [[ "$revision" == "y" ]] && wipefs -t btrfs -f "${home_dev}" > "${void}" 2> "${log}" if mkfs.ext4 -F -L Home "${home_dev}" > "${void}" 2> "${log}" ; then tune2fs -O fast_commit "${home_dev}" > "${void}" 2> "${log}" || err_abort + udevadm trigger --subsystem-match=block --action=change || err_abort mount --mkdir "${home_dev}" /mnt/home > "${void}" 2> "${log}" || err_abort sleep 0.2 NC "\n==> [${green}/Home OK${nc}]" @@ -3022,7 +3024,6 @@ auto_mode() { NC "\n==> [${green}Unformatted /Home Mounted OK${nc}]" fi fi - blkid > "${void}" 2> "${log}" keypress } manual_mode() { @@ -3139,8 +3140,10 @@ form_root() { rootpart="$(echo "${volumes}" | awk "\$1 == ${form_root_nmbr} {print \$2}")" if [[ -e "${rootpart}" ]]; then if [[ "${fs}" == "1" ]]; then + [[ "$revision" == "y" ]] && wipefs -t btrfs -f "${rootpart}" if mkfs.ext4 -F "${rootpart}" > "${void}" 2> "${log}" ; then tune2fs -O fast_commit "${rootpart}" > "${void}" 2> "${log}" || err_abort + udevadm trigger --subsystem-match=block --action=change || err_abort local prompt="Format ${roottype}" ok else @@ -3150,7 +3153,9 @@ form_root() { return 0 fi elif [[ "${fs}" == "2" ]]; then + [[ "$revision" == "y" ]] && wipefs -t ext4 -f "${rootpart}" if mkfs.btrfs -f "${rootpart}" > "${void}" 2> "${log}" ; then + udevadm trigger --subsystem-match=block --action=change || err_abort mount "${rootpart}" /mnt > "${void}" 2> "${log}" || err_abort btrfs subvolume create /mnt/@ > "${void}" 2> "${log}" || err_abort btrfs subvolume create /mnt/@home > "${void}" 2> "${log}" || err_abort @@ -3220,8 +3225,10 @@ form_home() { if [[ -n "${form_home_nmbr}" ]]; then homepart="$(echo "${volumes}" | awk "\$1 == ${form_home_nmbr} {print \$2}")" if [[ -e "${homepart}" ]]; then + [[ "$revision" == "y" ]] && wipefs -t btrfs -f "${homepart}" if mkfs.ext4 -F "${homepart}" > "${void}" 2> "${log}" ; then tune2fs -O fast_commit "${homepart}" > "${void}" 2> "${log}" || err_abort + udevadm trigger --subsystem-match=block --action=change || err_abort local prompt="Format /Home" ok else @@ -3458,12 +3465,14 @@ luks() { if [[ "${fs}" == "1" ]]; then mkfs.ext4 -F -L Root /dev/mapper/root > "${void}" 2> "${log}" || err_abort tune2fs -O fast_commit /dev/mapper/root > "${void}" 2> "${log}" || err_abort + udevadm trigger --subsystem-match=block --action=change || err_abort mount /dev/mapper/root /mnt > "${void}" 2> "${log}" || err_abort sleep 0.2 NC "\n==> [${green}Encrypted /Root OK${nc}]" luks_root="ok" elif [[ "${fs}" == "2" ]]; then mkfs.btrfs -f -L Root /dev/mapper/root > "${void}" 2> "${log}" || err_abort + udevadm trigger --subsystem-match=block --action=change || err_abort mount /dev/mapper/root /mnt > "${void}" 2> "${log}" || err_abort btrfs subvolume create /mnt/@ > "${void}" 2> "${log}" || err_abort btrfs subvolume create /mnt/@home > "${void}" 2> "${log}" || err_abort @@ -3504,6 +3513,7 @@ luks() { echo -n "${CRYPTPASS}" | cryptsetup luksOpen "${swap_dev}" swap || err_abort fi mkswap /dev/mapper/swap > "${void}" 2> "${log}" || err_abort + udevadm trigger --subsystem-match=block --action=change || err_abort sleep 0.2 NC "\n==> [${green}Encrypted /Swap OK${nc}]" luks_swap="ok" @@ -3525,6 +3535,7 @@ luks() { fi mkfs.ext4 -F -L Home /dev/mapper/home > "${void}" 2> "${log}" || err_abort tune2fs -O fast_commit /dev/mapper/home > "${void}" 2> "${log}" || err_abort + udevadm trigger --subsystem-match=block --action=change || err_abort mount --mkdir /dev/mapper/home /mnt/home > "${void}" 2> "${log}" || err_abort sleep 0.2 NC "\n==> [${green}Encrypted /Home OK${nc}]\n" @@ -3538,6 +3549,7 @@ luks() { elif [[ "${sep_home}" == "y" && "${hometype}" == "2" ]]; then ack "An existing /Home partition has been detected and will be utilized in this installation" keypress + udevadm trigger --subsystem-match=block --action=change || err_abort mount --mkdir "${home_dev}" /mnt/home > "${void}" 2> "${log}" || err_abort sleep 0.2 NC "\n==> [${green}Unformatted /Home Mounted OK${nc}]\n" @@ -4744,6 +4756,11 @@ CUSTOM_SRVC foreign optimizations secboot_sign + completion + installation="ok" + umount -R /mnt + reboot + exit } nc="\e[0m" red="\e[31m" @@ -4769,7 +4786,7 @@ CUSTOM_SRVC tty="$(tty)" trg="" disks="$(lsblk --nodeps --paths --noheadings --output=name,size,model | cat --number)" - vars=(LOCALESET="" SETLOCALE="" lcl_slct="" USERNAME="" kernelnmbr="" fs="" gfxcount="" gfxcard="" intelcount="" intelcards="" nvidiacount="" nvidiacards="" amdcount="" amdcards="" vendor="" vendors="" desktop="" terminal="" efi_entr_del="" sanity="" install="" bootldr_pkgs="" devel="" REGDOM="" gfx_bootopts="" btrfs_bootopts="" trim="" swapmode="" greeter="" 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="" xbootloader="" multibooting="" hypervisor="" mkinitcpio_mods="" mkinitcpio_bins="" uki="" ukify="" cng_espmnt="" sep_home="" encr_swap_bootopts="" encr_home_bootopts="" uefimode="" luks_encrypt="" nrg_plc="" multilib="" nvname="" nogsp="" luks_root="" luks_swap="" luks_home="" installation="" kill_watchdog="" oomd="" setrescue="" lowlat="" dev="" web="" web_pkg="" web_aur="" web_slct="" printer="" print_pkgs="" shellnmbr="" shell="" shellname="" shellname2="" shell_pkgs="" sys_optm="" set_ext_opt="" ask_param="" desk_setup="" irqbalance="" thermald="" rngd="" rtkit="" tlp="" CRYPTPASS="" CRYPTPASS2="" show_extopts="" gptslct="" gptok="" gptabort="" nvidiaprop="" nowarning="" efiname="" path="" hometype="" homeform="" LuksParts="" nvidia_aur="" web_aur_url="" session="" alt_session="" session_support="" alt_session_pack="") + vars=(LOCALESET="" SETLOCALE="" lcl_slct="" USERNAME="" kernelnmbr="" fs="" gfxcount="" gfxcard="" intelcount="" intelcards="" nvidiacount="" nvidiacards="" amdcount="" amdcards="" vendor="" vendors="" desktop="" terminal="" efi_entr_del="" sanity="" install="" bootldr_pkgs="" devel="" REGDOM="" gfx_bootopts="" btrfs_bootopts="" trim="" swapmode="" greeter="" 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="" xbootloader="" multibooting="" hypervisor="" mkinitcpio_mods="" mkinitcpio_bins="" uki="" ukify="" cng_espmnt="" sep_home="" encr_swap_bootopts="" encr_home_bootopts="" uefimode="" luks_encrypt="" nrg_plc="" multilib="" nvname="" nogsp="" luks_root="" luks_swap="" luks_home="" installation="" kill_watchdog="" oomd="" setrescue="" lowlat="" dev="" web="" web_pkg="" web_aur="" web_slct="" printer="" print_pkgs="" shellnmbr="" shell="" shellname="" shellname2="" shell_pkgs="" sys_optm="" set_ext_opt="" ask_param="" desk_setup="" irqbalance="" thermald="" rngd="" rtkit="" tlp="" CRYPTPASS="" CRYPTPASS2="" show_extopts="" gptslct="" gptok="" gptabort="" nvidiaprop="" nowarning="" efiname="" path="" hometype="" homeform="" LuksParts="" nvidia_aur="" web_aur_url="" session="" alt_session="" session_support="" alt_session_pack="" revision="") export "${vars[@]}" validpkgs=() clear