ubuntu重启禁止加载内核模块
在 Ubuntu 下可以通过 modprobe 黑名单机制 来实现。
1. 临时禁用(只对当前会话有效)
1 | sudo rmmod <模块名> # 卸载已加载的内核模块 |
但重启后还是会再次加载。
2. 永久禁用(推荐)
Ubuntu 用的是 modprobe 配置。方法:
步骤:
新建一个 blacklist 配置文件:
1
sudo nano /etc/modprobe.d/blacklist-local.conf
添加需要屏蔽的模块,例如:
1
2blacklist nouveau
blacklist r8169blacklist <模块名>表示禁止自动加载。如果模块会被 initramfs 提前加载(比如显卡/网卡驱动),还需要 rebuild initramfs:
1
sudo update-initramfs -u
否则黑名单不会生效。
重启验证:
1
lsmod | grep <模块名>
3. 彻底禁止(强制)
有的模块即使 blacklisted,还会被手动加载。可以 硬性屏蔽:
方法一:install 空命令
在 /etc/modprobe.d/blacklist-local.conf 里写:
1 | install <模块名> /bin/true |
这样即使有人执行 modprobe <模块名>,也会什么都不做。
方法二:内核参数
某些驱动(如 nouveau)可以直接在内核启动参数中禁用:
编辑 /etc/default/grub,在 GRUB_CMDLINE_LINUX_DEFAULT 里加:
1 | modprobe.blacklist=nouveau,r8169 |
更新 grub:
1 | sudo update-grub |
🔥 总结:
- 只禁止自动加载 →
blacklist - 连手动加载都禁 →
install <mod> /bin/true - 内核启动时就禁 →
modprobe.blacklist=内核参数