Fix other bootloaders being deleted, add option to add grub as default bootloader
This commit is contained in:
parent
b8ed7e146d
commit
a51d28f611
160
src/installer
160
src/installer
@ -15,7 +15,7 @@
|
|||||||
# immutable variables {
|
# immutable variables {
|
||||||
|
|
||||||
readonly DIST="Archlabs" # Linux distributor
|
readonly DIST="Archlabs" # Linux distributor
|
||||||
readonly VER="1.6.28" # Installer version
|
readonly VER="1.6.29" # Installer version
|
||||||
readonly LIVE="liveuser" # Live session user
|
readonly LIVE="liveuser" # Live session user
|
||||||
readonly TRN="/usr/share/archlabs-installer" # Translation path
|
readonly TRN="/usr/share/archlabs-installer" # Translation path
|
||||||
readonly MNT="/mnt/install" # Install mountpoint
|
readonly MNT="/mnt/install" # Install mountpoint
|
||||||
@ -148,6 +148,7 @@ initialize_variables() {
|
|||||||
declare -g BOOT_DONE=false
|
declare -g BOOT_DONE=false
|
||||||
declare -g FULL_DONE=false
|
declare -g FULL_DONE=false
|
||||||
declare -g CONFIRM_DONE=false
|
declare -g CONFIRM_DONE=false
|
||||||
|
declare -g GRUB_UEFI_FALLBACK=false
|
||||||
|
|
||||||
# Commands used to install each bootloader.
|
# Commands used to install each bootloader.
|
||||||
# NOTE: syslinux and grub in particular can/will change during runtime
|
# NOTE: syslinux and grub in particular can/will change during runtime
|
||||||
@ -330,18 +331,6 @@ check_base_unpacked() {
|
|||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
decrease_part_count() {
|
|
||||||
# remove a partition from the dialog list and decrement the number partitions left
|
|
||||||
local p="$1"
|
|
||||||
PARTS="$(sed "s~${p} [0-9]*[G-M]~~; s~${p} [0-9]*\.[0-9]*[G-M]~~" <<< "$PARTS")"
|
|
||||||
(( COUNT > 0 )) && (( COUNT-- ))
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
######################################################################
|
|
||||||
## Dialog Functions ##
|
|
||||||
######################################################################
|
|
||||||
|
|
||||||
getinput() {
|
getinput() {
|
||||||
local answer
|
local answer
|
||||||
answer="$(dialog --cr-wrap --max-input 63 --stdout --backtitle "$BT" --title " $1 " --inputbox "$2" 0 0 "$3")"
|
answer="$(dialog --cr-wrap --max-input 63 --stdout --backtitle "$BT" --title " $1 " --inputbox "$2" 0 0 "$3")"
|
||||||
@ -433,8 +422,8 @@ EOF
|
|||||||
set_locale() {
|
set_locale() {
|
||||||
local locale
|
local locale
|
||||||
tput civis
|
tput civis
|
||||||
locale="$(dialog --cr-wrap --stdout --backtitle "$BT" --title "$_ConfLocale" \
|
locale="$(dialog --cr-wrap --stdout --no-cancel --backtitle "$BT" \
|
||||||
--menu "$_LocaleBody" 25 70 12 $LOCALES)"
|
--title "$_ConfLocale" --menu "$_LocaleBody" 25 70 12 $LOCALES)"
|
||||||
[[ $? != 0 || $locale == "" ]] && return 1
|
[[ $? != 0 || $locale == "" ]] && return 1
|
||||||
|
|
||||||
infobox "$_ConfLocale" "$_GenLocale $locale\n"
|
infobox "$_ConfLocale" "$_GenLocale $locale\n"
|
||||||
@ -450,16 +439,14 @@ set_locale() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
set_timezone() {
|
set_timezone() {
|
||||||
local zone subzone
|
|
||||||
|
|
||||||
tput civis
|
tput civis
|
||||||
zone="$(dialog --cr-wrap --stdout --backtitle "$BT" --title " $_TimeZTitle " \
|
|
||||||
--menu "$_TimeZBody" 20 70 10 $ZONES)"
|
|
||||||
[[ $? != 0 || $zone == "" ]] && return 1
|
|
||||||
|
|
||||||
subzone="$(dialog --cr-wrap --stdout --backtitle "$BT" --title " $_TimeZTitle " \
|
local zone
|
||||||
--menu "$_TimeSubZBody" 20 70 12 ${SUBZONES[$zone]})"
|
zone="$(dialog --cr-wrap --stdout --no-cancel --backtitle "$BT" \
|
||||||
[[ $? != 0 || $subzone == "" ]] && return 1
|
--title " $_TimeZTitle " --menu "$_TimeZBody" 20 70 10 $ZONES)"
|
||||||
|
local subzone
|
||||||
|
subzone="$(dialog --cr-wrap --stdout --no-cancel --backtitle "$BT" \
|
||||||
|
--title " $_TimeZTitle " --menu "$_TimeSubZBody" 20 70 12 ${SUBZONES[$zone]})"
|
||||||
|
|
||||||
if yesno "$_TimeZTitle" "$_TimeZQ $zone/$subzone?\n"; then
|
if yesno "$_TimeZTitle" "$_TimeZQ $zone/$subzone?\n"; then
|
||||||
chroot_cmd "ln -sf /usr/share/zoneinfo/$zone/$subzone /etc/localtime" 2>$ERR
|
chroot_cmd "ln -sf /usr/share/zoneinfo/$zone/$subzone /etc/localtime" 2>$ERR
|
||||||
@ -474,9 +461,9 @@ set_timezone() {
|
|||||||
|
|
||||||
set_hwclock() {
|
set_hwclock() {
|
||||||
chroot_cmd "hwclock --systohc --utc"
|
chroot_cmd "hwclock --systohc --utc"
|
||||||
if (( $? != 0 )); then
|
if [[ $? != 0 ]]; then
|
||||||
chroot_cmd "hwclock --systohc --utc --directisa"
|
chroot_cmd "hwclock --systohc --utc --directisa"
|
||||||
(( $? != 0 )) && infobox "$_ErrTitle" "\nHwclock setup attempts failed.\n\nContinuing anyway.\n"
|
[[ $? != 0 ]] && infobox "$_ErrTitle" "\nHwclock setup attempts failed.\n\nContinuing anyway.\n"
|
||||||
fi
|
fi
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
@ -500,10 +487,9 @@ EOF
|
|||||||
user_input_values() {
|
user_input_values() {
|
||||||
local user="$1"
|
local user="$1"
|
||||||
tput cnorm
|
tput cnorm
|
||||||
|
|
||||||
local values
|
local values
|
||||||
if [[ $SET_ROOT_PASSWD != true ]]; then
|
if [[ $SET_ROOT_PASSWD != true ]]; then
|
||||||
values="$(dialog --stdout --separator '~' --ok-label "Submit" --backtitle "$BT" \
|
values="$(dialog --stdout --no-cancel --separator '~' --ok-label "Submit" --backtitle "$BT" \
|
||||||
--title " $_UserTitle " --insecure --mixedform "$_UserBody" 27 75 10 \
|
--title " $_UserTitle " --insecure --mixedform "$_UserBody" 27 75 10 \
|
||||||
"$_Username" 1 1 "$user" 1 $((${#_Username} + 2)) 71 0 0 \
|
"$_Username" 1 1 "$user" 1 $((${#_Username} + 2)) 71 0 0 \
|
||||||
"$_Password" 2 1 "" 2 $((${#_Password} + 2)) 71 0 1 \
|
"$_Password" 2 1 "" 2 $((${#_Password} + 2)) 71 0 1 \
|
||||||
@ -512,7 +498,7 @@ user_input_values() {
|
|||||||
"$_Password" 8 1 "" 8 $((${#_Password} + 2)) 71 0 1 \
|
"$_Password" 8 1 "" 8 $((${#_Password} + 2)) 71 0 1 \
|
||||||
"$_Password2" 9 1 "" 9 $((${#_Password2} + 2)) 71 0 1)"
|
"$_Password2" 9 1 "" 9 $((${#_Password2} + 2)) 71 0 1)"
|
||||||
else
|
else
|
||||||
values="$(dialog --stdout --separator '~' --ok-label "Submit" --backtitle "$BT" \
|
values="$(dialog --stdout --no-cancel --separator '~' --ok-label "Submit" --backtitle "$BT" \
|
||||||
--title " $_UserTitle " --insecure --mixedform "$_UserBody" 20 75 4 \
|
--title " $_UserTitle " --insecure --mixedform "$_UserBody" 20 75 4 \
|
||||||
"$_Username" 1 1 "$user" 1 $((${#_Username} + 2)) 71 0 0 \
|
"$_Username" 1 1 "$user" 1 $((${#_Username} + 2)) 71 0 0 \
|
||||||
"$_Password" 2 1 "" 2 $((${#_Password} + 2)) 71 0 1 \
|
"$_Password" 2 1 "" 2 $((${#_Password} + 2)) 71 0 1 \
|
||||||
@ -706,6 +692,14 @@ choose_window_manager() {
|
|||||||
## System Partitioning Functions ##
|
## System Partitioning Functions ##
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
|
decrease_part_count() {
|
||||||
|
# remove a partition from the dialog list and decrement the number partitions left
|
||||||
|
local p="$1"
|
||||||
|
PARTS="$(sed "s~${p} [0-9]*[G-M]~~; s~${p} [0-9]*\.[0-9]*[G-M]~~" <<< "$PARTS")"
|
||||||
|
(( COUNT > 0 )) && (( COUNT-- ))
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
wipe_device() {
|
wipe_device() {
|
||||||
local device="$1"
|
local device="$1"
|
||||||
if yesno "$_PartWipe" "$_PartBody1 $device $_PartWipeBody2"; then
|
if yesno "$_PartWipe" "$_PartBody1 $device $_PartWipeBody2"; then
|
||||||
@ -807,15 +801,13 @@ auto_partition() {
|
|||||||
# confirm or bail
|
# confirm or bail
|
||||||
yesno "$_PrepParts" "$_PartBody1 $device $_PartBody2" || return 0
|
yesno "$_PrepParts" "$_PartBody1 $device $_PartBody2" || return 0
|
||||||
infobox "$_PrepParts" "\nAuto partitioning device: $device\n"
|
infobox "$_PrepParts" "\nAuto partitioning device: $device\n"
|
||||||
|
|
||||||
swapoff -a # make sure swap is disabled
|
swapoff -a # make sure swap is disabled
|
||||||
|
|
||||||
|
# partition number of each partition on the device in reverse order
|
||||||
local dev_info="$(parted -s $device print)"
|
local dev_info="$(parted -s $device print)"
|
||||||
|
for i in $(awk '/^ [1-9][0-9]?/ {print $1}' <<< "$dev_info" | sort -r); do
|
||||||
# partition number of each partition on the device NOTE: MUST be in reverse order
|
parted -s $device rm $i 2>$ERR
|
||||||
for part in $(awk '/^ [1-9][0-9]?/ {print $1}' <<< "$dev_info" | sort -r); do
|
check_for_errors "parted -s $device rm $i" || { break; return 1; }
|
||||||
parted -s "$device" rm $part 2>$ERR
|
|
||||||
check_for_errors "parted -s $device rm $part" || { break; return 1; }
|
|
||||||
done
|
done
|
||||||
|
|
||||||
# make sure we have the correct device table for the system type, gpt or msdos
|
# make sure we have the correct device table for the system type, gpt or msdos
|
||||||
@ -827,7 +819,7 @@ auto_partition() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# if the current device table isn't correct run mklabel
|
# if the current device table isn't correct run mklabel
|
||||||
if [[ "$table" != "$newtable" ]]; then
|
if [[ $table != "$newtable" ]]; then
|
||||||
parted -s $device mklabel $newtable 2>$ERR
|
parted -s $device mklabel $newtable 2>$ERR
|
||||||
check_for_errors "parted -s $device mklabel $newtable" || return 1
|
check_for_errors "parted -s $device mklabel $newtable" || return 1
|
||||||
fi
|
fi
|
||||||
@ -845,6 +837,8 @@ auto_partition() {
|
|||||||
check_for_errors "parted -s $device mkpart ESP fat32 1MiB 513MiB" || { BOOT_PART=""; return 1; }
|
check_for_errors "parted -s $device mkpart ESP fat32 1MiB 513MiB" || { BOOT_PART=""; return 1; }
|
||||||
mkfs.vfat -F32 $BOOT_PART >/dev/null 2>$ERR
|
mkfs.vfat -F32 $BOOT_PART >/dev/null 2>$ERR
|
||||||
check_for_errors "mkfs.vfat -F32 $BOOT_PART" || { BOOT_PART=""; return 1; }
|
check_for_errors "mkfs.vfat -F32 $BOOT_PART" || { BOOT_PART=""; return 1; }
|
||||||
|
parted -s $device set 1 esp on 2>$ERR
|
||||||
|
check_for_errors "parted -s $device set 1 esp on" || { BOOT_PART=""; return 1; }
|
||||||
fi
|
fi
|
||||||
|
|
||||||
parted -s $device set 1 boot on 2>$ERR
|
parted -s $device set 1 boot on 2>$ERR
|
||||||
@ -925,7 +919,7 @@ select_swap() {
|
|||||||
check_for_errors "swapon $MNT/swapfile" || return 1
|
check_for_errors "swapon $MNT/swapfile" || return 1
|
||||||
SWAP_FILE="/swapfile"
|
SWAP_FILE="/swapfile"
|
||||||
else
|
else
|
||||||
# Warn user if creating a new swap
|
# Warn user if creating a new swap on the chosen partition
|
||||||
if ! grep -qi "swap" <<< "$(lsblk -o FSTYPE $SWAP)"; then
|
if ! grep -qi "swap" <<< "$(lsblk -o FSTYPE $SWAP)"; then
|
||||||
yesno "$_PrepMount" "\nmkswap $SWAP\n" || return 0
|
yesno "$_PrepMount" "\nmkswap $SWAP\n" || return 0
|
||||||
mkswap $SWAP >/dev/null 2>$ERR
|
mkswap $SWAP >/dev/null 2>$ERR
|
||||||
@ -988,22 +982,18 @@ select_filesystem() {
|
|||||||
local part="$1"
|
local part="$1"
|
||||||
local cur_fs
|
local cur_fs
|
||||||
cur_fs="$(lsblk -lno FSTYPE $part)"
|
cur_fs="$(lsblk -lno FSTYPE $part)"
|
||||||
|
|
||||||
tput civis
|
tput civis
|
||||||
|
|
||||||
local choice
|
local choice
|
||||||
choice="$(dialog --cr-wrap --stdout --backtitle "$BT" --title " $_FSTitle: $part" \
|
choice="$(dialog --cr-wrap --stdout --backtitle "$BT" --title " $_FSTitle: $part" \
|
||||||
--menu "\nPartition: ${part}$([[ $cur_fs != "" ]] && echo -n "\nCurrent: ${cur_fs}")\n$_FSBody" 0 0 0 $([[ $cur_fs != "" ]] && echo -n "$_Skip -") \
|
--menu "\nPartition: ${part}$([[ $cur_fs != "" ]] && echo -n "\nCurrent: ${cur_fs}")\n$_FSBody" 0 0 0 \
|
||||||
|
$([[ $cur_fs != "" ]] && echo -n "$_Skip -") \
|
||||||
"ext4" "${FS_CMDS[ext4]}" "ext3" "${FS_CMDS[ext3]}" \
|
"ext4" "${FS_CMDS[ext4]}" "ext3" "${FS_CMDS[ext3]}" \
|
||||||
"ext2" "${FS_CMDS[ext2]}" "vfat" "${FS_CMDS[vfat]}" \
|
"ext2" "${FS_CMDS[ext2]}" "vfat" "${FS_CMDS[vfat]}" \
|
||||||
"ntfs" "${FS_CMDS[ntfs]}" "f2fs" "${FS_CMDS[f2fs]}" \
|
"ntfs" "${FS_CMDS[ntfs]}" "f2fs" "${FS_CMDS[f2fs]}" \
|
||||||
"jfs" "${FS_CMDS[jfs]}" "nilfs2" "${FS_CMDS[nilfs2]}" \
|
"jfs" "${FS_CMDS[jfs]}" "nilfs2" "${FS_CMDS[nilfs2]}" \
|
||||||
"reiserfs" "${FS_CMDS[reiserfs]}" "xfs" "${FS_CMDS[xfs]}")"
|
"reiserfs" "${FS_CMDS[reiserfs]}" "xfs" "${FS_CMDS[xfs]}")"
|
||||||
if [[ $choice == "$_Skip" ]]; then
|
[[ $choice == "$_Skip" ]] && return 0
|
||||||
return 0
|
[[ $? != 0 || $choice == "" ]] && return 1
|
||||||
elif [[ $choice == "" ]]; then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if yesno "$_FSTitle" "\nFormat $part as $choice?\n"; then
|
if yesno "$_FSTitle" "\nFormat $part as $choice?\n"; then
|
||||||
infobox "$_FSTitle" "\nFormatting: $part\n\nCommand: ${FS_CMDS[$choice]}\n"
|
infobox "$_FSTitle" "\nFormatting: $part\n\nCommand: ${FS_CMDS[$choice]}\n"
|
||||||
@ -1019,31 +1009,34 @@ select_filesystem() {
|
|||||||
select_boot_setup() {
|
select_boot_setup() {
|
||||||
# choose bootloader and by extension mountpoint (if needed)
|
# choose bootloader and by extension mountpoint (if needed)
|
||||||
tput civis
|
tput civis
|
||||||
BOOTLOADER="$(dialog --cr-wrap --stdout --backtitle "$BT" --title " $_PrepMount " \
|
BOOTLOADER="$(dialog --cr-wrap --stdout --backtitle "$BT" \
|
||||||
--menu "$_MntBootBody" 0 0 0 ${BOOTLOADERS[$SYS]})"
|
--title " $_PrepMount " --menu "$_MntBootBody" 0 0 0 ${BOOTLOADERS[$SYS]})"
|
||||||
[[ $? != 0 || $BOOTLOADER == "" ]] && return 1
|
[[ $? != 0 || $BOOTLOADER == "" ]] && return 1
|
||||||
|
|
||||||
if [[ $SYS == "BIOS" ]]; then
|
if [[ $SYS == 'BIOS' ]]; then
|
||||||
if [[ $BOOTLOADER == "grub" && $BOOT_DEVICE == "" ]]; then
|
if [[ $BOOTLOADER == "grub" && $BOOT_DEVICE == "" ]]; then
|
||||||
# grub BIOS needs an install device eg. /dev/sda
|
# grub BIOS needs an install device eg. /dev/sda
|
||||||
select_device 'boot' || return 1
|
select_device 'boot' || return 1
|
||||||
BOOT_DEVICE="$DEVICE"
|
BOOT_DEVICE="$DEVICE"
|
||||||
|
else
|
||||||
elif [[ $BOOTLOADER == "syslinux" ]]; then
|
|
||||||
local cmd
|
local cmd
|
||||||
cmd="$(dialog --cr-wrap --stdout --backtitle "$BT" --title " $_InstSysTitle " \
|
cmd="$(dialog --cr-wrap --stdout --backtitle "$BT" --title " $_InstSysTitle " \
|
||||||
--menu "$_InstSysBody\nDefault: ${BOOT_CMDS[syslinux]}" 0 0 0 \
|
--menu "$_InstSysBody\nDefault: ${BOOT_CMDS[syslinux]}" 0 0 0 \
|
||||||
"syslinux-install_update -iam" "[MBR]" \
|
"syslinux-install_update -iam" "[MBR]" \
|
||||||
"syslinux-install_update -i" "[/]")"
|
"syslinux-install_update -i" "[/]")"
|
||||||
case $cmd in
|
[[ $? != 0 || $cmd == "" ]] && return 1
|
||||||
"syslinux-install_update -iam"|"syslinux-install_update -i")
|
BOOT_CMDS[syslinux]="$cmd"
|
||||||
BOOT_CMDS[syslinux]="$cmd"
|
EDIT_FILES[8]="/boot/syslinux/syslinux.cfg" ;;
|
||||||
EDIT_FILES[8]="/boot/syslinux/syslinux.cfg" ;;
|
fi
|
||||||
*) return 1
|
else
|
||||||
esac
|
if [[ $BOOTLOADER == 'systemd-boot' ]]; then
|
||||||
|
EDIT_FILES[8]="/boot/loader/entries/archlabs.conf"
|
||||||
|
else
|
||||||
|
EDIT_FILES[8]="/etc/default/grub"
|
||||||
|
if yesno "$_PrepMount" "$_SetBootDefault"; then
|
||||||
|
GRUB_UEFI_FALLBACK=true
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
elif [[ $BOOTLOADER == "systemd-boot" ]]; then
|
|
||||||
EDIT_FILES[8]="/boot/loader/entries/archlabs.conf"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# if BOOT_PART was set, mount the partition to the correct mountpoint
|
# if BOOT_PART was set, mount the partition to the correct mountpoint
|
||||||
@ -2082,26 +2075,20 @@ EOF
|
|||||||
}
|
}
|
||||||
|
|
||||||
grub_uefi_fallback() {
|
grub_uefi_fallback() {
|
||||||
# some UEFI firmware is finicky and requires special treatment this loops
|
# some UEFI firmware is finicky and requires a specific folder in
|
||||||
# /boot/efi/EFI or /boot/efi/EFI and finds a directory named 'boot' 'Boot' 'BOOT'
|
# /boot/efi/EFI/ and named 'boot', 'Boot', or 'BOOT'
|
||||||
# once/if found we copy grub's efi stub binary to that directory as bootx64.efi
|
|
||||||
local esp="${MNT}${BOOT_MNTS[$SYS-$BOOTLOADER]}"
|
|
||||||
local fb="boot"
|
local fb="boot"
|
||||||
|
local esp="${MNT}${BOOT_MNTS[$SYS-$BOOTLOADER]}/EFI/"
|
||||||
for i in $(find "$esp/EFI" -maxdepth 1 -mindepth 1 -type d 2>/dev/null); do
|
for i in $(find "$esp" -maxdepth 1 -mindepth 1 -type d 2>/dev/null); do
|
||||||
if grep -qi "boot" <<< "$(basename $i)"; then
|
if grep -qi "boot" <<< "$(basename $i)"; then
|
||||||
fb="$(basename $i)"
|
fb="$(basename $i)"
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
mkdir -p $esp/EFI/$fb
|
# copy grub's efi stub binary to that directory as $stub
|
||||||
cp -f $esp/EFI/$DIST/grubx64.efi $esp/EFI/$fb/grubx64.efi
|
mkdir -p ${esp}$fb
|
||||||
|
cp -f ${esp}$DIST/grubx64.efi ${esp}$fb/bootx64.efi
|
||||||
if [[ ! -e $esp/EFI/$fb/bootx64.efi ]]; then
|
|
||||||
cp -f $esp/EFI/$DIST/grubx64.efi $esp/EFI/$fb/bootx64.efi
|
|
||||||
fi
|
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2113,16 +2100,20 @@ setup_bootloader() {
|
|||||||
|
|
||||||
infobox "$_InstBootTitle" "$msg\nMountpoint: ${BOOT_MNTS[$SYS-$BOOTLOADER]}\n"
|
infobox "$_InstBootTitle" "$msg\nMountpoint: ${BOOT_MNTS[$SYS-$BOOTLOADER]}\n"
|
||||||
|
|
||||||
if [[ $SYS == "UEFI" ]] && grep -q "/sys/firmware/efi/efivars" <<< "$(mount)"; then
|
if [[ $SYS == "UEFI" ]]; then
|
||||||
|
# ensure efivarfs is mounted in host and in chroot
|
||||||
local eficmd="mount -o remount,rw -t efivarfs efivarfs /sys/firmware/efi/efivars"
|
local eficmd="mount -o remount,rw -t efivarfs efivarfs /sys/firmware/efi/efivars"
|
||||||
$eficmd >/dev/null 2>&1
|
$eficmd >/dev/null 2>&1
|
||||||
BOOT_CMDS[$BOOTLOADER]="$eficmd ; ${BOOT_CMDS[$BOOTLOADER]}"
|
BOOT_CMDS[$BOOTLOADER]="$eficmd ; ${BOOT_CMDS[$BOOTLOADER]}"
|
||||||
|
|
||||||
# remove old EFI boot entries from previous installs
|
# remove old EFI boot entries from previous installs
|
||||||
find $MNT/boot/efi/EFI/ -name '[aA][rR][cC][hH][lL]abs*' \
|
find $MNT/boot/efi/EFI/ -maxdepth 1 -mindepth 1 -name '[aA][rR][cC][hH][lL]abs*' \
|
||||||
-type d -exec rm -rf '{}' \; 2>/dev/null
|
-type d -exec rm -rf '{}' \; >/dev/null 2>&1
|
||||||
find $MNT/boot/efi/EFI/ -name '[Bb][oO][oO][tT]' \
|
|
||||||
-type d -exec rm -rf '{}' \; 2>/dev/null
|
if [[ $GRUB_UEFI_FALLBACK == true ]]; then
|
||||||
|
find $MNT/boot/efi/EFI/ -maxdepth 1 -mindepth 1 -name '[Bb][oO][oO][tT]' \
|
||||||
|
-type d -exec rm -rf '{}' \; >/dev/null 2>&1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# grub is finicky and requires special treatment
|
# grub is finicky and requires special treatment
|
||||||
@ -2132,7 +2123,7 @@ setup_bootloader() {
|
|||||||
$udevcmd >/dev/null 2>&1
|
$udevcmd >/dev/null 2>&1
|
||||||
BOOT_CMDS[grub]="$udevcmd ; ${BOOT_CMDS[grub]}"
|
BOOT_CMDS[grub]="$udevcmd ; ${BOOT_CMDS[grub]}"
|
||||||
|
|
||||||
# BIOS uses the base device name, eg. /dev/sda
|
# BIOS uses the base device name, eg. /dev/sda.. so add it to the end of BOOT_CMDS[grub]
|
||||||
[[ $SYS == "BIOS" ]] && BOOT_CMDS[grub]="${BOOT_CMDS[grub]} $BOOT_DEVICE"
|
[[ $SYS == "BIOS" ]] && BOOT_CMDS[grub]="${BOOT_CMDS[grub]} $BOOT_DEVICE"
|
||||||
|
|
||||||
# add grub-mkconfig last
|
# add grub-mkconfig last
|
||||||
@ -2144,20 +2135,19 @@ setup_bootloader() {
|
|||||||
BOOT_CMDS[$BOOTLOADER]="pacman -Rs grub --noconfirm && ${BOOT_CMDS[$BOOTLOADER]}"
|
BOOT_CMDS[$BOOTLOADER]="pacman -Rs grub --noconfirm && ${BOOT_CMDS[$BOOTLOADER]}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# create bootloader config first, grub and systemd-boot require this
|
# create the bootloader configs and run the setup commands, BOOT_CMDS[$BOOTLOADER]
|
||||||
bootloader_config
|
bootloader_config
|
||||||
|
|
||||||
# install the selected bootloader using the array command
|
|
||||||
chroot_cmd "${BOOT_CMDS[$BOOTLOADER]}" 2>$ERR >/dev/null 2>&1
|
chroot_cmd "${BOOT_CMDS[$BOOTLOADER]}" 2>$ERR >/dev/null 2>&1
|
||||||
check_for_errors "${BOOT_CMDS[$BOOTLOADER]}" || return 1
|
check_for_errors "${BOOT_CMDS[$BOOTLOADER]}" || return 1
|
||||||
|
|
||||||
[[ $SYS == "UEFI" && $BOOTLOADER == "grub" ]] && grub_uefi_fallback
|
# copy grub efi stub to generic catch all
|
||||||
|
[[ $GRUB_UEFI_FALLBACK == true ]] && grub_uefi_fallback
|
||||||
|
|
||||||
BOOT_DONE=true
|
BOOT_DONE=true
|
||||||
|
|
||||||
if [[ $LUKS -eq 1 && $SYS != "BIOS" && $BOOTLOADER == "grub" ]]; then
|
# offer to setup a keyfile for LUKS.. Only when choosing grub and system is UEFI
|
||||||
if [[ $LUKS_PASS && $LUKS_UUID ]]; then
|
if [[ $LUKS -eq 1 && $SYS == 'UEFI' && $BOOTLOADER == 'grub' && $LUKS_PASS && $LUKS_UUID ]]; then
|
||||||
luks_keyfile || return 1
|
luks_keyfile || return 1
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
@ -2179,7 +2169,7 @@ run_mkinitcpio() {
|
|||||||
|
|
||||||
tput civis
|
tput civis
|
||||||
chroot_cmd "mkinitcpio -p linux" 2>$ERR | dialog --cr-wrap --backtitle "$BT" \
|
chroot_cmd "mkinitcpio -p linux" 2>$ERR | dialog --cr-wrap --backtitle "$BT" \
|
||||||
--title " $_RunMkinit " --progressbox "$_RunMkinitBody\nAdded HOOKS: $MKINIT_HOOKS $add\n" 30 90
|
--title " $_RunMkinit " --progressbox "$_RunMkinitBody\nHOOKS: $MKINIT_HOOKS $add\n" 30 90
|
||||||
check_for_errors "mkinitcpio -p linux" || return 1
|
check_for_errors "mkinitcpio -p linux" || return 1
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
|
@ -17,6 +17,8 @@ _Final="\nA telepítés szinte befejeződött.\n"
|
|||||||
_WelTitle="Welkom bij"
|
_WelTitle="Welkom bij"
|
||||||
_WelBody="\nDit installatieprogramma zal de nieuwste pakketten downloaden van de $DIST repositories. Enkel de hoogstnodige configuratie wordt uitgevoerd\n\nMENU OPTIES: Selecteer de gewenste optie door haar nummer in te tikken of door de pijljestoetsen [op]/[neer] te gebruiken. Bevestig door op [enter] te drukken. Schakel tussen de knoppen door de [Tab] toets of de pijltjestoets [links]/[rechts] te gebruiken. Bevestig door op [enter] te drukken. U kunt navigeren in de lange lijsten door de [pg up] en [pg down] toetsen te gebruiken, en/of door op de eerste letter van de gewenste optie te drukken.\n\nCONFIGURATIE & PAKKET OPTIES: Standaard pakketten in checklists worden vooraf geselecteerd. Gebruik de [Spatiebar] om te (de)selecteren"
|
_WelBody="\nDit installatieprogramma zal de nieuwste pakketten downloaden van de $DIST repositories. Enkel de hoogstnodige configuratie wordt uitgevoerd\n\nMENU OPTIES: Selecteer de gewenste optie door haar nummer in te tikken of door de pijljestoetsen [op]/[neer] te gebruiken. Bevestig door op [enter] te drukken. Schakel tussen de knoppen door de [Tab] toets of de pijltjestoets [links]/[rechts] te gebruiken. Bevestig door op [enter] te drukken. U kunt navigeren in de lange lijsten door de [pg up] en [pg down] toetsen te gebruiken, en/of door op de eerste letter van de gewenste optie te drukken.\n\nCONFIGURATIE & PAKKET OPTIES: Standaard pakketten in checklists worden vooraf geselecteerd. Gebruik de [Spatiebar] om te (de)selecteren"
|
||||||
|
|
||||||
|
_SetBootDefault="\nSommige UEFI firmware kan geen bootloader vinden tenzij het is ingesteld als standaard. Dit doe je door het kopiëeren van haar efi stub grub en het te hernoemen naar bootx64.efi.\n\nHet is aanbevolen dit te doen tenzij je reeds een standaard bootloader hebt, of wanneer je van plan bent meerdere bootloaders te gebruiken.\n\nStel de grub bootloader in als standaard?\n"
|
||||||
|
|
||||||
# Requirements Voorwaarden
|
# Requirements Voorwaarden
|
||||||
_NotRoot="\nHet installatieprogramma moet worden uitgevoerd als root.\n"
|
_NotRoot="\nHet installatieprogramma moet worden uitgevoerd als root.\n"
|
||||||
_NoNetwork="\nGeen internetverbinding.\n"
|
_NoNetwork="\nGeen internetverbinding.\n"
|
||||||
|
@ -121,6 +121,8 @@ _ChooseExtraPackages="\nChoose additional packages to install?\n"
|
|||||||
_ExtraPackages="Extra Packages"
|
_ExtraPackages="Extra Packages"
|
||||||
_ExtraPackagesBody="\nUse [Space] to select/deselect packages(s) to install from the list below."
|
_ExtraPackagesBody="\nUse [Space] to select/deselect packages(s) to install from the list below."
|
||||||
|
|
||||||
|
_SetBootDefault="\nSome UEFI firmware may not detect the bootloader unless it is set as the default by copying its efi stub to a directory /boot/efi/EFI/boot and renaming it to bootx64.efi.\n\nIt is recommended to do so unless already using a default bootloader, or where intending to use multiple bootloaders.\n\nSet grub bootloader as the default?\n"
|
||||||
|
|
||||||
## END NEW
|
## END NEW
|
||||||
|
|
||||||
|
|
||||||
|
@ -156,6 +156,8 @@ _FormBiosBody="[IMPORTANT]\nLa partition boot"
|
|||||||
_FormUefiBody2="est déjà correctement formaté.\n\nVoulez-vous passer la mise en forme? Choisir 'Non' effacera TOUTES les données (bootloaders) sur la partition.\n\nEn cas de doute, choisissez 'Oui'\n"
|
_FormUefiBody2="est déjà correctement formaté.\n\nVoulez-vous passer la mise en forme? Choisir 'Non' effacera TOUTES les données (bootloaders) sur la partition.\n\nEn cas de doute, choisissez 'Oui'\n"
|
||||||
_SelUefiBody="\nSélectionner une partition UEFI. C'est une partition spéciale permettant le démarrage sur des systèmes UEFI."
|
_SelUefiBody="\nSélectionner une partition UEFI. C'est une partition spéciale permettant le démarrage sur des systèmes UEFI."
|
||||||
|
|
||||||
|
_SetBootDefault="\nCertains microcodes UEFI peuvent ne pas détecter le chargeur d'amorçage, à moins de le définir par défaut en copiant son module efi dans grub et le renommer bootx64.efi.\n\nIl est recommandé de le faire à moins que vous utilisiez déjà un chargeur d'amorçage par défaut, ou si vous avez l'intention d'utiliser plusieurs chargeurs d'amorçage.\n\nDéfinir le chargeur d'amorçage par défaut?\n"
|
||||||
|
|
||||||
# Partitions supplémentaires
|
# Partitions supplémentaires
|
||||||
_ExtPartBody="\nSélectionner des partitions additionnelles dans n'importe quel ordre, ou cliquer sur « Terminé » afin de poursuivre."
|
_ExtPartBody="\nSélectionner des partitions additionnelles dans n'importe quel ordre, ou cliquer sur « Terminé » afin de poursuivre."
|
||||||
_ExtPartBody1="\nSpécifier le point de montage de la partition. Assurez-vous que le nom débute par une barre oblique (/). Exemples inclus:"
|
_ExtPartBody1="\nSpécifier le point de montage de la partition. Assurez-vous que le nom débute par une barre oblique (/). Exemples inclus:"
|
||||||
|
@ -13,6 +13,8 @@ _Back="Vissza"
|
|||||||
_Name="Név:"
|
_Name="Név:"
|
||||||
_Final="\nA telepítés szinte befejeződött.\n"
|
_Final="\nA telepítés szinte befejeződött.\n"
|
||||||
|
|
||||||
|
_SetBootDefault="\nNéhány UEFI firmwarét nem érzékel a bootloader, kivéve, ha az az alapbeállítás másolja az 'efi stub'-ot grub és átnevezi ezt a 'bootx64.ef'-neki.\n\nEzt ajánlatos megtenni, kivéve, ha ezt már használja a rendszertöltő, vagy ha több rendszertöltőt használsz.\n\nBeállítod a rendszertöltőt alapértelmezettként?\n"
|
||||||
|
|
||||||
_MntBody="Használd a [Szóköz] billentyűt a csatolni kívánt meghajtó kijelöléséhez, illetve a kijelölés törléséhez és nézd át újra gondosan. Kérjük ne válassz több változatot ugyanahhoz a lehetőséghez."
|
_MntBody="Használd a [Szóköz] billentyűt a csatolni kívánt meghajtó kijelöléséhez, illetve a kijelölés törléséhez és nézd át újra gondosan. Kérjük ne válassz több változatot ugyanahhoz a lehetőséghez."
|
||||||
_MntConfBody="\nErősítsd meg a következő csatolási lehetőségeket:"
|
_MntConfBody="\nErősítsd meg a következő csatolási lehetőségeket:"
|
||||||
|
|
||||||
|
@ -156,6 +156,8 @@ _FormUefiBody="[IMPORTANTE]\nLa partizione EFI"
|
|||||||
_FormBiosBody="[IMPORTANTE]\nLa partizione boot"
|
_FormBiosBody="[IMPORTANTE]\nLa partizione boot"
|
||||||
_FormUefiBody2="è già formattato correttamente.\n\nVuoi saltare la formattazione? Scegliendo 'No' verranno cancellati TUTTI i dati (bootloader) sulla partizione.\n\nScegli incerto 'Sì'\n"
|
_FormUefiBody2="è già formattato correttamente.\n\nVuoi saltare la formattazione? Scegliendo 'No' verranno cancellati TUTTI i dati (bootloader) sulla partizione.\n\nScegli incerto 'Sì'\n"
|
||||||
|
|
||||||
|
_SetBootDefault="\nAlcuni firmware UEFI potrebbero non identificare il bootloader a meno di impostarlo come default copiando il suo stub efi in grub e rinominandolo bootx64.efi.\n\nSi riccomanda di procedere come indicato a meno di non stare già usando un botoader di default, o qualora si vogliano usare bootloader multipli.\n\nImpostare il grub bootloader come default?\n"
|
||||||
|
|
||||||
# Extra Partitions
|
# Extra Partitions
|
||||||
_ExtPartBody="\nSeleziona le partizioni addizionali in qualsiasi ordine, altrimenti scegli 'Fatto' per concludere."
|
_ExtPartBody="\nSeleziona le partizioni addizionali in qualsiasi ordine, altrimenti scegli 'Fatto' per concludere."
|
||||||
_ExtPartBody1="\nSpecificare mountpoint partizione. Assicurarsi che il nome cominci con uno slash (/). Ad esempio:"
|
_ExtPartBody1="\nSpecificare mountpoint partizione. Assicurarsi che il nome cominci con uno slash (/). Ad esempio:"
|
||||||
|
@ -156,6 +156,8 @@ _FormUefiBody="[IMPORTANTE]\nA partição EFI"
|
|||||||
_FormBiosBody="[IMPORTANTE]\nA partição boot"
|
_FormBiosBody="[IMPORTANTE]\nA partição boot"
|
||||||
_FormUefiBody2="já está formatado corretamente.\n\nVocê quer pular a formatação? Escolher 'Não' irá apagar TODOS os dados (bootloaders) na partição.\n\nSe não tiver certeza, escolha 'Sim'.\n"
|
_FormUefiBody2="já está formatado corretamente.\n\nVocê quer pular a formatação? Escolher 'Não' irá apagar TODOS os dados (bootloaders) na partição.\n\nSe não tiver certeza, escolha 'Sim'.\n"
|
||||||
|
|
||||||
|
_SetBootDefault="\nAlguns firmware UEFI pode não detectar o carregador de boot a menos que seja definido como padrão, copiando o seu stub efi para grub e renomeá-lo para bootx64.efi.\n\nRecomenda-se fazer isto, a menos que já está usando um carregador de boot padrão, ou se quiser usar vários carregadores de boot.\n\nDefinir o carregador de boot como padrão?\n"
|
||||||
|
|
||||||
# Partições Extras
|
# Partições Extras
|
||||||
_ExtPartBody="\nSelecionar partições adicionais em qualquer ordem, ou 'Feito' para finalizar."
|
_ExtPartBody="\nSelecionar partições adicionais em qualquer ordem, ou 'Feito' para finalizar."
|
||||||
_ExtPartBody1="\nEspecifique o ponto de montagem da partição. Certifique-se que o nome comece com uma barra (/). Exemplos:"
|
_ExtPartBody1="\nEspecifique o ponto de montagem da partição. Certifique-se que o nome comece com uma barra (/). Exemplos:"
|
||||||
|
@ -158,6 +158,8 @@ _FormUefiBody="[IMPORTANTE]\nA partição EFI"
|
|||||||
_FormBiosBody="[IMPORTANTE]\nA partição boot"
|
_FormBiosBody="[IMPORTANTE]\nA partição boot"
|
||||||
_FormUefiBody2="já está formatado corretamente.\n\nVocê quer pular a formatação? Escolher 'Não' irá apagar TODOS os dados (bootloaders) na partição.\n\nSe não tiver certeza, escolha 'Sim'.\n"
|
_FormUefiBody2="já está formatado corretamente.\n\nVocê quer pular a formatação? Escolher 'Não' irá apagar TODOS os dados (bootloaders) na partição.\n\nSe não tiver certeza, escolha 'Sim'.\n"
|
||||||
|
|
||||||
|
_SetBootDefault="\nAlguns firmware UEFI pode não detectar o carregador de boot a menos que seja definido como padrão, copiando o seu stub efi para grub e renomeá-lo para bootx64.efi.\n\nRecomenda-se fazer isto, a menos que já está usando um carregador de boot padrão, ou se quiser usar vários carregadores de boot.\n\nDefinir o carregador de boot como padrão?\n"
|
||||||
|
|
||||||
# Partições Extras
|
# Partições Extras
|
||||||
_ExtPartBody="\nSeleccionar partições adicionais em qualquer ordem, ou 'Pronto' para finalizar."
|
_ExtPartBody="\nSeleccionar partições adicionais em qualquer ordem, ou 'Pronto' para finalizar."
|
||||||
_ExtPartBody1="\nEspecifique o ponto de montagem da partição. Verifique se o nome começa com uma barra (/). Exemplos incluem:"
|
_ExtPartBody1="\nEspecifique o ponto de montagem da partição. Verifique se o nome começa com uma barra (/). Exemplos incluem:"
|
||||||
|
@ -156,6 +156,8 @@ _FormUefiBody="[ВАЖНО]\nРаздел EFI"
|
|||||||
_FormBiosBody="[ВАЖНО]\nРаздел boot"
|
_FormBiosBody="[ВАЖНО]\nРаздел boot"
|
||||||
_FormUefiBody2="уже правильно отформатирован.\n\nВы хотите пропустить его форматирование? Выбор 'Нет' удалит ВСЕ данные (загрузчики) в разделе.\n\nЕсли неуверенный выбор 'Да'.\n"
|
_FormUefiBody2="уже правильно отформатирован.\n\nВы хотите пропустить его форматирование? Выбор 'Нет' удалит ВСЕ данные (загрузчики) в разделе.\n\nЕсли неуверенный выбор 'Да'.\n"
|
||||||
|
|
||||||
|
_SetBootDefault="\nНекоторые прошивки UEFI могут не определять загрузчик до тех пор, пока не скопировать их efi stub в grub и переименовать его в bootx64.efi.\n\nЭто рекомендуется сделать если у вас еще нету загрузчика по умолчанию или вы собираетесь использовать несколько загрузчиков.\n\nСделать загрузчиком по умолчанию?\n"
|
||||||
|
|
||||||
# Extra Partitions
|
# Extra Partitions
|
||||||
_ExtPartBody="\nВыберите дополнительные разделы в любом порядке или 'Готово' для завершения."
|
_ExtPartBody="\nВыберите дополнительные разделы в любом порядке или 'Готово' для завершения."
|
||||||
_ExtPartBody1="\nУкажите точку монтирования. Убедитесь, что имя начинается с косой черты (/). Например:"
|
_ExtPartBody1="\nУкажите точку монтирования. Убедитесь, что имя начинается с косой черты (/). Например:"
|
||||||
|
@ -156,6 +156,8 @@ _FormUefiBody="[IMPORTANTE]\nLa partición EFI"
|
|||||||
_FormBiosBody="[IMPORTANTE]\nLa partición boot"
|
_FormBiosBody="[IMPORTANTE]\nLa partición boot"
|
||||||
_FormUefiBody2="ya está formateado correctamente.\n\n¿Quieres omitir el formateo? Elegir 'No' borrará TODOS los datos (cargadores de arranque) en la partición.\n\nSi no está seguro, elija 'Sí'.\n"
|
_FormUefiBody2="ya está formateado correctamente.\n\n¿Quieres omitir el formateo? Elegir 'No' borrará TODOS los datos (cargadores de arranque) en la partición.\n\nSi no está seguro, elija 'Sí'.\n"
|
||||||
|
|
||||||
|
_SetBootDefault="\nAlgunos firmwares UEFI podrían no detectar el gestor de arranque a menos que sea establecido como predeterminado, copiando su EFISTUB (archivo de arranque) a grub y renombrándolo a bootx64.efi.\n\nSe recomienda hacer esto a menos que ya se esté usando un gestor de arranque predeterminado, o si se quieren usar varios gestores de arranque.\n\n¿Establecer gestor de arranque como el predeterminado?\n"
|
||||||
|
|
||||||
# Particiones extra
|
# Particiones extra
|
||||||
_ExtPartBody="\nSeleccione particiones adicionales en cualquier orden, o 'Finalizar' para terminar el proceso."
|
_ExtPartBody="\nSeleccione particiones adicionales en cualquier orden, o 'Finalizar' para terminar el proceso."
|
||||||
_ExtPartBody1="\nPunto de montaje de partición específica. Asegúrese de que el nombre empieza con una barra inclinada (/). Ejemplos:"
|
_ExtPartBody1="\nPunto de montaje de partición específica. Asegúrese de que el nombre empieza con una barra inclinada (/). Ejemplos:"
|
||||||
|
Reference in New Issue
Block a user