Fix various issues

This commit is contained in:
natemaia 2022-02-12 14:47:11 -08:00
parent 97491ac6a0
commit d3e4c08cfa

View File

@ -183,7 +183,7 @@ declare -A WM_EXT=(
[lxqt]='breeze breeze-icons picom libpulse network-manager-applet' [lxqt]='breeze breeze-icons picom libpulse network-manager-applet'
[openbox]='archlabs-skel-openbox archlabs-obkey archlabs-kickshaw archlabs-paranoid archlabs-skel-xfce4 archlabs-i3lock-color archlabs-i3lock-fancy archlabs-pipemenus archlabs-ksuperkey obconf jgmenu tint2 conky rofi lxmenu-data' [openbox]='archlabs-skel-openbox archlabs-obkey archlabs-kickshaw archlabs-paranoid archlabs-skel-xfce4 archlabs-i3lock-color archlabs-i3lock-fancy archlabs-pipemenus archlabs-ksuperkey obconf jgmenu tint2 conky rofi lxmenu-data'
[plasma]='kde-applications-meta powerdevil' [plasma]='kde-applications-meta powerdevil'
[sway]='archlabs-skel-sway grim slurp swayidle swaylock swappy jq lxappearance archlabs-swaync archlabs-foot archlabs-sway-save-outputs archlabs-wlsunset archlabs-wdisplays archlabs-azote archlabs-autotiling archlabs-nwg-bar archlabs-nwg-dock archlabs-nwg-shell-config archlabs-nwg-drawer archlabs-nwg-menu archlabs-nwg-panel archlabs-nwg-wrapper archlabs-gopsuinfo wl-clipboard' [sway]='archlabs-skel-sway foot grim slurp swayidle swaylock swappy jq lxappearance archlabs-swaync archlabs-sway-save-outputs archlabs-wlsunset archlabs-wdisplays archlabs-azote archlabs-autotiling archlabs-nwg-bar archlabs-nwg-dock archlabs-nwg-shell-config archlabs-nwg-drawer archlabs-nwg-menu archlabs-nwg-panel archlabs-nwg-wrapper archlabs-gopsuinfo wl-clipboard'
[xfce4]='archlabs-skel-xfce4 xfce4-goodies xfce4-pulseaudio-plugin network-manager-applet volumeicon rofi archlabs-ksuperkey' [xfce4]='archlabs-skel-xfce4 xfce4-goodies xfce4-pulseaudio-plugin network-manager-applet volumeicon rofi archlabs-ksuperkey'
) # } ) # }
@ -469,7 +469,7 @@ main()
fi fi
case $SEL in case $SEL in
1) dev_menu || (( SEL-- )) ;; 1) dev_menu || (( SEL-- )) ;;
2) mount_menu || (( SEL-- )) ;; 2) mount_menu || SEL=0 ;;
3) prechecks 0 && { select_bootldr || (( SEL-- )); } ;; 3) prechecks 0 && { select_bootldr || (( SEL-- )); } ;;
4) prechecks 1 && { select_mkuser || (( SEL-- )); } ;; 4) prechecks 1 && { select_mkuser || (( SEL-- )); } ;;
5) prechecks 2 && { select_config || (( SEL-- )); } ;; 5) prechecks 2 && { select_config || (( SEL-- )); } ;;
@ -1007,7 +1007,7 @@ dev_menu()
'part' 'Modify the partition layout of a device' \ 'part' 'Modify the partition layout of a device' \
'luks' 'Setup LUKS encryption on a partition or LVM' \ 'luks' 'Setup LUKS encryption on a partition or LVM' \
'lvm' 'Setup logical volume management on partition(s)' \ 'lvm' 'Setup logical volume management on partition(s)' \
'back' "$back" 'back' "$back" || return 0
if [[ -z $WARN && $choice != 'view' ]]; then if [[ -z $WARN && $choice != 'view' ]]; then
msg "Data Warning" "$_warn" msg "Data Warning" "$_warn"
@ -1018,7 +1018,7 @@ dev_menu()
'part') part_menu && [[ "$AUTO_ROOT" ]] && return 0 ;; 'part') part_menu && [[ "$AUTO_ROOT" ]] && return 0 ;;
'luks') luks_menu || return 1 ;; 'luks') luks_menu || return 1 ;;
'lvm') lvm_menu || return 1 ;; 'lvm') lvm_menu || return 1 ;;
*) break; *) return 0;
esac esac
done done
return 0 return 0
@ -1106,35 +1106,45 @@ part_auto()
while read -r PART; do while read -r PART; do
[[ $PART ]] || continue [[ $PART ]] || continue
parted -s "$device" rm "$PART" > /dev/null 2> "$ERR" parted -s "$device" rm "$PART" > /dev/null 2> "$ERR"
errshow 0 "parted -s '$device' rm '$PART' > /dev/null" || return 1 errshow 0 "parted -s '$device' rm '$PART'" || return 1
done <<< "$(awk '/^ [1-9][0-9]?/ {print $1}' <<< "$dev_info" | sort -r)" done <<< "$(awk '/^ [1-9][0-9]?/ {print $1}' <<< "$dev_info" | sort -r)"
[[ $(awk '/Table:/ {print $3}' <<< "$dev_info") != "$label" ]] && parted -s "$device" mklabel "$label" > /dev/null 2> "$ERR" if [[ $(awk '/Table:/ {print $3}' <<< "$dev_info") != "$label" ]]; then
parted -s "$device" mklabel "$label" > /dev/null 2> "$ERR"
errshow 0 "parted -s '$device' mklabel '$label'" || return 1
fi
msg "Auto Partition" "\nCreating a 512M $boot_fs boot partition.\n" 1 msg "Auto Partition" "\nCreating a 512M $boot_fs boot partition.\n" 1
parted -s "$device" mkpart "$boot_type" "$boot_fs" 1MiB 513MiB > /dev/null 2> "$ERR" parted -s "$device" mkpart "$boot_type" "$boot_fs" 1MiB 513MiB > /dev/null 2> "$ERR"
errshow 0 "parted -s '$device' mkpart '$boot_type' '$boot_fs' 1MiB 513MiB > /dev/null" || return 1 errshow 0 "parted -s '$device' mkpart '$boot_type' '$boot_fs' 1MiB 513MiB" || return 1
sleep 0.5 sleep 0.5
BOOT_D="$device" BOOT_D="$device"
AUTO_BOOT=$(lsblk -lno NAME,TYPE "$device" | awk 'NR==2 {print "/dev/" $1}') AUTO_BOOT=$(lsblk -lno NAME,TYPE "$device" | grep 'part' | sort | awk '{print "/dev/" $1}')
if [[ $SYS == "BIOS" ]]; then if [[ $SYS == "BIOS" ]]; then
mkfs.ext4 -q "$AUTO_BOOT" > /dev/null 2> "$ERR" mkfs.ext4 -q "$AUTO_BOOT" > /dev/null 2> "$ERR"
errshow 0 "mkfs.ext4 -q '$AUTO_BOOT' > /dev/null" || return 1 errshow 0 "mkfs.ext4 -q '$AUTO_BOOT'" || return 1
else else
mkfs.vfat -F32 "$AUTO_BOOT" > /dev/null 2> "$ERR" mkfs.vfat -F32 "$AUTO_BOOT" > /dev/null 2> "$ERR"
errshow 0 "mkfs.vfat -F32 '$AUTO_BOOT' > /dev/null" || return 1 errshow 0 "mkfs.vfat -F32 '$AUTO_BOOT'" || return 1
fi fi
msg "Auto Partition" "\nCreating a $size ext4 root partition.\n" 0
parted -s "$device" mkpart primary ext4 513MiB 100% > /dev/null 2> "$ERR"
errshow 0 "parted -s '$device' mkpart primary ext4 513MiB 100% > /dev/null" || return 1
sleep 0.5 sleep 0.5
AUTO_ROOT="$(lsblk -lno NAME,TYPE "$device" | awk 'NR==3 {print "/dev/" $1}')" msg "Auto Partition" "\nCreating a $size ext4 root partition.\n" 0
if [[ $SYS == "BIOS" ]]; then
parted -s "$device" mkpart primary ext4 513MiB 100% > /dev/null 2> "$ERR"
errshow 0 "parted -s '$device' mkpart primary ext4 513MiB 100%" || return 1
else
parted -s "$device" mkpart "$DIST" ext4 513MiB 100% > /dev/null 2> "$ERR"
errshow 0 "parted -s '$device' mkpart '$DIST' ext4 513MiB 100%" || return 1
fi
sleep 0.5
AUTO_ROOT="$(lsblk -lno NAME,TYPE "$device" | grep 'part' | sort | awk 'NR==2 {print "/dev/" $1}')"
mkfs.ext4 -q "$AUTO_ROOT" > /dev/null 2> "$ERR" mkfs.ext4 -q "$AUTO_ROOT" > /dev/null 2> "$ERR"
errshow 0 "mkfs.ext4 -q '$AUTO_ROOT' > /dev/null" || return 1 errshow 0 "mkfs.ext4 -q '$AUTO_ROOT'" || return 1
sleep 0.5 sleep 0.5
msg "Auto Partition" "\nProcess complete.\n\n$(lsblk -o NAME,MODEL,SIZE,TYPE,FSTYPE "$device")\n" msg "Auto Partition" "\nProcess complete.\n\n$(lsblk -o NAME,MODEL,SIZE,TYPE,FSTYPE "$device")\n"
} }
@ -2509,10 +2519,6 @@ prerun_grub()
sed -i "s/GRUB_PRELOAD_MODULES=.*/GRUB_PRELOAD_MODULES=\"lvm\"/g" "$MNT/etc/default/grub" sed -i "s/GRUB_PRELOAD_MODULES=.*/GRUB_PRELOAD_MODULES=\"lvm\"/g" "$MNT/etc/default/grub"
fi fi
# fix network interface names changing after reboot
# https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/
sed -i 's/\(GRUB_CMDLINE_LINUX=".*\)"/\1 net.ifnames=0"/g' "$MNT/etc/default/grub"
# setup for os-prober module # setup for os-prober module
mkdir -p /run/{lvm,udev} "$MNT/hostrun/"{lvm,udev} mkdir -p /run/{lvm,udev} "$MNT/hostrun/"{lvm,udev}
mount --bind /run/lvm "$MNT/hostrun/lvm" mount --bind /run/lvm "$MNT/hostrun/lvm"
@ -2535,7 +2541,7 @@ prerun_efistub()
{ {
BCMDS[efistub]="mount -t efivarfs efivarfs /sys/firmware/efi/efivars > /dev/null 2>&1 BCMDS[efistub]="mount -t efivarfs efivarfs /sys/firmware/efi/efivars > /dev/null 2>&1
efibootmgr -v -d $BOOT_D -p $BOOT_NUM -c -L '${DIST} Linux' -l /vmlinuz-${KERNEL} \ efibootmgr -v -d $BOOT_D -p $BOOT_NUM -c -L '${DIST} Linux' -l /vmlinuz-${KERNEL} \
-u 'root=$ROOT_ID rw net.ifnames=0 $( -u 'root=$ROOT_ID rw $(
[[ $BTRFS_MNT ]] && printf '%s ' "$BTRFS_MNT" [[ $BTRFS_MNT ]] && printf '%s ' "$BTRFS_MNT"
[[ $UCODE ]] && printf 'initrd=\%s.img ' "$UCODE" [[ $UCODE ]] && printf 'initrd=\%s.img ' "$UCODE"
)initrd=\initramfs-${KERNEL}.img'" )initrd=\initramfs-${KERNEL}.img'"
@ -2595,13 +2601,13 @@ prerun_syslinux()
LABEL $DIST LABEL $DIST
MENU LABEL $DIST Linux MENU LABEL $DIST Linux
LINUX $d/vmlinuz-$KERNEL LINUX $d/vmlinuz-$KERNEL
APPEND root=$ROOT_ID ${LUKS_DEV}${RESUME}rw net.ifnames=0$([[ $BTRFS_MNT ]] && printf ' %s' "$BTRFS_MNT") APPEND root=$ROOT_ID ${LUKS_DEV}${RESUME}rw $([[ $BTRFS_MNT ]] && printf ' %s' "$BTRFS_MNT")
INITRD $([[ $UCODE ]] && printf "%s" "$d/$UCODE.img,")$d/initramfs-$KERNEL.img INITRD $([[ $UCODE ]] && printf "%s" "$d/$UCODE.img,")$d/initramfs-$KERNEL.img
LABEL ${DIST}fallback LABEL ${DIST}fallback
MENU LABEL $DIST Linux Fallback MENU LABEL $DIST Linux Fallback
LINUX $d/vmlinuz-$KERNEL LINUX $d/vmlinuz-$KERNEL
APPEND root=$ROOT_ID ${LUKS_DEV}${RESUME}rw net.ifnames=0$([[ $BTRFS_MNT ]] && printf ' %s' "$BTRFS_MNT") APPEND root=$ROOT_ID ${LUKS_DEV}${RESUME}rw $([[ $BTRFS_MNT ]] && printf ' %s' "$BTRFS_MNT")
INITRD $([[ $UCODE ]] && printf "%s" "$d/$UCODE.img,")$d/initramfs-$KERNEL-fallback.img INITRD $([[ $UCODE ]] && printf "%s" "$d/$UCODE.img,")$d/initramfs-$KERNEL-fallback.img
EOF EOF
return 0 return 0
@ -2616,9 +2622,9 @@ setup_refind()
prerun_refind() prerun_refind()
{ {
cat > "$MNT/boot/refind_linux.conf" <<- EOF cat > "$MNT/boot/refind_linux.conf" <<- EOF
"$DIST Linux" "root=$ROOT_ID ${LUKS_DEV}${RESUME}rw net.ifnames=0$([[ $BTRFS_MNT ]] && printf ' %s' "$BTRFS_MNT") add_efi_memmap $([[ $UCODE ]] && "$DIST Linux" "root=$ROOT_ID ${LUKS_DEV}${RESUME}rw ([[ $BTRFS_MNT ]] && printf ' %s' "$BTRFS_MNT") add_efi_memmap $([[ $UCODE ]] &&
printf "initrd=%s " "/$UCODE.img")initrd=/initramfs-%v.img" printf "initrd=%s " "/$UCODE.img")initrd=/initramfs-%v.img"
"$DIST Linux Fallback" "root=$ROOT_ID ${LUKS_DEV}${RESUME}rw net.ifnames=0$([[ $BTRFS_MNT ]] && printf ' %s' "$BTRFS_MNT") add_efi_memmap $([[ $UCODE ]] && "$DIST Linux Fallback" "root=$ROOT_ID ${LUKS_DEV}${RESUME}rw ([[ $BTRFS_MNT ]] && printf ' %s' "$BTRFS_MNT") add_efi_memmap $([[ $UCODE ]] &&
printf "initrd=%s " "/$UCODE.img")initrd=/initramfs-%v-fallback.img" printf "initrd=%s " "/$UCODE.img")initrd=/initramfs-%v-fallback.img"
EOF EOF
@ -2657,14 +2663,14 @@ prerun_systemd-boot()
title $DIST Linux title $DIST Linux
linux /vmlinuz-${KERNEL}$([[ $UCODE ]] && printf "\ninitrd %s" "/$UCODE.img") linux /vmlinuz-${KERNEL}$([[ $UCODE ]] && printf "\ninitrd %s" "/$UCODE.img")
initrd /initramfs-$KERNEL.img initrd /initramfs-$KERNEL.img
options root=$ROOT_ID ${LUKS_DEV}${RESUME}rw net.ifnames=0$([[ $BTRFS_MNT ]] && printf ' %s' "$BTRFS_MNT") options root=$ROOT_ID ${LUKS_DEV}${RESUME}rw $([[ $BTRFS_MNT ]] && printf ' %s' "$BTRFS_MNT")
EOF EOF
cat > "$MNT/boot/loader/entries/${DIST,,}-fallback.conf" <<- EOF cat > "$MNT/boot/loader/entries/${DIST,,}-fallback.conf" <<- EOF
title $DIST Linux Fallback title $DIST Linux Fallback
linux /vmlinuz-${KERNEL}$([[ $UCODE ]] && printf "\ninitrd %s" "/$UCODE.img") linux /vmlinuz-${KERNEL}$([[ $UCODE ]] && printf "\ninitrd %s" "/$UCODE.img")
initrd /initramfs-$KERNEL-fallback.img initrd /initramfs-$KERNEL-fallback.img
options root=$ROOT_ID ${LUKS_DEV}${RESUME}rw net.ifnames=0$([[ $BTRFS_MNT ]] && printf ' %s' "$BTRFS_MNT") options root=$ROOT_ID ${LUKS_DEV}${RESUME}rw $([[ $BTRFS_MNT ]] && printf ' %s' "$BTRFS_MNT")
EOF EOF
mkdir -pv "$MNT/etc/pacman.d/hooks" mkdir -pv "$MNT/etc/pacman.d/hooks"
@ -3455,7 +3461,7 @@ zshrc()
debug() debug()
{ {
export PS4='| ${BASH_SOURCE} LINE:${LINENO} FUNC:${FUNCNAME[0]:+ ${FUNCNAME[0]}()} |> ' export PS4='| installer: LN:${LINENO} FN:${FUNCNAME[0]:+ ${FUNCNAME[0]}()} -> '
set -x set -x
exec 3>| $DBG exec 3>| $DBG
BASH_XTRACEFD=3 BASH_XTRACEFD=3
@ -3820,7 +3826,7 @@ fi
trap 'printf "\n^C\n" && die 1' INT trap 'printf "\n^C\n" && die 1' INT
while getopts ":htcnrfD:b:m:d:" OPT; do while getopts ":htcnrfDb:m:d:" OPT; do
case "$OPT" in case "$OPT" in
D) debug ;; D) debug ;;
h) usage "${0##*/}" ;; h) usage "${0##*/}" ;;
@ -3920,9 +3926,9 @@ if [[ ! -f /tmp/new ]]; then
fi fi
if curl -fsSL 'https://bitbucket.org/archlabslinux/installer/raw/master/installer' -o /tmp/new; then if curl -fsSL 'https://bitbucket.org/archlabslinux/installer/raw/master/installer' -o /tmp/new; then
if (( $(vercmp "$(awk -F= '/^VER=/ {print $2}' /tmp/new)" "$VER") > 0 )); then if (( $(vercmp "$(awk -F= '/^VER=/ {print $2}' /tmp/new)" "$VER") > 0 )); then
cp /tmp/new /usr/bin/installer cp /tmp/new /usr/local/bin/installer
chmod +x /usr/bin/installer chmod +x /usr/local/bin/installer
exec /usr/bin/installer "$@" exec /usr/local/bin/installer "$@"
fi fi
fi fi
fi fi