mirror of
https://gitlab.archlinux.org/tpowa/archboot.git
synced 2024-09-20 03:50:37 +02:00
move all UEFI parameters to base.sh
This commit is contained in:
parent
50457a7ca0
commit
671444ca0e
9 changed files with 54 additions and 69 deletions
|
@ -210,6 +210,7 @@ fi
|
||||||
: >/tmp/.setup
|
: >/tmp/.setup
|
||||||
|
|
||||||
set_title
|
set_title
|
||||||
|
detect_uefi_parameters
|
||||||
|
|
||||||
DIALOG --msgbox "Welcome to the Archboot Arch Linux Installation program.\n\nThe install process is fairly straightforward, and you should run through the options in the order they are presented.\n\nIf you are unfamiliar with partitioning/making filesystems, you may want to consult some documentation before continuing.\n\nYou can view all output from commands by viewing your ${VC} console (ALT-F${VC_NUM}). ALT-F1 will bring you back here." 14 65
|
DIALOG --msgbox "Welcome to the Archboot Arch Linux Installation program.\n\nThe install process is fairly straightforward, and you should run through the options in the order they are presented.\n\nIf you are unfamiliar with partitioning/making filesystems, you may want to consult some documentation before continuing.\n\nYou can view all output from commands by viewing your ${VC} console (ALT-F${VC_NUM}). ALT-F1 will bring you back here." 14 65
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@ autoprepare() {
|
||||||
if [[ "${NAME_SCHEME_PARAMETER_RUN}" == "" ]]; then
|
if [[ "${NAME_SCHEME_PARAMETER_RUN}" == "" ]]; then
|
||||||
set_device_name_scheme || return 1
|
set_device_name_scheme || return 1
|
||||||
fi
|
fi
|
||||||
if [[ "${GUIDPARAMETER}" == "1" ]]; then
|
if [[ "${_GUIDPARAMETER}" == "1" ]]; then
|
||||||
DIALOG --inputbox "Enter the mountpoint of your UEFI SYSTEM PARTITION (Default is /boot) : " 10 60 "/boot" 2>"${ANSWER}" || return 1
|
DIALOG --inputbox "Enter the mountpoint of your UEFI SYSTEM PARTITION (Default is /boot) : " 10 60 "/boot" 2>"${ANSWER}" || return 1
|
||||||
UEFISYS_MP="$(cat "${ANSWER}")"
|
UEFISYS_MP="$(cat "${ANSWER}")"
|
||||||
fi
|
fi
|
||||||
|
@ -63,14 +63,14 @@ autoprepare() {
|
||||||
command -v mkfs.nilfs2 2>/dev/null && FSOPTS="${FSOPTS} nilfs2 Nilfs2"
|
command -v mkfs.nilfs2 2>/dev/null && FSOPTS="${FSOPTS} nilfs2 Nilfs2"
|
||||||
command -v mkfs.jfs 2>/dev/null && FSOPTS="${FSOPTS} jfs JFS"
|
command -v mkfs.jfs 2>/dev/null && FSOPTS="${FSOPTS} jfs JFS"
|
||||||
# create 1 MB bios_grub partition for grub BIOS GPT support
|
# create 1 MB bios_grub partition for grub BIOS GPT support
|
||||||
if [[ "${GUIDPARAMETER}" == "1" ]]; then
|
if [[ "${_GUIDPARAMETER}" == "1" ]]; then
|
||||||
GUID_PART_SIZE="2"
|
GUID_PART_SIZE="2"
|
||||||
GPT_BIOS_GRUB_PART_SIZE="${GUID_PART_SIZE}"
|
GPT_BIOS_GRUB_PART_SIZE="${GUID_PART_SIZE}"
|
||||||
_PART_NUM="1"
|
_PART_NUM="1"
|
||||||
_GPT_BIOS_GRUB_PART_NUM="${_PART_NUM}"
|
_GPT_BIOS_GRUB_PART_NUM="${_PART_NUM}"
|
||||||
DISC_SIZE="$((DISC_SIZE-GUID_PART_SIZE))"
|
DISC_SIZE="$((DISC_SIZE-GUID_PART_SIZE))"
|
||||||
fi
|
fi
|
||||||
if [[ "${GUIDPARAMETER}" == "1" ]]; then
|
if [[ "${_GUIDPARAMETER}" == "1" ]]; then
|
||||||
if [[ "${_UEFISYS_BOOTPART}" == "1" ]]; then
|
if [[ "${_UEFISYS_BOOTPART}" == "1" ]]; then
|
||||||
while [[ "${UEFISYS_PART_SET}" == "" ]]; do
|
while [[ "${UEFISYS_PART_SET}" == "" ]]; do
|
||||||
DIALOG --inputbox "Enter the size (MB) of your /boot partition,\nMinimum value is 260.\n\nDisk space left: ${DISC_SIZE} MB" 10 65 "512" 2>"${ANSWER}" || return 1
|
DIALOG --inputbox "Enter the size (MB) of your /boot partition,\nMinimum value is 260.\n\nDisk space left: ${DISC_SIZE} MB" 10 65 "512" 2>"${ANSWER}" || return 1
|
||||||
|
@ -207,7 +207,7 @@ autoprepare() {
|
||||||
# disable swap and all mounted partitions, umount / last!
|
# disable swap and all mounted partitions, umount / last!
|
||||||
_umountall
|
_umountall
|
||||||
# we assume a /dev/sdX,/dev/vdX or /dev/nvmeXnY format
|
# we assume a /dev/sdX,/dev/vdX or /dev/nvmeXnY format
|
||||||
if [[ "${GUIDPARAMETER}" == "1" ]]; then
|
if [[ "${_GUIDPARAMETER}" == "1" ]]; then
|
||||||
# GPT (GUID) is supported only by 'parted' or 'sgdisk'
|
# GPT (GUID) is supported only by 'parted' or 'sgdisk'
|
||||||
printk off
|
printk off
|
||||||
DIALOG --infobox "Partitioning ${DEVICE} ..." 0 0
|
DIALOG --infobox "Partitioning ${DEVICE} ..." 0 0
|
||||||
|
@ -274,7 +274,7 @@ autoprepare() {
|
||||||
_FSSPEC_SWAP_PART="${_SWAP_PART_NUM}:swap:swap::SWAP_ARCH"
|
_FSSPEC_SWAP_PART="${_SWAP_PART_NUM}:swap:swap::SWAP_ARCH"
|
||||||
_FSSPEC_BOOT_PART="${_BOOT_PART_NUM}:/boot:ext2::BOOT_ARCH"
|
_FSSPEC_BOOT_PART="${_BOOT_PART_NUM}:/boot:ext2::BOOT_ARCH"
|
||||||
_FSSPEC_UEFISYS_PART="${_UEFISYS_PART_NUM}:${UEFISYS_MP}:vfat:-F32:EFISYS"
|
_FSSPEC_UEFISYS_PART="${_UEFISYS_PART_NUM}:${UEFISYS_MP}:vfat:-F32:EFISYS"
|
||||||
if [[ "${GUIDPARAMETER}" == "1" ]]; then
|
if [[ "${_GUIDPARAMETER}" == "1" ]]; then
|
||||||
if [[ "${_UEFISYS_BOOTPART}" == "1" ]]; then
|
if [[ "${_UEFISYS_BOOTPART}" == "1" ]]; then
|
||||||
FSSPECS="${_FSSPEC_ROOT_PART} ${_FSSPEC_UEFISYS_PART} ${_FSSPEC_HOME_PART} ${_FSSPEC_SWAP_PART}"
|
FSSPECS="${_FSSPEC_ROOT_PART} ${_FSSPEC_UEFISYS_PART} ${_FSSPEC_HOME_PART} ${_FSSPEC_SWAP_PART}"
|
||||||
else
|
else
|
||||||
|
|
|
@ -66,3 +66,33 @@ geteditor() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
detect_uefi_paramaters() {
|
||||||
|
_UEFI_BOOT="0"
|
||||||
|
_UEFI_SECURE_BOOT="0"
|
||||||
|
_GUIDPARAMETER="0"
|
||||||
|
[[ -e "/sys/firmware/efi" ]] && _UEFI_BOOT="1"
|
||||||
|
if [[ "${_UEFI_BOOT}" == "1" ]]; then
|
||||||
|
_GUIDPARAMETER="1"
|
||||||
|
_SECUREBOOT_VAR_VALUE="$(efivar -n 8be4df61-93ca-11d2-aa0d-00e098032b8c-SecureBoot 2>/dev/null | tail -n -1 | awk '{print $2}')"
|
||||||
|
_SETUPMODE_VAR_VALUE="$(efivar -n 8be4df61-93ca-11d2-aa0d-00e098032b8c-SetupMode 2>/dev/null | tail -n -1 | awk '{print $2}')"
|
||||||
|
if [[ "${_SECUREBOOT_VAR_VALUE}" == "01" ]] && [[ "${_SETUPMODE_VAR_VALUE}" == "00" ]]; then
|
||||||
|
_UEFI_SECURE_BOOT="1"
|
||||||
|
fi
|
||||||
|
if [[ "${RUNNING_ARCH}" == "x86_64" ]]; then
|
||||||
|
if grep -q '_IA32_UEFI=1' /proc/cmdline 1>/dev/null; then
|
||||||
|
_EFI_MIXED="1"
|
||||||
|
_UEFI_ARCH="IA32"
|
||||||
|
_SPEC_UEFI_ARCH="ia32"
|
||||||
|
else
|
||||||
|
_EFI_MIXED="0"
|
||||||
|
_UEFI_ARCH="X64"
|
||||||
|
_SPEC_UEFI_ARCH="x64"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [[ "${RUNNING_ARCH}" == "aarch64" ]]; then
|
||||||
|
_EFI_MIXED="0"
|
||||||
|
_UEFI_ARCH="AA64"
|
||||||
|
_SPEC_UEFI_ARCH="aa64"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
|
@ -319,10 +319,9 @@ set_device_name_scheme() {
|
||||||
NAME_SCHEME_PARAMETER=""
|
NAME_SCHEME_PARAMETER=""
|
||||||
NAME_SCHEME_LEVELS=""
|
NAME_SCHEME_LEVELS=""
|
||||||
MENU_DESC_TEXT=""
|
MENU_DESC_TEXT=""
|
||||||
detect_uefi_boot
|
|
||||||
## util-linux root=PARTUUID=/root=PARTLABEL= support - https://git.kernel.org/?p=utils/util-linux/util-linux.git;a=commitdiff;h=fc387ee14c6b8672761ae5e67ff639b5cae8f27c;hp=21d1fa53f16560dacba33fffb14ffc05d275c926
|
## util-linux root=PARTUUID=/root=PARTLABEL= support - https://git.kernel.org/?p=utils/util-linux/util-linux.git;a=commitdiff;h=fc387ee14c6b8672761ae5e67ff639b5cae8f27c;hp=21d1fa53f16560dacba33fffb14ffc05d275c926
|
||||||
## mkinitcpio's init root=PARTUUID= support - https://projects.archlinux.org/mkinitcpio.git/tree/init_functions#n185
|
## mkinitcpio's init root=PARTUUID= support - https://projects.archlinux.org/mkinitcpio.git/tree/init_functions#n185
|
||||||
if [[ "${_DETECTED_UEFI_BOOT}" == "1" ]]; then
|
if [[ "${_UEFI_BOOT}" == "1" ]]; then
|
||||||
NAME_SCHEME_LEVELS="${NAME_SCHEME_LEVELS} PARTUUID PARTUUID=<partuuid> PARTLABEL PARTLABEL=<partlabel>"
|
NAME_SCHEME_LEVELS="${NAME_SCHEME_LEVELS} PARTUUID PARTUUID=<partuuid> PARTLABEL PARTLABEL=<partlabel>"
|
||||||
MENU_DESC_TEXT="\nPARTUUID and PARTLABEL are specific to GPT disks.\nIn GPT disks, PARTUUID is recommended.\nIn MBR/msdos disks,"
|
MENU_DESC_TEXT="\nPARTUUID and PARTLABEL are specific to GPT disks.\nIn GPT disks, PARTUUID is recommended.\nIn MBR/msdos disks,"
|
||||||
fi
|
fi
|
||||||
|
@ -665,7 +664,7 @@ _createraid()
|
||||||
if [[ ${RAID_PARTITION} == "1" ]]; then
|
if [[ ${RAID_PARTITION} == "1" ]]; then
|
||||||
# switch for mbr usage
|
# switch for mbr usage
|
||||||
set_guid
|
set_guid
|
||||||
if [[ "${GUIDPARAMETER}" == "0" ]]; then
|
if [[ "${_GUIDPARAMETER}" == "0" ]]; then
|
||||||
DIALOG --msgbox "Now you'll be put into the cfdisk program where you can partition your raiddevice to your needs." 6 70
|
DIALOG --msgbox "Now you'll be put into the cfdisk program where you can partition your raiddevice to your needs." 6 70
|
||||||
cfdisk "${RAIDDEVICE}"
|
cfdisk "${RAIDDEVICE}"
|
||||||
else
|
else
|
||||||
|
|
|
@ -96,7 +96,7 @@ freeze_xfs() {
|
||||||
|
|
||||||
## Setup kernel cmdline parameters to be added to bootloader configs
|
## Setup kernel cmdline parameters to be added to bootloader configs
|
||||||
bootloader_kernel_parameters() {
|
bootloader_kernel_parameters() {
|
||||||
if [[ "${_DETECTED_UEFI_BOOT}" == "1" ]]; then
|
if [[ "${_UEFI_BOOT}" == "1" ]]; then
|
||||||
[[ "${NAME_SCHEME_PARAMETER}" == "PARTUUID" ]] && getrootpartuuid
|
[[ "${NAME_SCHEME_PARAMETER}" == "PARTUUID" ]] && getrootpartuuid
|
||||||
[[ "${NAME_SCHEME_PARAMETER}" == "PARTLABEL" ]] && getrootpartlabel
|
[[ "${NAME_SCHEME_PARAMETER}" == "PARTLABEL" ]] && getrootpartlabel
|
||||||
fi
|
fi
|
||||||
|
@ -154,31 +154,12 @@ abort_f2fs_bootpart() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
do_uefi_setup_env_vars() {
|
|
||||||
if [[ "${RUNNING_ARCH}" == "x86_64" ]]; then
|
|
||||||
if grep -q '_IA32_UEFI=1' /proc/cmdline 1>/dev/null; then
|
|
||||||
_EFI_MIXED="1"
|
|
||||||
_UEFI_ARCH="IA32"
|
|
||||||
_SPEC_UEFI_ARCH="ia32"
|
|
||||||
else
|
|
||||||
_EFI_MIXED="0"
|
|
||||||
_UEFI_ARCH="X64"
|
|
||||||
_SPEC_UEFI_ARCH="x64"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if [[ "${RUNNING_ARCH}" == "aarch64" ]]; then
|
|
||||||
_EFI_MIXED="0"
|
|
||||||
_UEFI_ARCH="AA64"
|
|
||||||
_SPEC_UEFI_ARCH="aa64"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
do_uefi_common() {
|
do_uefi_common() {
|
||||||
PACKAGES=""
|
PACKAGES=""
|
||||||
[[ ! -f "${DESTDIR}/usr/bin/mkfs.vfat" ]] && PACKAGES="${PACKAGES} dosfstools"
|
[[ ! -f "${DESTDIR}/usr/bin/mkfs.vfat" ]] && PACKAGES="${PACKAGES} dosfstools"
|
||||||
[[ ! -f "${DESTDIR}/usr/bin/efivar" ]] && PACKAGES="${PACKAGES} efivar"
|
[[ ! -f "${DESTDIR}/usr/bin/efivar" ]] && PACKAGES="${PACKAGES} efivar"
|
||||||
[[ ! -f "${DESTDIR}/usr/bin/efibootmgr" ]] && PACKAGES="${PACKAGES} efibootmgr"
|
[[ ! -f "${DESTDIR}/usr/bin/efibootmgr" ]] && PACKAGES="${PACKAGES} efibootmgr"
|
||||||
if [[ "${_DETECTED_UEFI_SECURE_BOOT}" == "1" ]]; then
|
if [[ "${_UEFI_SECURE_BOOT}" == "1" ]]; then
|
||||||
[[ ! -f "${DESTDIR}/usr/bin/mokutil" ]] && PACKAGES="${PACKAGES} mokutil"
|
[[ ! -f "${DESTDIR}/usr/bin/mokutil" ]] && PACKAGES="${PACKAGES} mokutil"
|
||||||
[[ ! -f "${DESTDIR}/usr/bin/efi-readvar" ]] && PACKAGES="${PACKAGES} efitools"
|
[[ ! -f "${DESTDIR}/usr/bin/efi-readvar" ]] && PACKAGES="${PACKAGES} efitools"
|
||||||
[[ ! -f "${DESTDIR}/usr/bin/sbsign" ]] && PACKAGES="${PACKAGES} sbsigntools"
|
[[ ! -f "${DESTDIR}/usr/bin/sbsign" ]] && PACKAGES="${PACKAGES} sbsigntools"
|
||||||
|
@ -230,7 +211,7 @@ do_uefi_bootmgr_setup() {
|
||||||
do_uefi_secure_boot_efitools() {
|
do_uefi_secure_boot_efitools() {
|
||||||
do_uefi_common
|
do_uefi_common
|
||||||
# install helper tools and create entries in UEFI boot manager, if not present
|
# install helper tools and create entries in UEFI boot manager, if not present
|
||||||
if [[ "${_DETECTED_UEFI_SECURE_BOOT}" == "1" ]]; then
|
if [[ "${_UEFI_SECURE_BOOT}" == "1" ]]; then
|
||||||
if [[ ! -f "${UEFISYS_MP}/EFI/BOOT/HashTool.efi" ]]; then
|
if [[ ! -f "${UEFISYS_MP}/EFI/BOOT/HashTool.efi" ]]; then
|
||||||
cp "${DESTDIR}/usr/share/efitools/efi/HashTool.efi" "${UEFISYS_MP}/EFI/BOOT/HashTool.efi"
|
cp "${DESTDIR}/usr/share/efitools/efi/HashTool.efi" "${UEFISYS_MP}/EFI/BOOT/HashTool.efi"
|
||||||
_BOOTMGR_LABEL="HashTool (Secure Boot)"
|
_BOOTMGR_LABEL="HashTool (Secure Boot)"
|
||||||
|
@ -592,7 +573,7 @@ do_grub_config() {
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
## Move old config file, if any
|
## Move old config file, if any
|
||||||
if [[ "${_DETECTED_UEFI_SECURE_BOOT}" == "1" ]]; then
|
if [[ "${_UEFI_SECURE_BOOT}" == "1" ]]; then
|
||||||
GRUB_CFG="grub${_SPEC_UEFI_ARCH}.cfg"
|
GRUB_CFG="grub${_SPEC_UEFI_ARCH}.cfg"
|
||||||
else
|
else
|
||||||
GRUB_CFG="grub.cfg"
|
GRUB_CFG="grub.cfg"
|
||||||
|
@ -882,7 +863,7 @@ do_grub_uefi() {
|
||||||
do_grub_common_before
|
do_grub_common_before
|
||||||
DIALOG --infobox "Setting up GRUB(2) UEFI. This needs some time ..." 3 55
|
DIALOG --infobox "Setting up GRUB(2) UEFI. This needs some time ..." 3 55
|
||||||
chroot_mount
|
chroot_mount
|
||||||
if [[ "${_DETECTED_UEFI_SECURE_BOOT}" == "1" ]]; then
|
if [[ "${_UEFI_SECURE_BOOT}" == "1" ]]; then
|
||||||
# install fedora shim
|
# install fedora shim
|
||||||
[[ ! -d ${DESTDIR}/${UEFISYS_MP}/EFI/BOOT ]] && mkdir -p "${DESTDIR}"/"${UEFISYS_MP}"/EFI/BOOT/
|
[[ ! -d ${DESTDIR}/${UEFISYS_MP}/EFI/BOOT ]] && mkdir -p "${DESTDIR}"/"${UEFISYS_MP}"/EFI/BOOT/
|
||||||
cp -f /usr/share/archboot/bootloader/shim"${_SPEC_UEFI_ARCH}".efi "${DESTDIR}"/"${UEFISYS_MP}"/EFI/BOOT/BOOT"${_UEFI_ARCH}".EFI
|
cp -f /usr/share/archboot/bootloader/shim"${_SPEC_UEFI_ARCH}".efi "${DESTDIR}"/"${UEFISYS_MP}"/EFI/BOOT/BOOT"${_UEFI_ARCH}".EFI
|
||||||
|
@ -906,7 +887,7 @@ do_grub_uefi() {
|
||||||
GRUB_UEFI="1"
|
GRUB_UEFI="1"
|
||||||
do_grub_config
|
do_grub_config
|
||||||
GRUB_UEFI=""
|
GRUB_UEFI=""
|
||||||
if [[ "${_DETECTED_UEFI_SECURE_BOOT}" == "1" ]]; then
|
if [[ "${_UEFI_SECURE_BOOT}" == "1" ]]; then
|
||||||
# generate GRUB with config embeded
|
# generate GRUB with config embeded
|
||||||
#remove existing, else weird things are happening
|
#remove existing, else weird things are happening
|
||||||
[[ -f "${DESTDIR}/${GRUB_PREFIX_DIR}/grub${_SPEC_UEFI_ARCH}.efi" ]] && rm "${DESTDIR}"/"${GRUB_PREFIX_DIR}"/grub"${_SPEC_UEFI_ARCH}".efi
|
[[ -f "${DESTDIR}/${GRUB_PREFIX_DIR}/grub${_SPEC_UEFI_ARCH}.efi" ]] && rm "${DESTDIR}"/"${GRUB_PREFIX_DIR}"/grub"${_SPEC_UEFI_ARCH}".efi
|
||||||
|
@ -927,7 +908,7 @@ do_grub_uefi() {
|
||||||
fi
|
fi
|
||||||
cp /"${GRUB_PREFIX_DIR}"/"${GRUB_CFG}" "${UEFISYS_MP}"/EFI/BOOT/grub"${_SPEC_UEFI_ARCH}".cfg
|
cp /"${GRUB_PREFIX_DIR}"/"${GRUB_CFG}" "${UEFISYS_MP}"/EFI/BOOT/grub"${_SPEC_UEFI_ARCH}".cfg
|
||||||
fi
|
fi
|
||||||
if [[ -e "${DESTDIR}/${UEFISYS_MP}/EFI/grub/grub${_SPEC_UEFI_ARCH}.efi" && "${_DETECTED_UEFI_SECURE_BOOT}" == "0" && -e "${DESTDIR}/boot/grub/${_GRUB_ARCH}-efi/core.efi" ]]; then
|
if [[ -e "${DESTDIR}/${UEFISYS_MP}/EFI/grub/grub${_SPEC_UEFI_ARCH}.efi" && "${_UEFI_SECURE_BOOT}" == "0" && -e "${DESTDIR}/boot/grub/${_GRUB_ARCH}-efi/core.efi" ]]; then
|
||||||
_BOOTMGR_LABEL="GRUB"
|
_BOOTMGR_LABEL="GRUB"
|
||||||
_BOOTMGR_LOADER_DIR="/EFI/grub/grub${_SPEC_UEFI_ARCH}.efi"
|
_BOOTMGR_LOADER_DIR="/EFI/grub/grub${_SPEC_UEFI_ARCH}.efi"
|
||||||
do_uefi_bootmgr_setup
|
do_uefi_bootmgr_setup
|
||||||
|
@ -937,7 +918,7 @@ do_grub_uefi() {
|
||||||
DIALOG --infobox "GRUB(2) for ${_UEFI_ARCH} UEFI has been installed successfully.\n\nContinuing in 5 seconds ..." 5 60
|
DIALOG --infobox "GRUB(2) for ${_UEFI_ARCH} UEFI has been installed successfully.\n\nContinuing in 5 seconds ..." 5 60
|
||||||
sleep 5
|
sleep 5
|
||||||
S_BOOTLOADER="1"
|
S_BOOTLOADER="1"
|
||||||
elif [[ -e "${DESTDIR}/${UEFISYS_MP}/EFI/BOOT/grub${_SPEC_UEFI_ARCH}.efi" && "${_DETECTED_UEFI_SECURE_BOOT}" == "1" ]]; then
|
elif [[ -e "${DESTDIR}/${UEFISYS_MP}/EFI/BOOT/grub${_SPEC_UEFI_ARCH}.efi" && "${_UEFI_SECURE_BOOT}" == "1" ]]; then
|
||||||
do_secureboot_keys || return 1
|
do_secureboot_keys || return 1
|
||||||
do_mok_sign
|
do_mok_sign
|
||||||
do_pacman_sign
|
do_pacman_sign
|
||||||
|
@ -962,7 +943,7 @@ install_bootloader_uefi() {
|
||||||
_EFISTUB_MENU_LABEL="EFISTUB"
|
_EFISTUB_MENU_LABEL="EFISTUB"
|
||||||
_EFISTUB_MENU_TEXT="EFISTUB for ${_UEFI_ARCH} UEFI"
|
_EFISTUB_MENU_TEXT="EFISTUB for ${_UEFI_ARCH} UEFI"
|
||||||
fi
|
fi
|
||||||
if [[ "${_DETECTED_UEFI_SECURE_BOOT}" == "1" ]]; then
|
if [[ "${_UEFI_SECURE_BOOT}" == "1" ]]; then
|
||||||
do_grub_uefi
|
do_grub_uefi
|
||||||
else
|
else
|
||||||
DIALOG --menu "Which ${_UEFI_ARCH} UEFI bootloader would you like to use?" 9 55 3 \
|
DIALOG --menu "Which ${_UEFI_ARCH} UEFI bootloader would you like to use?" 9 55 3 \
|
||||||
|
@ -987,9 +968,7 @@ install_bootloader() {
|
||||||
select_source || return 1
|
select_source || return 1
|
||||||
fi
|
fi
|
||||||
prepare_pacman
|
prepare_pacman
|
||||||
detect_uefi_boot
|
if [[ "${_UEFI_BOOT}" == "1" ]]; then
|
||||||
do_uefi_setup_env_vars
|
|
||||||
if [[ "${_DETECTED_UEFI_BOOT}" == "1" ]]; then
|
|
||||||
install_bootloader_uefi
|
install_bootloader_uefi
|
||||||
else
|
else
|
||||||
if [[ "${RUNNING_ARCH}" == "aarch64" || "${RUNNING_ARCH}" == "riscv64" ]]; then
|
if [[ "${RUNNING_ARCH}" == "aarch64" || "${RUNNING_ARCH}" == "riscv64" ]]; then
|
||||||
|
|
|
@ -155,33 +155,11 @@ locale_gen() {
|
||||||
|
|
||||||
# set GUID (gpt) usage
|
# set GUID (gpt) usage
|
||||||
set_guid() {
|
set_guid() {
|
||||||
GUIDPARAMETER="0"
|
|
||||||
detect_uefi_boot
|
|
||||||
# all uefi systems should use GUID layout
|
# all uefi systems should use GUID layout
|
||||||
if [[ "${_DETECTED_UEFI_BOOT}" == "1" ]]; then
|
if [[ "${_UEFI_BOOT}" == "0" ]]; then
|
||||||
GUIDPARAMETER="1"
|
|
||||||
else
|
|
||||||
## Lenovo BIOS-GPT issues - Arch Forum - https://bbs.archlinux.org/viewtopic.php?id=131149 , https://bbs.archlinux.org/viewtopic.php?id=133330 , https://bbs.archlinux.org/viewtopic.php?id=138958
|
## Lenovo BIOS-GPT issues - Arch Forum - https://bbs.archlinux.org/viewtopic.php?id=131149 , https://bbs.archlinux.org/viewtopic.php?id=133330 , https://bbs.archlinux.org/viewtopic.php?id=138958
|
||||||
## Lenovo BIOS-GPT issues - in Fedora - https://bugzilla.redhat.com/show_bug.cgi?id=735733, https://bugzilla.redhat.com/show_bug.cgi?id=749325 , http://git.fedorahosted.org/git/?p=anaconda.git;a=commit;h=ae74cebff312327ce2d9b5ac3be5dbe22e791f09
|
## Lenovo BIOS-GPT issues - in Fedora - https://bugzilla.redhat.com/show_bug.cgi?id=735733, https://bugzilla.redhat.com/show_bug.cgi?id=749325 , http://git.fedorahosted.org/git/?p=anaconda.git;a=commit;h=ae74cebff312327ce2d9b5ac3be5dbe22e791f09
|
||||||
#shellcheck disable=SC2034
|
#shellcheck disable=SC2034
|
||||||
DIALOG --yesno "You are running in BIOS/MBR mode.\n\nDo you want to use GUID Partition Table (GPT)?\n\nIt is a standard for the layout of the partition table on a physical storage disk. Although it forms a part of the Unified Extensible Firmware Interface (UEFI) standard, it is also used on some BIOS systems because of the limitations of MBR aka msdos partition tables, which restrict maximum disk size to 2 TiB.\n\nWindows 10 and later versions include the capability to use GPT for non-boot aka data disks (only UEFI systems can boot Windows 10 and later from GPT disks).\n\nAttention:\n- Please check if your other operating systems have GPT support!\n- Use this option for a GRUB(2) setup, which should support LVM, RAID\n etc., which doesn't fit into the usual 30k MS-DOS post-MBR gap.\n- BIOS-GPT boot may not work in some Lenovo systems (irrespective of the\n bootloader used). " 0 0 && GUIDPARAMETER="1"
|
DIALOG --yesno "You are running in BIOS/MBR mode.\n\nDo you want to use GUID Partition Table (GPT)?\n\nIt is a standard for the layout of the partition table on a physical storage disk. Although it forms a part of the Unified Extensible Firmware Interface (UEFI) standard, it is also used on some BIOS systems because of the limitations of MBR aka msdos partition tables, which restrict maximum disk size to 2 TiB.\n\nWindows 10 and later versions include the capability to use GPT for non-boot aka data disks (only UEFI systems can boot Windows 10 and later from GPT disks).\n\nAttention:\n- Please check if your other operating systems have GPT support!\n- Use this option for a GRUB(2) setup, which should support LVM, RAID\n etc., which doesn't fit into the usual 30k MS-DOS post-MBR gap.\n- BIOS-GPT boot may not work in some Lenovo systems (irrespective of the\n bootloader used). " 0 0 && _GUIDPARAMETER="1"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
detect_uefi_secure_boot() {
|
|
||||||
_DETECTED_UEFI_SECURE_BOOT="0"
|
|
||||||
if [[ "${_DETECTED_UEFI_BOOT}" == "1" ]]; then
|
|
||||||
_SECUREBOOT_VAR_VALUE="$(efivar -n 8be4df61-93ca-11d2-aa0d-00e098032b8c-SecureBoot 2>/dev/null | tail -n -1 | awk '{print $2}')"
|
|
||||||
_SETUPMODE_VAR_VALUE="$(efivar -n 8be4df61-93ca-11d2-aa0d-00e098032b8c-SetupMode 2>/dev/null | tail -n -1 | awk '{print $2}')"
|
|
||||||
if [[ "${_SECUREBOOT_VAR_VALUE}" == "01" ]] && [[ "${_SETUPMODE_VAR_VALUE}" == "00" ]]; then
|
|
||||||
_DETECTED_UEFI_SECURE_BOOT="1"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
detect_uefi_boot() {
|
|
||||||
_DETECTED_UEFI_BOOT="0"
|
|
||||||
[[ -e "/sys/firmware/efi" ]] && _DETECTED_UEFI_BOOT="1"
|
|
||||||
detect_uefi_secure_boot
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,6 @@ destdir_mounts(){
|
||||||
# Run mountpoints, if nothing is mounted on ${DESTDIR}
|
# Run mountpoints, if nothing is mounted on ${DESTDIR}
|
||||||
if [[ "${PART_ROOT}" == "" ]]; then
|
if [[ "${PART_ROOT}" == "" ]]; then
|
||||||
DIALOG --msgbox "Setup couldn't detect mounted partition(s) in ${DESTDIR}, please set mountpoints first." 0 0
|
DIALOG --msgbox "Setup couldn't detect mounted partition(s) in ${DESTDIR}, please set mountpoints first." 0 0
|
||||||
detect_uefi_boot
|
|
||||||
mountpoints || return 1
|
mountpoints || return 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -383,7 +382,7 @@ _mkfs() {
|
||||||
#shellcheck disable=SC2155
|
#shellcheck disable=SC2155
|
||||||
local _fslabel="$(getfslabel "${_device}")"
|
local _fslabel="$(getfslabel "${_device}")"
|
||||||
|
|
||||||
if [[ "${_DETECTED_UEFI_BOOT}" == "1" ]]; then
|
if [[ "${_UEFI_BOOT}" == "1" ]]; then
|
||||||
#shellcheck disable=SC2155
|
#shellcheck disable=SC2155
|
||||||
local _partuuid="$(getpartuuid "${_device}")"
|
local _partuuid="$(getpartuuid "${_device}")"
|
||||||
#shellcheck disable=SC2155
|
#shellcheck disable=SC2155
|
||||||
|
@ -404,7 +403,7 @@ _mkfs() {
|
||||||
_device="LABEL=${_fslabel}"
|
_device="LABEL=${_fslabel}"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
if [[ "${_DETECTED_UEFI_BOOT}" == "1" ]]; then
|
if [[ "${_UEFI_BOOT}" == "1" ]]; then
|
||||||
if [[ "${NAME_SCHEME_PARAMETER}" == "PARTUUID" ]]; then
|
if [[ "${NAME_SCHEME_PARAMETER}" == "PARTUUID" ]]; then
|
||||||
if [[ -n "${_partuuid}" ]]; then
|
if [[ -n "${_partuuid}" ]]; then
|
||||||
_device="PARTUUID=${_partuuid}"
|
_device="PARTUUID=${_partuuid}"
|
||||||
|
@ -425,7 +424,7 @@ _mkfs() {
|
||||||
# _GUID_VALUE:
|
# _GUID_VALUE:
|
||||||
# get real device name from lsblk first to get GUID_VALUE from blkid
|
# get real device name from lsblk first to get GUID_VALUE from blkid
|
||||||
_GUID_VALUE="$(${_BLKID} -p -i -s PART_ENTRY_TYPE -o value "$(${_LSBLK} NAME,UUID,LABEL,PARTLABEL,PARTUUID | grep "$(echo "${_device}" | cut -d"=" -f2)" | cut -d" " -f 1)")"
|
_GUID_VALUE="$(${_BLKID} -p -i -s PART_ENTRY_TYPE -o value "$(${_LSBLK} NAME,UUID,LABEL,PARTLABEL,PARTUUID | grep "$(echo "${_device}" | cut -d"=" -f2)" | cut -d" " -f 1)")"
|
||||||
if ! [[ "${_GUID_VALUE}" == "933ac7e1-2eb4-4f13-b844-0e14e2aef915" && "${_mountpoint}" == "/home" || "${_GUID_VALUE}" == "0657fd6d-a4ab-43c4-84e5-0933c84b4f4f" && "${_mountpoint}" == "swap" || "${_GUID_VALUE}" == "c12a7328-f81f-11d2-ba4b-00a0c93ec93b" && "${_mountpoint}" == "/boot" && "${_DETECTED_UEFI_BOOT}" == "1" || "${_mountpoint}" == "/" ]]; then
|
if ! [[ "${_GUID_VALUE}" == "933ac7e1-2eb4-4f13-b844-0e14e2aef915" && "${_mountpoint}" == "/home" || "${_GUID_VALUE}" == "0657fd6d-a4ab-43c4-84e5-0933c84b4f4f" && "${_mountpoint}" == "swap" || "${_GUID_VALUE}" == "c12a7328-f81f-11d2-ba4b-00a0c93ec93b" && "${_mountpoint}" == "/boot" && "${_UEFI_BOOT}" == "1" || "${_mountpoint}" == "/" ]]; then
|
||||||
if [[ "${_mountoptions}" == "" ]]; then
|
if [[ "${_mountoptions}" == "" ]]; then
|
||||||
echo -n "${_device} ${_mountpoint} ${_fstype} defaults 0 " >>/tmp/.fstab
|
echo -n "${_device} ${_mountpoint} ${_fstype} defaults 0 " >>/tmp/.fstab
|
||||||
else
|
else
|
||||||
|
|
|
@ -79,7 +79,6 @@ update_environment() {
|
||||||
DIALOG --infobox "Packages are already in pacman cache. Continuing in 3 seconds ..." 3 70
|
DIALOG --infobox "Packages are already in pacman cache. Continuing in 3 seconds ..." 3 70
|
||||||
sleep 3
|
sleep 3
|
||||||
else
|
else
|
||||||
detect_uefi_boot
|
|
||||||
UPDATE_ENVIRONMENT=""
|
UPDATE_ENVIRONMENT=""
|
||||||
if [[ "$(grep -w MemTotal /proc/meminfo | cut -d ':' -f2 | sed -e 's# ##g' -e 's#kB$##g')" -gt "2571000" ]]; then
|
if [[ "$(grep -w MemTotal /proc/meminfo | cut -d ':' -f2 | sed -e 's# ##g' -e 's#kB$##g')" -gt "2571000" ]]; then
|
||||||
if ! [[ "${RUNNING_ARCH}" == "riscv64" ]]; then
|
if ! [[ "${RUNNING_ARCH}" == "riscv64" ]]; then
|
||||||
|
|
|
@ -138,7 +138,7 @@ partition() {
|
||||||
[[ "${DISC}" == "DONE" ]] && break
|
[[ "${DISC}" == "DONE" ]] && break
|
||||||
MSDOS_DETECTED=""
|
MSDOS_DETECTED=""
|
||||||
if ! [[ "${DISC}" == "" ]]; then
|
if ! [[ "${DISC}" == "" ]]; then
|
||||||
if [[ "${GUIDPARAMETER}" == "1" ]]; then
|
if [[ "${_GUIDPARAMETER}" == "1" ]]; then
|
||||||
CHECK_BIOS_BOOT_GRUB=""
|
CHECK_BIOS_BOOT_GRUB=""
|
||||||
CHECK_UEFISYS_PART=""
|
CHECK_UEFISYS_PART=""
|
||||||
RUN_CFDISK="1"
|
RUN_CFDISK="1"
|
||||||
|
|
Loading…
Reference in a new issue