如果你需要在 CentOS 系统启动时自动加载内核模块,可以在 /etc/sysconfig/modules/ 目录下创建一个脚本,让它在启动阶段执行加载操作。
下面是一个实际可用的示例脚本,命名为 8021q.modules,用于在 CentOS 5.3 环境中自动加载 802.1Q 模块:
#!/bin/sh
/sbin/modinfo -F filename 8021q > /dev/null 2>&1
if [ $? -eq 0 ]; then
/sbin/modprobe 8021q
fi
脚本逻辑很简单:先用 modinfo 确认模块文件是否存在,如果返回成功,再调用 modprobe 进行加载。
将脚本放入该目录后,记得赋予可执行权限。重启系统后,模块就会自动生效。
网上有些教程建议修改 /etc/rc.local,但这在某些场景下并不稳妥。因为 rc.local 的执行时机较晚,如果在它之前运行的服务依赖该模块,可能会导致启动报错。
还有说法是修改 /etc/modprobe.conf,这其实也不对。该文件主要用于定义别名或特殊参数,并不能触发模块的自动加载。

