我正在运行 Fedora 31,当我安装它时 (F29),我将该选项添加mem_sleep_default=deep
到GRUB_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
我记得还有很多类似rd.lvm.lv
或rd.luks.uuid
的选项,幸运的是仍然存在,/boot/efi/EFI/fedora/grub.cfg
但我在其他地方找不到它们。
我认为自从升级到 F30 或 F31 以来,情况可能会发生变化。我还注意到这GRUB_ENABLE_BLSCFG=true
可能意味着现在事情的处理方式有所不同。我读到我不应该grub2-mkconfig
再使用 grubby 来更改 kernelopts。但我担心失去所有我认为重要的内核优化。
那么处理这个问题的正确方法是什么?
答案1
我相信推荐的方法是使用grubby
:
grubby --update-kernel=ALL --args="mem_sleep_default=deep"
将给定的参数添加到内核命令行,并且
grubby --update-kernel=ALL --remove-args=mem_sleep_default
将删除它。
grubby
最大限度地减少所做的更改,并且在更新内核参数时,上述内容将保留其他参数(基于用于引导当前运行的内核的参数)。
/etc/default/grub
不一定是启动参数的参考文件;您应该查看 EFI 系统上的 AFAICT /boot/efi/EFI/fedora/grubenv
(或者更确切地说,/boot/grub2/grubenv
)。
看GRUB 2 维基页面在 Fedora wiki 上获取一些补充信息。