我不想让 grub“搜索”任何东西。我知道我的根文件系统在哪里,它会一直在那里 (/dev/sda1),而且我不希望 grub 去查看所有连接的驱动器以找到其他根(似乎总是发现错误一)。
我已经能够在内核加载行中禁用 UUID 使用:
GRUB_DISABLE_LINUX_UUID=true
Run Code Online (Sandbox Code Playgroud)
in /etc/default/grub
,但结果/boot/grub/grub.cfg
仍然有如下几行:
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 3f8c2b36-5d8f-40ac-9b63-7d1445805925
Run Code Online (Sandbox Code Playgroud)
我不想要那些。我不希望它来搜索在所有。我进一步关闭了“操作系统探测”:
GRUB_DISABLE_OS_PROBER=true
Run Code Online (Sandbox Code Playgroud)
这使它无法在其他连接的磁盘上找到我的系统的备份副本,但我不希望search
grub 中的任何命令实例,更不用说我已经告诉它不要使用的 UUID。
我讨厌咕噜。我只希望我的机器用 启动root=/dev/sda1
,而不用探测整个系统,不用寻找可能不存在的 UUID,什么都不用。就像 1999 年用 LILO 启动时那样。
如果不是因为 Ubuntu 使用 grub,我实际上会使用LILO 或 syslinux 或其他东西,因此如果我想跟上他们的内核更新,我几乎不得不使用它。我只是希望它是人类可能的最简单的配置(我知道它仍然会产生 200 行的 grub.cfg,但是很好)。
小智 5
这就是grub-mkconfig
工作原理:它会自动为它发现的每个内核创建 GRUB 菜单项。但是,如果您知道自己想要什么以及在做什么,则完全不需要使用Simple 配置,因为您可以grub.cfg
直接编写您的配置。
grub-mkconfig
确实有一些限制。虽然可以通过编辑/etc/grub.d/40_custom
或创建将额外的自定义菜单项添加到列表的末尾,但/boot/grub/custom.cfg
更改菜单项的顺序或更改其标题可能需要对存储在/etc/grub.d/
. 这在未来可能会得到改善。同时,grub.cfg
鼓励那些认为直接编写更容易的人这样做(请参阅 引导和类似 Shell 的脚本),并禁用其发行版提供的任何系统以自动运行 grub-mkconfig。
在那里,您可以只拥有一个菜单项(禁用菜单),并根据需要进行简单的设置。你可以说你想从这里启动这个内核,就是这样。
单个menuentry { }
可能是 5 行,而不是 200 行。
记住:
grub-mkconfig
从系统中禁用,则grub.cfg
每当您想更新内核时都需要手动更新。