Systemd-boot integrations

merge-requests/273/head
Chrysostomus 7 years ago
parent 0dbd9c4d0c
commit 9082eba258

@ -360,9 +360,9 @@ uefi_bootloader() {
DIALOG " $_InstUefiBtTitle " --menu "\n$_bootloaderInfo\n " 0 0 3 \
"1" "grub" \
"2" "refind" 2>/tmp/.bootloader
# \
# "3" "systemd-boot"
"2" "refind" \
"3" "systemd-boot" 2>/tmp/.bootloader
case $(cat /tmp/.bootloader) in
"1") install_grub_uefi
;;
@ -426,6 +426,8 @@ install_refind()
if [[ "$(cat /sys/block/${root_device}/removable)" == 1 ]]; then
refind-install --root /mnt --alldrivers --yes 2>$ERR
check_for_error "refind-install --root /mnt --alldrivers --yes" $?
# Remove autodetect hook
sed -i -e '/^HOOKS=/s/\ autodetect//g' /mnt/etc/mkinitcpio.conf
elif [[ $LUKS == 1 ]]; then
refind-install --root /mnt --alldrivers --yes 2>$ERR
check_for_error "refind-install --root /mnt --alldrivers --yes" $?
@ -482,11 +484,11 @@ install_systemd_boot() {
else
bl_root="PARTUUID=$(blkid -s PARTUUID ${ROOT_PART} | sed 's/.*=//g' | sed 's/\"//g')"
fi
# Create default config files. First the loader
echo -e "default manjaro\ntimeout 10" > ${MOUNTPOINT}${UEFI_MOUNT}/loader/loader.conf 2>$ERR
# Create default config files. First the loader
echo /mnt/boot/initramfs-* | sed 's/\/mnt\/boot\/initramfs-//g' | sed 's/\.img//g' | xargs -n1 | grep -v "fallback" > /tmp/.kernels
echo -e "default manjaro-$(cat /tmp/.kernels | sort | tail -n1)\ntimeout 10" > ${MOUNTPOINT}${UEFI_MOUNT}/loader/loader.conf 2>$ERR
# Second, the kernel conf files
echo /mnt/boot/initramfs-* | sed 's/\/mnt\/boot\/initramfs-//g' | sed 's/\.img//g' > /tmp/.kernels
for kernel in $(cat /tmp/.kernels); do
if [[ -e /mnt/boot/intel-ucode.img ]]; then
echo -e "title\tManjaro Linux $kernel\nlinux\t/vmlinuz-$kernel\ninitrd\t/intel-ucode.img\ninitrd\t/initramfs-$kernel.img\noptions\troot=${bl_root} rw" > ${MOUNTPOINT}${UEFI_MOUNT}/loader/entries/manjaro-"$kernel".conf
@ -499,7 +501,20 @@ install_systemd_boot() {
sysdconf=$(ls ${MOUNTPOINT}${UEFI_MOUNT}/loader/entries/manjaro*.conf)
for i in ${sysdconf}; do
[[ $LUKS_DEV != "" ]] && sed -i "s~rw~$LUKS_DEV rw~g" ${i}
# Deal with btrfs subvolumes
if $(mount | awk '$3 == "/mnt" {print $0}' | grep btrfs | grep -qv subvolid=5) ; then
rootflag="rootflags=$(mount | awk '$3 == "/mnt" {print $6}' | sed 's/^.*subvol=/subvol=/' | sed -e 's/,.*$/,/p' | sed 's/)//g')"
sed -i "s|rw|rw $rootflag|g" ${i}
fi
done
# Check if the volume is removable. If so, dont use autodetect
root_name=$(mount | awk '/\/mnt / {print $1}' | sed s~/dev/mapper/~~g | sed s~/dev/~~g)
root_device=$(lsblk -i | tac | sed -n -e "/$root_name/,/disk/p" | awk '/disk/ {print $1}')
if [[ "$(cat /sys/block/${root_device}/removable)" == 1 ]]; then
# Remove autodetect hook
sed -i -e '/^HOOKS=/s/\ autodetect//g' /mnt/etc/mkinitcpio.conf
fi
DIALOG " $_InstUefiBtTitle " --infobox "\n$_SystdBReady\n " 0 0
sleep 2
}

@ -59,7 +59,12 @@ edit_configs() {
if [[ -e ${MOUNTPOINT}${UEFI_MOUNT}/EFI/refind/refind_linux.conf ]]; then
((i++))
options+=( $i "refind.conf" )
functions+=( "nano ${MOUNTPOINT}${UEFI_MOUNT}/EFI/refind/refind_linux.conf" )
functions+=( "nano ${MOUNTPOINT}${UEFI_MOUNT}/EFI/refind/refind.conf" )
fi
if [[ -e ${MOUNTPOINT}${UEFI_MOUNT}/loader/loader.conf ]]; then
((i++))
options+=( $i "systemd-boot" )
functions+=( "nano ${MOUNTPOINT}${UEFI_MOUNT}/loader/entries/*" )
fi
if [[ -e ${MOUNTPOINT}/etc/hostname ]]; then
((i++))

@ -534,7 +534,7 @@ final_check() {
# Check if bootloader is installed
if [[ $SYSTEM == "BIOS" ]]; then
arch_chroot "pacman -Qq grub" &> /dev/null || echo "- $_BootlCheck" >> ${CHECKLIST}
elif ! [[ -e ${MOUNTPOINT}${UEFI_MOUNT}/EFI/manjaro_grub/grubx64.efi ]] && ! [[ -e ${MOUNTPOINT}${UEFI_MOUNT}/EFI/refind/refind_x64.efi ]]; then
elif ! [[ -e ${MOUNTPOINT}${UEFI_MOUNT}/EFI/manjaro_grub/grubx64.efi ]] && ! [[ -e ${MOUNTPOINT}${UEFI_MOUNT}/EFI/refind/refind_x64.efi ]] && ! [[ -e ${MOUNTPOINT}${UEFI_MOUNT}/EFI/systemd/systemd-bootx64.efi ]]; then
echo "- $_BootlCheck" >> ${CHECKLIST}
fi

Loading…
Cancel
Save