在 Grub 中加入禁用 Nvidia Driver 的启动项
#Linux在我的上一台没有核显的 Diy 主机上,Nvidia 驱动对我的 Linux 使用造成了很大的困扰。最近购入了一台带有核显的笔记本,决定在一部分情况下选择启动禁用 Nvidia 驱动程序的系统。
🎯 目标
给同一个系统添加两个 GRUB 启动项,一个用正常内核参数,另一个加参数禁用 Nvidia 驱动。
✅ 核心解决方案
① 手动编辑 /etc/grub.d/40_custom
这是 GRUB 官方提供的“自定义启动项”配置文件,不会被系统升级覆盖。
|
|
示例配置:
|
|
⚠️ 注意:
root=UUID=...写你的实际 根分区 UUIDlinux、initrd路径通常/vmlinuz-linux和/initramfs-linux.img,你也可以用/boot/vmlinuz-*绝对路径module_blacklist=...禁用显卡驱动 不要使用modprobe.blacklist=...- 你也可以加其他参数,如
nomodeset、nvidia_drm.modeset=0(部分情况有用)
我的配置
如果原本就对 /etc/default/grub 有所修改,建议编写 /etc/grub.d/40_custom 时参考 /boot/grub/grub.cfg 。
|
|
可以参考一下我的配置文件:
|
|
为什么不是modprobe.blacklist=?
- 这只阻止了内核自动加载这些模块,
但 Arch Linux 很可能通过
initramfs预加载了nvidia,也可能initramfs里已经有nvidia模块了,导致无效。 - 第一次禁用参数时,我踩了这个坑,启动后发现运行
nvidia-smi仍然正常,说明模块已经载入了。于是求助ChatGPT,得到了上面的第一条解释。
② 生成 grub 配置
添加好后,更新 grub:
|
|
③ 启动效果
下次启动时,你会看到两个启动项:
- 一个正常启动
- 一个禁用了 Nvidia 驱动

倒数第二个启动项启动后没有nvidia驱动
(Nvidia-smi 没有成功运行,驱动禁用成功)