如何使 grub 配置持久化

如何使 grub 配置持久化

我最近在 Kali Linux 上做了一些调整,尝试安装nvidia图形驱动程序,但不得不禁用nouveau驱动程序。

  • 我尝试通过删除/etc/modprobe.d/blacklist-nouveau.conf和其他nvidia禁用的配置来恢复我的更改nouveau,但这不起作用。
  • 我启动到 grub 所在位置nouveau.modeset=0
  • 我删除了该行,然后启动它并update-grub重新启动,希望它能够持久,但事实并非如此。

我不知道为什么我所做的更改不持久,我该如何解决这个问题?

答案1

帧缓冲区显示驱动程序 ( module nouveau) 或驱动程序的内核部分nvidia( module nvidianvidia_modesetnvidia_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/grubupdate-grubgrub.cfg

相关内容