时间可能不存在

没有追求的灵魂会很无趣

用户工具

站点工具


grub禁用驱动

**这是本文档旧的修订版!**

grub禁用驱动

1. 临时黑名单(本次启动)

在 GRUB 菜单出现时:

  1. 选中要启动的 Linux 内核
  2. 按 e 编辑启动项
  3. 找到以 linux 或 linuxefi 开头的那一行,例如:
snippet.text
linux /vmlinuz-... root=/dev/mapper/xxx ro ...
  1. 在末尾添加:
snippet.text
module_blacklist=驱动名

例如禁止 nouveau:

snippet.text
linux /vmlinuz-... root=/dev/mapper/xxx ro quiet module_blacklist=nouveau

多个驱动用逗号分隔:

snippet.text
module_blacklist=nouveau,radeon

然后按 Ctrl+X 或 F10 启动。


2. 永久加入 GRUB

编辑:

snippet.bash
/etc/default/grub

找到:

snippet.bash
GRUB_CMDLINE_LINUX="..."

加入:

snippet.bash
module_blacklist=nouveau

例如:

snippet.bash
GRUB_CMDLINE_LINUX="rhgb quiet module_blacklist=nouveau"

然后重新生成 GRUB 配置。

RHEL/CentOS/Rocky/AlmaLinux:

snippet.bash
grub2-mkconfig -o /boot/grub2/grub.cfg

如果是 UEFI 系统,某些发行版需要:

snippet.bash
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg

Ubuntu/Debian:

snippet.bash
update-grub

然后重启:

snippet.bash
reboot

3. 验证驱动是否被禁止

例如禁止 nouveau:

snippet.bash
cat /proc/cmdline

确认里面有:

snippet.text
module_blacklist=nouveau

再检查模块:

snippet.bash
lsmod | grep nouveau

正常情况下应该没有输出。

也可以:

snippet.bash
modinfo nouveau

注意:modinfo 能查到并不代表驱动已经加载,判断是否加载主要看:

snippet.bash
lsmod

4. 还有一种常见写法:`rd.driver.blacklist`

如果你是在 initramfs 阶段就想禁止驱动,尤其是 RHEL/CentOS/Rocky 这类系统,通常建议同时使用:

snippet.text
rd.driver.blacklist=nouveau module_blacklist=nouveau

例如:

snippet.bash
GRUB_CMDLINE_LINUX="rhgb quiet rd.driver.blacklist=nouveau module_blacklist=nouveau"

区别简单理解:

参数 作用
module_blacklist=xxx 禁止内核模块加载
rd.driver.blacklist=xxx 禁止 initramfs 阶段加载
modprobe.blacklist=xxx 通过 modprobe 机制禁止加载
grub禁用驱动.1787391409.txt.gz · 最后更改: 由 chenyang