CentOS启动时自动加载内核模块

时间:2024-01-10 22:14:44

要想在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

上面的脚本首先检查8021q模块文件是否存在,如果存在,则调用/sbin/modprobe命令加载此模块。

把这个文件放在/etc/sysconfig/modules/目录中,并为其增加可执行权限。这样,下次重启系统时,802.1Q模块就会被自动加载。

在网上有些文章建议在/etc/rc.local文件中增加modprobe命令,这样做在某些情况下工作会不正常。因为在启动时,/etc/rc.local在执行完rc.d目录中的程序后才执行,因此,如果在rc.d中的程序如果用到了所需加载的模块,就会出错。

另外有些文章提到修改/etc/modprobe.conf文件,其实是错误的。这个文件仅仅是定义一些内核模块的别名、以及一些特殊的加载、卸载命令。修改此文件并不能使模块在启动时被自动加载。