====== 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 机制禁止加载 |