在 Fedora 31 中处理默认 kernelopts 的正确方法是什么?

P1z*_*h3n 5 fedora grub2 grub2-mkconfig

我正在运行 Fedora 31,当我安装它时 (F29),我将该选项添加mem_sleep_default=deepGRUB_CMDLINE_LINUX_DEFAULT/etc/default/grub. 现在我想删除该选项,但发现了这样的文件:

GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX=""
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
Run Code Online (Sandbox Code Playgroud)

我记得还有很多类似rd.lvm.lv或 的选项rd.luks.uuid,幸运的是仍然存在/boot/efi/EFI/fedora/grub.cfg,但我在其他地方找不到它们。

我认为自从升级到 F30 或 F31 以来,情况可能会发生变化。我还注意到这GRUB_ENABLE_BLSCFG=true可能意味着现在事情的处理方式有所不同。我读到我不应该grub2-mkconfig再使用 grubby 来更改 kernelopts。但我担心失去所有我认为重要的内核优化。

那么处理这个问题的正确方法是什么?

Ste*_*itt 5

我相信推荐的方法是使用grubby

\n\n
grubby --update-kernel=ALL --args="mem_sleep_default=deep"\n
Run Code Online (Sandbox Code Playgroud)\n\n

将给定的参数添加到内核命令行,并且

\n\n
grubby --update-kernel=ALL --remove-args=mem_sleep_default\n
Run Code Online (Sandbox Code Playgroud)\n\n

将删除它。

\n\n

grubby最大限度地减少所做的更改,并且在更新内核参数时,上述内容将保留其他参数(基于用于引导当前运行的内核的参数)。

\n\n

/etc/default/grub\xe2\x80\x99不一定是启动参数的参考文件;您应该查看 EFI 系统上的 AFAICT /boot/efi/EFI/fedora/grubenv(或者更确切地说,/boot/grub2/grubenv)。

\n\n

请参阅Fedora wiki 上的GRUB 2 wiki 页面以获取一些补充信息。

\n