doti/system/limine.sh
Robin Bärtschi 8240c33ef0 a lot more
scripts in system/ are for setting up the system
2025-07-05 23:58:51 +02:00

27 lines
1006 B
Bash
Executable File

#!/usr/bin/env bash
. "std.sh"
info "Bootloader setup"
pacinstall jq
pacinstall efibootmgr
disk_part=$(lsblk -o NAME,PARTN --noheadings --json | jq -r '.blockdevices | map(select(.children != null)) | map(. as $disk | .children | .[] | "\($disk.name) \(.partn)") | .[]' | fzf --prompt="boot device> ")
disk=$(echo $disk_part | cut -d" " -f1)
part=$(echo $disk_part | cut -d" " -f2)
root_part=$(lsblk -o KNAME,NAME --json | jq -r '.blockdevices | map(select(.children != null)) | .[].children.[].kname | "/dev/\(.)"' | fzf --prompt="root device> ")
uuid=$(sudo blkid "${root_part}" -o json | jq -r .uuid)
sudo sh -c "sed "s/@UUID@/${uuid}/" ./system/limine.conf > /boot/EFI/limine/limine.conf"
sudo mkdir -p /boot/EFI/limine/
sudo cp /usr/share/limine/BOOTX64.EFI /boot/EFI/limine/BOOTX64.EFI
efibootmgr --create "${disk}" --part "${part}" --label "Archl" --loader '\EFI\limine\BOOTX64.EFI' --unicode
sudo cp ./system/99-limine.hook /etc/pacman.d/hooks/99-limine.hook
info "Bootloader setup done"