Move grub files from /EFI/BOOT/ to /boot/grub/ on ISO 9660
-
mkarchiso: add more details to the comment in grub-embed.cfg
Link to the upstream issue report.
-
Do not duplicate grub.cfg in efiboot.img
Instruct the embeded grub.cfg to search for a volume with a
/.disk/%UUID_SEARCH_FILENAME%.uuid
file and load/EFI/BOOT/grub.cfg
from it.This avoid duplicating GRUB configuration files in two places (ISO 9660 and FAT) and ensures there is no confusion about which is the correct configuration file.
Since nothing besides EFI binaries is copied to
efibootimg
, the_make_common_bootmode_grub_copy_to_efibootimg
function is removed.Fixes #208 (closed)
-
Move grub files from /EFI/BOOT/ to /boot/grub/ on ISO 9660
Move the location of GRUB files so that there is boot-platform (BIOS vs EFI) neutral place for GRUB-specific files (e.g. configuration files, background images, etc.).
The EFI binaries are obviosly staying in the default/fallback boot path
/EFI/BOOT/BOOT*.EFI
, otherwise there will be no UEFI booting.The /boot/grub/ directory will be used to store BIOS (i386-pc) GRUB bootsector images, if we get to that.
It is also a requirement for implementing
loopback.cfg
support, since the file's path must be/boot/grub/loopback.cfg
.Implements #206 (closed)
-
configs/*/grub/grub.cfg: reuse ARCHISO_HINT and ARCHISO_UUID passed from the embedded grub.cfg
The
grub.cfg
embedded in the GRUB binaries already setsARCHISO_HINT
andARCHISO_UUID
in most cases. To avoid performing the same searches multiple times, use the existing variables.To avoid performing the same searches multiple times, use the existing variables.
-
mkarchiso: write grubenv in _make_common_bootmode_grub_cfg
Add all variables that we replace with values in configuration files.
Keep
${isofs_dir}/${install_dir}/grubenv
with fewer variables for backwards compatibility. It will be removed in the future. -
Move the .uuid file to /boot/grub/YYYY-mm-dd-HH-MM-SS-00.uuid
To prevent the file from being accidentally missed when someone copies the ISO's contents, let's not place it in a directory that starts with a dot. Since all GRUB related files are in /boot/grub/, put it there too.
Instead of using a more unique UUID for the file name, use
YYYY-mm-dd-HH-MM-SS-00.uuid
which matches the ISO's modification date, i.e. its "UUID". If multiple ISOs would be generated in the exact same second, the ISO 9660 modification date (i.e. its "UUID") would be the same, so there would be not way to distinguish between the volumes anyway. This also makes the file look less suspicious to the casual glance.
Depends on !306 (merged).