当黑名单失败时,如何仅在单用户启动时阻止加载内核模块?

Pro*_*kup 7 boot debian kernel-modules sysvinit

在“Linux debian 2.6.32-5-amd64 #1 SMP”安装中,需要在启动 sshd 后延迟加载内核模块 (mpt2sas) 并且用户可以远程登录,mpt2sas 模块被禁止加载单用户启动,通过:

$ echo 'blacklist mpt2sas' >> /etc/modprobe.d/mpt2sas.conf; depmod -aeF /boot/System.map-2.6.32-5-amd64; update-initramfs -u -k $(uname -r)
Run Code Online (Sandbox Code Playgroud)

稍后modeprobe -v mpt2sas将在 /etc/rc.local 中运行。

安装较新的 mpt2sas 驱动程序后,使用dpkg -i mpt2sas-15.00.00.00-3_Debian6.0.5.amd64.deb结果是旧驱动程序重命名/lib/modules/2.6.32-5-amd64/kernel/drivers/scsi/mpt2sas/mpt2sas.ko/lib/modules/2.6.32-5-amd64/kernel/drivers/scsi/mpt2sas/mpt2sas.ko.orig,新驱动程序安装在/lib/modules/2.6.32-5-amd64/weak-updates/mpt2sas/mpt2sas.ko.

副作用是blacklist mpt2sas in行/etc/modprobe.d/mpt2sas.conf 不再有任何影响,当在单用户引导过程中加载模块时,mpt2sas 作为第一个内核模块加载。

回归:

  • 我知道 /etc/modprobe.d/mpt2sas.conf 仍在加载,因为在此文件中输入错误行时,引导期间(4 次)在控制台上显示警告。
  • 跑步depmod -aeF /boot/System.map-2.6.32-5-amd64; update-initramfs -u -k -t $(uname -r); reboot并没有改善。
  • 添加内核引导参数modprobe.blacklist=mpt2sas并没有改善。

如何在单用户引导阶段阻止加载新的 mpt2sas 内核模块?(我仍然想modprobe在 /etc/rc.local 中使用加载 mpt2sas )。

Pro*_*kup 4

检查您的模块是否未在文件中列出/etc/modules该文件根据http://www.debian.org/doc/manuals/debian-faq/ch-kernel.en.html#s-modules列出了启动时必须加载的模块

当模块名称(本例中为 mpt2sas)在文件中列出时/etc/modules

  1. 删除该 mpt2sas 行或通过添加哈希值对其进行注释。行“ mpt2sas”变为“ #mpt2sas”。
  2. 更新 initramfs 映像文件:depmod -aeF /boot/System.map-$(uname -r) && update-initramfs -u -k $(uname -r) -t
  3. 并重新启动