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

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

本文以创作共用版权协议发布,转载本文要求遵循“署名-非商业性使用-相同方式共享3.0”的创作共用协议,并以链接形式指明本文地址。

本文链接地址: https://blog.easwy.com/archives/auto-load-kernel-module-on-boot-in-centos/

你可能感兴趣的:(linux编程,运维)