关于Linux系统启动自动加载模块

故事缘由

某应用服务器搬迁至另一机柜,涉及需要重启服务器相关应用服务。

其中包括keepalived服务,此服务启动会自动检测系统自带模块ipvs模式是否加载,如果未启动,会在系统日志中频繁写入日志,最终导致磁盘被日志填满。

以上问题都是有ipvs模块未在系统启动之后自动加载导致。

由此大家开始对于系统模块自动加载开始分析

系统启动流程

  1. 读取服务器硬件信息,载入BIOS的硬件信息,并取得第一个开机装置的代号
  2. 读取第一个开机装置的MBR的bootLoader(/etc/grub.conf)的开机信息
  3. 载入系统内核(Kernel)信息,解压Kernel,尝试驱动硬件
  4. 内核(Kernel)执行init(/etc/inittab)程序并获得run-lebel信息(如3或5)
  5. 开始初始化(init)执行/etc/rc.d/rc.sysinit
  6. 启动内核外挂模块(/etc/modprobe.conf)
  7. 初始化(init)执行run-level的各种Scripts,启动系统及自启动的应用服务
  8. 初始化(init)执行/etc/rc.d/rc.local
  9. 执行/bin/login,等待用户Login
  10. 用户登录Login后进入Shell

模块自动启动

系统启动后自己调用部分模块,但是这些模块都是必须加载,有部分已经写入内核但是未加载的模块,不是必须的,比如ipvs模块。

模块地址:/lib/modules/`uname-r`/kernel/net/netfilter/ipvs

如果要让系统启动之后自己加载此类模块,其实系统已经有了说明。

打开/etc/rc.d/rc.sysinit文件

  1. # Load other user-defined modules  
  2. for file in /etc/sysconfig/modules}  
  3.     module=${module%.ko}  
  4.     modprobe $module >/dev/null 2>&1  
  5.     done  
  6. fi  

重启服务器,进行测试(lsmod | grep ipvs)


原文:http://1k8k.com/?p=414

另一篇类似文章:http://ocelot1985-163-com.iteye.com/blog/980711

你可能感兴趣的:(关于Linux系统启动自动加载模块)