要想在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文件,其实是错误的。这个文件仅仅是定义一些内核模块的别名、以及一些特殊的加载、卸载命令。修改此文件并不能使模块在启动时被自动加载。
本文参考了http://www.centos.org/modules/newbb/viewtopic.php?topic_id=15303&forum=37&post_id=53665。
“在CentOS启动时自动加载内核模块”的一个回复