导航:首页 > 操作系统 > linux开机加载模块

linux开机加载模块

发布时间:2024-02-27 19:17:01

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

为搞清楚如何在系统启动时自动加载模块,搜索了好久,网上有很多人提出这个问题,但都没有正确的答案。大家的回答都没有讲到点子上,无非是围绕modprobe.conf、modprobe讲来讲去的,要不就是针对特定问题尝试不同的方法。有的还建议把modprobe molename写入rc.local,却不曾想rc.local的执行被放在整个启动顺序的很后面,而启动init.d下面定义的服务却在rc.local前面,那么如果某个服务要用这个模块,就不行了。 在测试LVS时,因为我的Fedora7的Kernel(2.6.21-1)缺省没有加载ip_vs模块,而内核中已经包含编译好的IPVS相关的模块了,放在:/lib/moles/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/下面,有: /lib/moles/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs.ko /lib/moles/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs_dh.ko /lib/moles/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs_ftp.ko /lib/moles/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs_lblc.ko /lib/moles/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs_lblcr.ko /lib/moles/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs_lc.ko /lib/moles/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs_nq.ko /lib/moles/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs_rr.ko /lib/moles/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs_sed.ko /lib/moles/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs_sh.ko /lib/moles/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs_wlc.ko /lib/moles/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/ip_vs_wrr.ko 其中ip_vs.ko是IPVS的基本模块,不加载IPVS就不能工作(运行ipvsadm会报错的),而其他的都是IPVS的调度算法或特定协议的辅助模块,需要时则须加载。 要了解如何在系统启动时自动加载模块(Automatically load kernel moles),就得先了解系统是如何启动的,启动的过程中按什么顺序做了什么,怎么做的,这些启动操作都有那些文件和脚本控制。整个开机流程是: (1) 载入BIOS的硬件信息,并取得第一个开机装置的代号 (2)读取第一个开机装置的MBR的boot Loader (grub)的开机信息 (3)载入OS Kernel信息,解压Kernel,尝试驱动硬件 (4) Kernel执行init程序并获得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看来正确的方式是把需要加载的模块放在(5)或(6),我修改了/etc/rc.d/rc.sysinit就成功加载了。初步尝试在rc.sysinit最后增加 modprobe.conf ip_vs,重启后lsmod | grep ip_vs,发现成功自动加载了。于是仿效rc.sysinit中其他模块的加载方法,扩展改脚本文件,在最后增加下来一段: # load LVS IPVS moles if [ -d /lib/moles/$unamer/kernel/net/ipv4/ipvs ]; then for mole in /lib/moles/$unamer/kernel/net/ipv4/ipvs/* ; do mole=${mole##*/} mole=${mole%.ko} modprobe $mole >/dev/null 2>&1 done fi就把/lib/moles/2.6.21-1.3194.fc7/kernel/net/ipv4/ipvs/下的所有模块都自动加载。

阅读全文

与linux开机加载模块相关的资料

热点内容
切换pdf 浏览:90
iturns下载的app在哪里 浏览:637
云起书院App在哪里 浏览:612
怎么对hex文件进行加密 浏览:282
pdf少年时 浏览:951
两个同名文件夹同步 浏览:628
拍照文件夹哪个好用 浏览:87
文件夹和书包 浏览:508
解压归档拿登记证 浏览:221
去体验解压房 浏览:611
单片机一键中断响应 浏览:644
唐浩明pdf 浏览:842
程序员土木 浏览:71
android如何与web服务器交互 浏览:609
苹果小风扇app怎么下 浏览:956
杭州it程序员对身体好不好 浏览:535
高新区编程加盟找哪家 浏览:31
服务器什么样的好卖 浏览:150
单片机原理及应用第二版例题答案 浏览:970
base64encoderjava 浏览:493