![如何使 grub 配置持久化](https://linux22.com/image/205994/%E5%A6%82%E4%BD%95%E4%BD%BF%20grub%20%E9%85%8D%E7%BD%AE%E6%8C%81%E4%B9%85%E5%8C%96.png)
我最近在 Kali Linux 上做了一些调整,尝试安装nvidia
图形驱动程序,但不得不禁用nouveau
驱动程序。
- 我尝试通过删除
/etc/modprobe.d/blacklist-nouveau.conf
和其他nvidia
禁用的配置来恢复我的更改nouveau
,但这不起作用。 - 我启动到 grub 所在位置
nouveau.modeset=0
。 - 我删除了该行,然后启动它并
update-grub
重新启动,希望它能够持久,但事实并非如此。
我不知道为什么我所做的更改不持久,我该如何解决这个问题?
答案1
帧缓冲区显示驱动程序 ( module nouveau
) 或驱动程序的内核部分nvidia
( module nvidia
、nvidia_modeset
和nvidia_drm
/或nvidia_uvm
) 通常在引导过程的早期加载,此时系统仍从 initramfs 运行。一旦安装了真正的根文件系统并且真正的根文件系统/etc
对内核可见,加载帧缓冲区驱动程序(的内核部分)的尝试就已经完成,并且不会自动重新尝试。
因此,在进行任何影响早期启动的配置更改后更新 initramfs 文件非常重要。由于 Kali 基于 Debian,因此该命令update-initramfs -u
应该几乎自动处理它。
该命令将复制任何相关的配置文件(包括目录update-initramfs -u
的内容/etc/modprobe.d/
因为它们在运行命令时存在)并将副本打包到 initramfs 文件中。
如果您
update-initramfs -u
作为驱动程序安装的一部分运行nvidia
(或者驱动程序安装为您运行了它),那么通过删除来恢复更改/etc/modprobe.d/blacklist-nouveau.conf
是不够的:initramfs 仍将包含黑名单,并且当显示驱动程序启动时它仍然会生效。已加载。以 root 身份运行update-initramfs -u
,通过更新 initramfs 文件以匹配/etc
.对内核启动选项的任何更改在 GRUB 内完成不会持久化:GRUB 的文件系统驱动程序都非常简单并且是只读的。将根据文件的内容和目录中的脚本
update-grub
重新创建实际的 GRUB 配置文件(在 Debian 和相关发行版中,基本上总是) 。要从内核启动选项中永久删除,您必须编辑,然后运行以重新创建该文件。/boot/grub/grub.cfg
/etc/default/grub
/etc/grub.d/
nouveau.modeset=0
/etc/default/grub
update-grub
grub.cfg