快速业务通道

Linux如何在系统启动时自动加载模块

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-23

  下面是以前学习Linux时写的,后来仔细研究rc.sysinit后发现,只需要修改下列地方就可以了,不必这么麻烦的:

  rc.sysinit中有这样的一段代码:

  # Load other user-defined modules

  for file in /etc/sysconfig/modules/*.modules ; do

  [ -x $file ] && $file

  done

  # Load modules (for backward compatibility with VARs)

  if [ -f /etc/rc.modules ]; then

  /etc/rc.modules

  fi

  可见只需要配置两个地方的任何一个就可以了(以加载fuse内核模块为例)

  (1) 在/etc/sysconfig/modules/下面创建*.modules文件,参考已经有的*.modules文件,例如我写创建文件my.modules,内容为modprobe fuse

  记得chmod 755 my.modules

  (2) 或者在/etc/rc.modules里面加上modprobe fuse,没有的话创建该文件.

  然后reboot,lsmod | grep fuse验证一下就OK了.

  ==============

  Automatically load kernel modules:

  为搞清楚如何在系统启动时自动加载模块,搜索了好久,网上有很多人提出这个问题,但都没有正确的答案,无论是中文社区还是英文社区,大家的回答都没有讲到点子上,无非是围绕modprobe.conf、modprobe讲来讲去的,要不就是针对特定问题尝试不同的方法.有的还建议把modprobe modulename写入rc.local,却不曾想,rc.local的执行被放在整个启动顺序的很后面,而启动init.d下面定义的服务却在rc.local前面,那么如果某个服务要用这个模块,就不行了.

  在测试LVS时,我的Fedora7的Kernel(2.6.21-1)缺省没有加载ip_vs模块,而内核中已经包含编译好的IPVS相关的模块了,放在:/lib/modules/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/下面,有:

  /lib/modules/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs.ko

  /lib/modules/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs_dh.ko

  /lib/modules/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs_ftp.ko

  /lib/modules/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs_lblc.ko

  /lib/modules/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs_lblcr.ko

  /lib/modules/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs_lc.ko

  /lib/modules/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs_nq.ko

  /lib/modules/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs_rr.ko

  /lib/modules/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs_sed.ko

  /lib/modules/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs_sh.ko

  /lib/modules/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs_wlc.ko

  /lib/modules/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs_wrr.ko

  其中ip_vs.ko是IPVS的基本模块,不加载IPVS就不能工作(运行ipvsadm会报错的),而其他的都是IPVS的调度算法或特定协议的辅助模块,需要时则须加载.

  如果系统运行时手动加载则需:modprobe ip_vs 和modprobe ip_vs_sh等.

  要了解如何在系统启动时自动加载模块(Automatically load kernel modules),就得先了解系统是如阿启动的,启动的过程中按什么顺序做了什么,怎么做的,这些启动操作都有那些文件和脚本控制.Google和Baidu出来的东西都解决不了问题,man modprobe和man modprobe.conf发现并不是需要修改的文件.

  于是温习鸟哥的linux.vbird.org/">http://linux.vbird.org/“开机关机流程与Loader”:

  1. 整个开机流程是

  (1) 载入BIOS的硬件信息,并取得第一个开机装置的代号

  (2)读取第一个开机装置的MBR的boot Loader (grub)的开机信息

  (3)载入OS Kernel信息,解压Kernel,尝试驱动硬件

  (4)

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号