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

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

在“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)

稍后 amodeprobe -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

副作用是该行黑名单 mpt2sas/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)。

答案1

检查您的模块是否未在文件中列出/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. 并重新启动

答案2

将其添加到您的内核引导命令行(例如在 Grub 中,按下e并编辑内核引导参数):

modprobe.blacklist=mpt2sas

有关此内容的更多信息,请访问拱门维基

相关内容