Use the same file paths in both ISO 9660 and FAT

This allows to use only one systemd-boot configuration file per kernel.
Fixes https://gitlab.archlinux.org/archlinux/archiso/-/issues/44 .
This commit is contained in:
nl6720 2020-09-03 00:03:38 +03:00
parent 136152e672
commit 83e4cb9fb9
No known key found for this signature in database
GPG Key ID: 5CE88535E188D369
4 changed files with 11 additions and 19 deletions

View File

@ -500,8 +500,8 @@ _make_efi() {
sed "s|%ARCHISO_LABEL%|${iso_label}|g;
s|%INSTALL_DIR%|${install_dir}|g;
s|%ARCH%|${arch}|g" \
"${profile}/efiboot/loader/entries/archiso-x86_64-usb.conf" > \
"${isofs_dir}/loader/entries/archiso-x86_64.conf"
"${profile}/efiboot/loader/entries/archiso-x86_64-linux.conf" > \
"${isofs_dir}/loader/entries/archiso-x86_64-linux.conf"
# edk2-shell based UEFI shell
# shellx64.efi is picked up automatically when on /
@ -514,14 +514,15 @@ _make_efi() {
# Prepare kernel/initramfs on efiboot.img
_make_boot_on_fat() {
_msg_info "Preparing kernel and intramfs for the FAT file system..."
mmd -i "${isofs_dir}/EFI/archiso/efiboot.img" ::/EFI/archiso
mcopy -i "${isofs_dir}/EFI/archiso/efiboot.img" \
"${airootfs_dir}/boot/vmlinuz-linux" "${airootfs_dir}/boot/initramfs-linux.img" ::/EFI/archiso/
mmd -i "${isofs_dir}/EFI/archiso/efiboot.img" \
"::/${install_dir}" "::/${install_dir}/boot" "::/${install_dir}/boot/${arch}"
mcopy -i "${isofs_dir}/EFI/archiso/efiboot.img" "${airootfs_dir}/boot/vmlinuz-linux" \
"${airootfs_dir}/boot/initramfs-linux.img" "::/${install_dir}/boot/${arch}/"
if [[ -e "${airootfs_dir}/boot/intel-ucode.img" ]]; then
mcopy -i "${isofs_dir}/EFI/archiso/efiboot.img" "${airootfs_dir}/boot/intel-ucode.img" ::/EFI/archiso/
mcopy -i "${isofs_dir}/EFI/archiso/efiboot.img" "${airootfs_dir}/boot/intel-ucode.img" "::/${install_dir}/boot/"
fi
if [[ -e "${airootfs_dir}/boot/amd-ucode.img" ]]; then
mcopy -i "${isofs_dir}/EFI/archiso/efiboot.img" "${airootfs_dir}/boot/amd-ucode.img" ::/EFI/archiso/
mcopy -i "${isofs_dir}/EFI/archiso/efiboot.img" "${airootfs_dir}/boot/amd-ucode.img" "::/${install_dir}/boot/"
fi
_msg_info "Done!"
}
@ -544,8 +545,8 @@ _make_boot_uefi-x64.systemd-boot.esp() {
sed "s|%ARCHISO_LABEL%|${iso_label}|g;
s|%INSTALL_DIR%|${install_dir}|g;
s|%ARCH%|${arch}|g" \
"${profile}/efiboot/loader/entries/archiso-x86_64-cd.conf" \
| mcopy -i "${isofs_dir}/EFI/archiso/efiboot.img" - ::/loader/entries/archiso-x86_64.conf
"${profile}/efiboot/loader/entries/archiso-x86_64-linux.conf" \
| mcopy -i "${isofs_dir}/EFI/archiso/efiboot.img" - ::/loader/entries/archiso-x86_64-linux.conf
# shellx64.efi is picked up automatically when on /
if [[ -e "${airootfs_dir}/usr/share/edk2-shell/x64/Shell_Full.efi" ]]; then

View File

@ -1,9 +0,0 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
title Arch Linux install medium (x86_64, UEFI)
linux /EFI/archiso/vmlinuz-linux
initrd /EFI/archiso/intel-ucode.img
initrd /EFI/archiso/amd-ucode.img
initrd /EFI/archiso/initramfs-linux.img
options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%

View File

@ -2,4 +2,4 @@
# SPDX-License-Identifier: GPL-3.0-or-later
timeout 3
default archiso-x86_64.conf
default archiso-x86_64-linux.conf