Grub2
/etc/grub.d/41_custom 應該如何工作?
我在問,因為文件 /boot/grub/grub.cfg 的片段看起來像
### BEGIN /etc/grub.d/41_custom ### if [ -f ${config_directory}/custom.cfg ]; then source ${config_directory}/custom.cfg elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then source $prefix/custom.cfg; fi ### END /etc/grub.d/41_custom ###
我不明白,這應該如何工作,因為 grub2 中沒有“源”命令 - 請參閱
http://www.gnu.org/software/grub/manual/grub.html
source 如果是 /bin/sh shell 的命令。
我認為,這個片段應該包括 ${config_directory}/custom.cfg
在建構 /boot/grub/grub.cfg (使用 grub-mkconfig)期間:
[user@localhost ~]$ cat /etc/grub.d/41_custom #!/bin/sh cat <<EOF if [ -f \${config_directory}/custom.cfg ]; then source \${config_directory}/custom.cfg elif [ -z "\${config_directory}" -a -f \$prefix/custom.cfg ]; then source \$prefix/custom.cfg; fi EOF
但事實並非如此!
它只是使用“源”命令插入文本…
這是從命令映射到 modulename.mod 的描述
http://blog.fpmurphy.com/2010/06/grub2-modules.html?output=pdf
grep -E "^source" /boot/grub/i386-pc/command.lst source: configfile grep -E "^\.:" /boot/grub/i386-pc/command.lst .: configfile
這是函式程式碼:http:
//git.savannah.gnu.org/cgit/grub.git/tree/grub-core/commands/configfile.c#n61
所以,“source” 只是 grub2 的一個無證命令
gnu.org 網站上的 Grub 2.02 手冊在 16.3.71 的“命令行和菜單條目命令”部分提供了“源”命令的文件。因此,到 2017 年 4 月 25 日——目前版本的 Grub 手冊的日期——源命令已記錄在案,我現在發現它在目前 Linux MINT 19 發行版的 /etc/grub.d/41_custom 文件中使用。