From a09ac8ebf2ecc46818f819a663981510571a2f27 Mon Sep 17 00:00:00 2001 From: David P Date: Fri, 8 Mar 2019 22:03:11 -0300 Subject: [openrc isos] use refind-efi as UEFI Boot Manager The standard systemd ISOs use systemd-boot as its UEFI Boot Manager, however, we don't want that in an OpenRC ISO. rEFInd is the perfect replacement for this, the (not-yet launched) resulting ISOs boot in the basic text of this boot manager. Tested with QEMU using Tianocore's OVMF (without Secure Boot). Note that the refind.conf file includes files under entry/, which is not sctrictly necessary since it can be merged everything into that file, however, I preferred to maintain the systemd-boot filenames (although in the future this might change) Signed-off-by: David P --- configs/lxde-openrc/build.sh | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) (limited to 'configs/lxde-openrc/build.sh') diff --git a/configs/lxde-openrc/build.sh b/configs/lxde-openrc/build.sh index 93e198b..6b4f88c 100755 --- a/configs/lxde-openrc/build.sh +++ b/configs/lxde-openrc/build.sh @@ -85,7 +85,7 @@ make_packages() { # Needed packages for x86_64 EFI boot make_packages_efi() { - setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman.conf" -D "${install_dir}" -p "efitools" install + setarch ${arch} mkparabolaiso ${verbose} -w "${work_dir}/${arch}" -C "${work_dir}/pacman.conf" -D "${install_dir}" -p "efitools refind-efi" install } # Copy mkinitcpio parabolaiso hooks and build initramfs (airootfs) @@ -173,14 +173,18 @@ make_efi() { cp ${work_dir}/x86_64/airootfs/usr/share/efitools/efi/PreLoader.efi ${work_dir}/iso/EFI/boot/bootx64.efi cp ${work_dir}/x86_64/airootfs/usr/share/efitools/efi/HashTool.efi ${work_dir}/iso/EFI/boot/ - mkdir -p ${work_dir}/iso/loader/entries - cp ${script_path}/efiboot/loader/loader.conf ${work_dir}/iso/loader/ - cp ${script_path}/efiboot/loader/entries/uefi-shell-v2-x86_64.conf ${work_dir}/iso/loader/entries/ - cp ${script_path}/efiboot/loader/entries/uefi-shell-v1-x86_64.conf ${work_dir}/iso/loader/entries/ + cp ${work_dir}/x86_64/airootfs/usr/share/refind/refind_x64.efi ${work_dir}/iso/EFI/boot/loader.efi + mkdir -p ${work_dir}/iso/EFI/boot/drivers_x64/ + cp ${work_dir}/x86_64/airootfs/usr/share/refind/drivers_x64/*.efi ${work_dir}/iso/EFI/boot/drivers_x64/ + + mkdir -p ${work_dir}/iso/EFI/boot/entries + cp ${script_path}/efiboot/EFI/boot/refind.conf ${work_dir}/iso/EFI/boot/ + cp ${script_path}/efiboot/EFI/boot/entries/uefi-shell-v2-x86_64.conf ${work_dir}/iso/EFI/boot/entries/ + cp ${script_path}/efiboot/EFI/boot/entries/uefi-shell-v1-x86_64.conf ${work_dir}/iso/EFI/boot/entries/ sed "s|%PARABOLAISO_LABEL%|${iso_label}|g; s|%INSTALL_DIR%|${install_dir}|g" \ - ${script_path}/efiboot/loader/entries/parabolaiso-x86_64-usb.conf > ${work_dir}/iso/loader/entries/parabolaiso-x86_64.conf + ${script_path}/efiboot/EFI/boot/entries/parabolaiso-x86_64-usb.conf > ${work_dir}/iso/EFI/boot/entries/parabolaiso-x86_64.conf # EFI Shell 2.0 for UEFI 2.3+ curl -o ${work_dir}/iso/EFI/shellx64_v2.efi https://raw.githubusercontent.com/tianocore/edk2/edk2-stable201811/ShellBinPkg/UefiShell/X64/Shell.efi @@ -212,14 +216,18 @@ make_efiboot() { cp ${work_dir}/x86_64/airootfs/usr/share/efitools/efi/PreLoader.efi ${work_dir}/efiboot/EFI/boot/bootx64.efi cp ${work_dir}/x86_64/airootfs/usr/share/efitools/efi/HashTool.efi ${work_dir}/efiboot/EFI/boot/ - mkdir -p ${work_dir}/efiboot/loader/entries - cp ${script_path}/efiboot/loader/loader.conf ${work_dir}/efiboot/loader/ - cp ${script_path}/efiboot/loader/entries/uefi-shell-v2-x86_64.conf ${work_dir}/efiboot/loader/entries/ - cp ${script_path}/efiboot/loader/entries/uefi-shell-v1-x86_64.conf ${work_dir}/efiboot/loader/entries/ + cp ${work_dir}/x86_64/airootfs/usr/share/refind/refind_x64.efi ${work_dir}/efiboot/EFI/boot/loader.efi + mkdir -p ${work_dir}/efiboot/EFI/boot/drivers_x64/ + cp ${work_dir}/x86_64/airootfs/usr/share/refind/drivers_x64/*.efi ${work_dir}/efiboot/EFI/boot/drivers_x64/ + + mkdir -p ${work_dir}/efiboot/EFI/boot/entries + cp ${script_path}/efiboot/EFI/boot/refind.conf ${work_dir}/efiboot/EFI/boot/ + cp ${script_path}/efiboot/EFI/boot/entries/uefi-shell-v2-x86_64.conf ${work_dir}/efiboot/EFI/boot/entries/ + cp ${script_path}/efiboot/EFI/boot/entries/uefi-shell-v1-x86_64.conf ${work_dir}/efiboot/EFI/boot/entries/ sed "s|%PARABOLAISO_LABEL%|${iso_label}|g; s|%INSTALL_DIR%|${install_dir}|g" \ - ${script_path}/efiboot/loader/entries/parabolaiso-x86_64-cd.conf > ${work_dir}/efiboot/loader/entries/parabolaiso-x86_64.conf + ${script_path}/efiboot/EFI/boot/entries/parabolaiso-x86_64-cd.conf > ${work_dir}/efiboot/EFI/boot/entries/parabolaiso-x86_64.conf cp ${work_dir}/iso/EFI/shellx64_v2.efi ${work_dir}/efiboot/EFI/ cp ${work_dir}/iso/EFI/shellx64_v1.efi ${work_dir}/efiboot/EFI/ -- cgit v1.2.2