c8474f8dbe
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 in UTC,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.
89 lines
2.6 KiB
INI
89 lines
2.6 KiB
INI
# Load partition table and file system modules
|
|
insmod part_gpt
|
|
insmod part_msdos
|
|
insmod fat
|
|
insmod iso9660
|
|
insmod ntfs
|
|
insmod ntfscomp
|
|
insmod exfat
|
|
insmod udf
|
|
|
|
# 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
|
|
if [ -z "${ARCHISO_UUID}" ]; then
|
|
if [ -z "${ARCHISO_HINT}" ]; then
|
|
regexp --set=1:ARCHISO_HINT '^\(([^)]+)\)' "${cmdpath}"
|
|
fi
|
|
search --no-floppy --set=root --file '%ARCHISO_SEARCH_FILENAME%' --hint "${ARCHISO_HINT}"
|
|
probe --set ARCHISO_UUID --fs-uuid "${root}"
|
|
fi
|
|
|
|
# Set default menu entry
|
|
default=archlinux
|
|
timeout=15
|
|
timeout_style=menu
|
|
|
|
# GRUB init tune for accessibility
|
|
play 600 988 1 1319 4
|
|
|
|
# Menu entries
|
|
|
|
menuentry "Arch Linux install medium (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/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
|
|
}
|
|
|
|
menuentry "Arch Linux install medium with speakup screen reader (x86_64, UEFI)" --hotkey s --class arch --class gnu-linux --class gnu --class os --id 'archlinux-accessibility' {
|
|
set gfxpayload=keep
|
|
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisodevice=/dev/disk/by-uuid/${ARCHISO_UUID} accessibility=on
|
|
initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img
|
|
}
|
|
|
|
if [ "${grub_platform}" == "efi" ]; then
|
|
if [ "${grub_cpu}" == "x86_64" ]; then
|
|
menuentry "Run Memtest86+ (RAM test)" --class memtest86 --class gnu --class tool {
|
|
set gfxpayload=800x600,1024x768
|
|
linux /boot/memtest86+/memtest.efi
|
|
}
|
|
menuentry "UEFI Shell" {
|
|
insmod chain
|
|
chainloader /shellx64.efi
|
|
}
|
|
elif [ "${grub_cpu}" == "i386" ]; then
|
|
menuentry "UEFI Shell" {
|
|
insmod chain
|
|
chainloader /shellia32.efi
|
|
}
|
|
fi
|
|
|
|
menuentry 'UEFI Firmware Settings' --id 'uefi-firmware' {
|
|
fwsetup
|
|
}
|
|
fi
|
|
|
|
menuentry "System shutdown" --class shutdown --class poweroff {
|
|
echo "System shutting down..."
|
|
halt
|
|
}
|
|
|
|
menuentry "System restart" --class reboot --class restart {
|
|
echo "System rebooting..."
|
|
reboot
|
|
}
|