====== grub禁用驱动 ======
===== 1. 临时黑名单(本次启动) =====
在 GRUB 菜单出现时:
1. 选中要启动的 Linux 内核
2. 按 **`e`** 编辑启动项
3. 找到以 `linux` 或 `linuxefi` 开头的那一行,例如:
linux /vmlinuz-... root=/dev/mapper/xxx ro ...
4. 在末尾添加:
module_blacklist=驱动名
例如禁止 `nouveau`:
linux /vmlinuz-... root=/dev/mapper/xxx ro quiet module_blacklist=nouveau
多个驱动用逗号分隔:
module_blacklist=nouveau,radeon
然后按 **Ctrl+X** 或 **F10** 启动。
---
===== 2. 永久加入 GRUB =====
编辑:
/etc/default/grub
找到:
GRUB_CMDLINE_LINUX="..."
加入:
module_blacklist=nouveau
例如:
GRUB_CMDLINE_LINUX="rhgb quiet module_blacklist=nouveau"
然后重新生成 GRUB 配置。
**RHEL/CentOS/Rocky/AlmaLinux:**
grub2-mkconfig -o /boot/grub2/grub.cfg
如果是 UEFI 系统,某些发行版需要:
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
**Ubuntu/Debian:**
update-grub
然后重启:
reboot
---
===== 3. 验证驱动是否被禁止 =====
例如禁止 `nouveau`:
cat /proc/cmdline
确认里面有:
module_blacklist=nouveau
再检查模块:
lsmod | grep nouveau
正常情况下应该没有输出。
也可以:
modinfo nouveau
注意:`modinfo` 能查到并不代表驱动已经加载,判断是否加载主要看:
lsmod
---
===== 4. 还有一种常见写法:`rd.driver.blacklist` =====
如果你是在 **initramfs 阶段**就想禁止驱动,尤其是 RHEL/CentOS/Rocky 这类系统,通常建议同时使用:
rd.driver.blacklist=nouveau module_blacklist=nouveau
例如:
GRUB_CMDLINE_LINUX="rhgb quiet rd.driver.blacklist=nouveau module_blacklist=nouveau"
区别简单理解:
| 参数 | 作用 |
| `module_blacklist=xxx` | 禁止内核模块加载 |
| `rd.driver.blacklist=xxx` | 禁止 initramfs 阶段加载 |
| `modprobe.blacklist=xxx` | 通过 modprobe 机制禁止加载 |