3f95d391ef
Search for `/.disk/%UUID_SEARCH_FILENAME%.uuid` and pass the UUID of the volume it's on as `archisodevice`. mkarchiso will replace `%UUID_SEARCH_FILENAME%` with a hardcoded value generated using `SOURCE_DATE_EPOCH` durring ISO build. This allows to prepare an UEFI bootable installation medium by simply copying the directory structure without having to touch `grub.cfg`. Relying on the volume UUID instead of its LABEL also avoids collisions of multiple ISOs created in the same month. Fixes #202
41 lines
1.1 KiB
INI
41 lines
1.1 KiB
INI
# Load partition table and file system modules
|
|
insmod part_gpt
|
|
insmod part_msdos
|
|
insmod fat
|
|
insmod iso9660
|
|
|
|
# Use graphics-mode output
|
|
insmod all_video
|
|
insmod font
|
|
if loadfont "${prefix}/fonts/unicode.pf2" ; then
|
|
insmod gfxterm
|
|
set gfxmode="auto"
|
|
terminal_input console
|
|
terminal_output gfxterm
|
|
fi
|
|
|
|
# Enable serial console
|
|
if serial --unit=0 --speed=115200; then
|
|
terminal_input --append serial
|
|
terminal_output --append serial
|
|
fi
|
|
|
|
# Search for the ISO volume
|
|
regexp --set=1:ARCHISO_HINT '^\(([^)]+)\)' "${cmdpath}"
|
|
search --no-floppy --set=root --file '/.disk/%UUID_SEARCH_FILENAME%.uuid' --hint "${ARCHISO_HINT}"
|
|
probe --set ARCHISO_UUID --fs-uuid "${root}"
|
|
|
|
# Set default menu entry
|
|
default=archlinux
|
|
timeout=15
|
|
timeout_style=menu
|
|
|
|
|
|
# Menu entries
|
|
|
|
menuentry "Arch Linux (x86_64, UEFI)" --class arch --class gnu-linux --class gnu --class os --id 'archlinux' {
|
|
set gfxpayload=keep
|
|
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisodevice=/dev/disk/by-uuid/${ARCHISO_UUID}
|
|
initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
|
|
}
|