我有一台运行 Debian 5 的 HP ProLiant 服务器。重启后,它无法调出任何接口。如果我运行ifup eth0
,它会给出一个错误,提示设备不存在。(它有 4 个 Broadcom NetXtreme II 接口。)我确认它有一个 bnx2 驱动程序 ( lsmod | grep bnx2
)。然后我尝试卸载并重新加载驱动程序 ( rmmod bnx2 && modprobe bnx2
),我的接口突然就正常工作了!现在我可以ifup eth0
毫无问题地使用了。
但重新启动后,同样的问题仍然存在。
我的问题是,有人可以推测一下是什么原因导致 .ko 在重启后无法工作,但在卸载并重新加载后却可以正常工作吗?
我猜是 NIC 硬件的某种计时问题,或者是另一个 .ko 的依赖问题。有什么办法可以解决它,让它在重启后正确启动吗?
答案1
对于 Debian 系统,您只需添加模块名称/etc/initramfs-tools/modules
,然后运行update-initramfs -k all -u
答案2
似乎与 NIC 不兼容有关。您使用的是什么 Linux 发行版?
bnx2
我在 SUSE Linux 上遇到了同样的问题。我通过添加模块/etc/sysconfig/kernel
并重新生成新的 initrd使其正常工作
如果你的发行版是 SuSE,请添加bnx2
到INITRD_MODULE
列表中,然后使用以下命令重新创建一个新的 initrdmkinitrd
INITRD_MODULES="cciss jbd ext3 scsi_mod bnx2"