Use systemd-boot-manager for systemd-boot

merge-requests/273/head
Chrysostomus 5 years ago
parent 1a118dcbbc
commit ad77c79647

@ -538,54 +538,11 @@ install_systemd_boot() {
# Check if already installed. If so, just add entries
if $(arch_chroot "bootctl status" 2>&1 >/dev/null | grep -q "systemd-boot not installed"); then
arch_chroot "bootctl --path=${UEFI_MOUNT} install" 2>$ERR
basestrap ${MOUNTPOINT} systemd-boot-manager
arch_chroot "sdboot-manage setup" 2>$ERR
check_for_error "systemd-boot" $?
[[ $? -eq 0 ]] && touch /tmp/.newsystemdboot
fi
# Deal with LVM Root
if [[ $(echo $ROOT_PART | grep "/dev/mapper/") != "" ]]; then
bl_root=$ROOT_PART
else
bl_root="PARTUUID=$(blkid -s PARTUUID ${ROOT_PART} | sed 's/.*=//g' | sed 's/\"//g')"
fi
# 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
arch_chroot "pacman -Ql $(cat /tmp/.chosen_kernels)" | awk '/vmlinuz/ {print $2}' | sed 's~/boot/vmlinuz-~~g' > /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
# generate appropriate kernel options
if [ $(findmnt --real --list -n -o FSTYPE ${MOUNTPOINT}) == "zfs" ]; then
SDBOOT_OPTIONS="zfs=$(findmnt -ln -o SOURCE ${MOUNTPOINT}) rw"
else
SDBOOT_OPTIONS="root=${bl_root} rw"
fi
# create the entries
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\t${SDBOOT_OPTIONS}" > "${MOUNTPOINT}${UEFI_MOUNT}/loader/entries/manjaro-$kernel.conf" && echo "${MOUNTPOINT}${UEFI_MOUNT}/loader/entries/manjaro-$kernel.conf" >> /tmp/.sysdconfd
echo -e "title\tManjaro Linux $kernel\nlinux\t/vmlinuz-$kernel\ninitrd\t/intel-ucode.img\ninitrd\t/initramfs-$kernel-fallback.img\noptions\t${SDBOOT_OPTIONS}" > "${MOUNTPOINT}${UEFI_MOUNT}/loader/entries/manjaro-$kernel-fallback.conf" && echo "${MOUNTPOINT}${UEFI_MOUNT}/loader/entries/manjaro-$kernel-fallback.conf" >> /tmp/.sysdconfd
else
echo -e "title\tManjaro Linux $kernel\nlinux\t/vmlinuz-$kernel\ninitrd\t/initramfs-$kernel.img\noptions\t${SDBOOT_OPTIONS}" > "${MOUNTPOINT}${UEFI_MOUNT}/loader/entries/manjaro-$kernel.conf" && echo "${MOUNTPOINT}${UEFI_MOUNT}/loader/entries/manjaro-$kernel.conf" >> /tmp/.sysdconfd
echo -e "title\tManjaro Linux $kernel\nlinux\t/vmlinuz-$kernel\ninitrd\t/initramfs-$kernel-fallback.img\noptions\t${SDBOOT_OPTIONS}" > "${MOUNTPOINT}${UEFI_MOUNT}/loader/entries/manjaro-$kernel-fallback.conf" && echo "${MOUNTPOINT}${UEFI_MOUNT}/loader/entries/manjaro-$kernel-fallback.conf" >> /tmp/.sysdconfd
fi
done
# Finally, amend kernel conf files for LUKS and BTRFS
sysdconf=$(cat /tmp/.sysdconfd)
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)

Loading…
Cancel
Save