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