首页 > 代码库 > linux开机流程、模块管理与Loader(再续)

linux开机流程、模块管理与Loader(再续)

1./etc/sysconfig/目录简介:

1)authconfig:这个档案主要在规范使用者的身份认证机制,包括是否使用本机/etc/passwd,/etc/shadow密码记录使用何种加密算法,还有是否使用外部密码服务器提供的账号验证等,以及/etc/shadow密码记录使用何种加密算法,还有是否使用外部密码服务器提供的账号验证(NIS,LDAP)等。系统默认使用MD5加密算法,并且不使用外部身份验证机制

2)clock:设定linux主机的时区,基本上,在clock档案内的设定项目ZONE所参考的时区位于/usr/share/zoneinfo目录下的相对路径中。

3)i18n:设定语系

4)keyboard&mouse:设定鼠标和键盘的形式

5)network:设定是都启动网络,以及设定主机名和网管(GATEWAY)

6)network-scripts/:设定网络卡

2.切换runlevel的方法:

1)修改/etc/inittab中,“id:数字:initdefault:”里的数字[0-6]

2)通过init [0-6]暂时变更系统的runlevel

3.runlevel:显示当前的运行级别

4./lib/modules/$(uname -r)/kernel简介:

1)arch:与硬件平台相关的项目,例如CPU的等级等等

2)crypto:核心所支持的加密技术,例如md5或者des等

3)drivers:一些硬件的驱动程序,例如显示适配器,网络卡,PCI相关硬件等等

4)fs:核心所支持的filesystem

5)net:与网络有关的各项协议数据,还有防火墙模块(net/ipv4/betfilter/*)等

6)sound:与音效有关的各项模块

5.depmod [-Ane]:/lib/modules/$(uname -r)/modules.dep记录在核心支持的模块的各项相依性。该指令就是建立这个档案,参数

1)-A:不加任何参数时,depmod会主动的去分析目前核心的模块,并且重新写入/lib/modules/$(uname -r)/modules.dep当中,若加入-A参数时,则depmod会去搜索比modules.dep内还要新的模块,如果真找到新模块,才会更新

2)-n:不写如modules.dep内,而是将结果输出到屏幕上

3)-e:显示出目前已加载的不可执行的模块名称。

6.lsmod:显示已经存在于核心的模块,显示内容包括有:

1)模块名称(Module)

2)模块大小(Size)

3)此模块是否被其他模块所使用(Used by)

7.modinfo [-adln] [module_name|filename]:查看模块的信息,参数,

1)-a:仅列出作者名称

2)-d:仅列出改modules的说明

3)-l:仅列出授权(license)

4)-n:仅列出该模块的详细路径

8.insmod [fullpath/module_name] [params]:由使用者自行加载一个完整的文件名模块

9.modprobe:主动搜寻modules.dep的内容,会先克服模块的相依性才决定需要加载的模块有哪些。

10.rmmod [-fw] module_name:删除模块,参数,

1)-f:强制删除模块,不管师父正被使用

2)-w:若该模块正被使用,则rmmod会等待该模块被使用完毕后,才会移除他

11.modprobe [-lcfr] module_name:模块加载相关指令,参数,

1)-c:列出目前系统所有的模块

2)-l:列出目前在/lib/modules/`uname -r`/kernel当中的所有模块完整文件名

3)-f:强制加载该模块

4)-r:类似rmmod,就是移除某个模块

 12.grub(开机管理程序)的优点:

  1)认识与支持较多的文件系统,并且可以使用grub的主程序直接在在文件系统中搜寻核心档名

  2)开机的时候,可以自行编辑与修改开机设定项目,雷士bash的指令模式

  3)可以动态搜寻配置文件,而不需要在修改配置文件后重新安装grub。亦即我们只要修改完/boot/grub/menu.lst(grub的配置文件)里头的设定后,下次开机就生效了

 13./boot/grub/menu.lst文件解读:

  default=0:默认开机选项,使用第一个开机选项

  timeout=5:若5秒为动键盘,则使用默认开机选项

  splashimage=(hd0,0)/grub/splash.xpm.gz:背景图片所在的档案

  hiddenmenu:读秒期间是否显示完整的选单画面(预设隐藏),如果想要显示选单把这行注释掉即可

  第一个选单的内容:

  title CentOS (2.6.18-92.el5) 

  root (hd0,0)

  kernel /vmlinuz-2.6.18-92.el5 ro root=LABEL=/1 rhgb quiet 

  initrd /initrd-2.6.18-92.el5.img

14.initrd:提供开机过程中所需要的最重要的核心模块,以让系统开机过程可以顺利完成。initrd可以将/lib/modules/...内的开机过程中一定需要的模块包成一个档案(档名就是initrd),然后在开机时透过主机的INT 13硬件功能将该档案读出来解压缩,并且initrd在内存会仿真成为根目录,由于此虚拟文件系统(Initial RAM Disk)主要包含磁盘与文件系统的模块,因此我们的核心最后就能够认识实际的磁盘,那就能够进行实际的根目录的挂载。

一般需要initrd的情况为:

根目录所在磁盘为 SATA、USB 戒 SCSI 等连接接口;

根目录所在文件系统为 LVM, RAID 等特殊格弅;

根目录所在文件系统为非传统 Linux 讣识的文件系统时;

其他必须要在核心加载时提供的模块。

15.mkinitrd [-v] [--with=模块名称] initrd 文件名 核心档名。版本:制作initrd,参数,

1)-v:显示mkinitrd的运作过程

2)--with=模块名称:模块名称值得是模块的名字而已,不需要填写。目前核心版本的 ext3 文件系统模块为底下的文件名: /lib/modules/$(uname -r)/kernel/fs/ext3/ext3.ko 那妳应该要写成: --with=ext3 就好了 (省略 .ko)

3)initrd 档名:你所要建立的initrd档名,尽量取有意义又好记的名字

4)核心版本:某一核心版本,如果是目前的核心则是$(uname -r)

16.grub-inistall [--root-directory=DIR] INSTALL_DEVICE,参数:

1)--root-directory=DIR:DIR为实际目录,使用grub-install默认会将grub所有的档案都复制到/boot/grub/*,如果想要赋值到其他目录与装置去就得需要使用这个参数

2)INSTALL_DEVICE:安装得装置代号


本文出自 “虎哥的博客” 博客,请务必保留此出处http://7613577.blog.51cto.com/7603577/1604144

linux开机流程、模块管理与Loader(再续)