grub.cfg 文件包含大部分 GRUB 配置。此外,如果要向 GRUB 配置添加更复杂的结构(例如,菜单项或其他脚本),则可以使用名为 custom.cfg 的可编辑文件。缺省情况下,系统上不存在此文件。您必须创建此文件,且此文件必须与 grub.cfg 和 menu.conf 文件位于同一位置,即位于 /pool-name/boot/grub/ 中。
GRUB 通过以下代码(位于 grub.cfg 文件的末尾)处理 custom.cfg 文件中的命令和任意定制项:
if [ -f $prefix/custom.cfg ]; then source $prefix/custom.cfg; fi
这些指令会指示 GRUB 检查在根池的顶层数据集的 boot/grub 子目录中是否存在 custom.cfg 文件。如果存在 custom.cfg 文件,GRUB 便会获取此文件并处理此文件中的任何命令,就像在 grub.cfg 文件中以文本方式插入内容。
在带有 64 位 UEFI 固件的系统上,此文件中的条目如下所示:
menuentry "Windows (64-bit UEFI)" { insmod part_gpt insmod fat insmod search_fs_uuid insmod chain search --fs-uuid --no-floppy --set=root cafe-f4ee chainloader /efi/Microsoft/Boot/bootmgfw.efi }
在带有 BIOS 固件的系统上,此文件中的条目如下所示:
menuentry "Windows" { insmod chain set root=(hd0,msdos1) chainloader --force +1 }