快速业务通道

Linux 开机启动过程详解

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

l3:3:wait:/etc/rc.d/rc 3

l4:4:wait:/etc/rc.d/rc 4

l5:5:wait:/etc/rc.d/rc 5

l6:6:wait:/etc/rc.d/rc 6

使用rc脚本执行rc*.d目录内的脚本

目录/etc/rc*.d/中以S开头的表示进入该级别时要执行的脚本 K开头离开该级别时要关闭的脚本 这些脚本都为链接文件,真正的脚本位于/etc/init.d/下!

4:ca::ctrlaltdel:/sbin/shutdown -t3 -r now 设定CTRL ALT DEL组合键功能

5:pf::powerfail:/sbin/shutdown -f -h 2 "Power Failure; System Shutting Down" 电源故障处理

6:pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled" 电源重新恢复关机取消处理

7:

1:2345:respawn:/sbin/mingetty tty1

2:2345:respawn:/sbin/mingetty tty2

3:2345:respawn:/sbin/mingetty tty3

4:2345:respawn:/sbin/mingetty tty4

5:2345:respawn:/sbin/mingetty tty5

6:2345:respawn:/sbin/mingetty tty6 标示6个虚拟控制台,respawn:用户退出时虚拟控制台关闭再开启等待用户下一次进入

8:x:5:respawn:/etc/X11/prefdm -nodaemon 启动图形界面等待用户登录

系统初始化脚本/etc/rc.d/rc.sysinit

1 激活udev和selinux

2 设置内核启动参数 /etc/sysctl.conf

3 设置系统时钟

4 装载键盘映射

5 启用交换分区 (虚拟内存)

6 设置主机名称 /etc/sysconfig/network

7 根文件系统自检并重新以读写方式挂载根文件系统

8 激活RAID和LVM设备

9 启动磁盘配额

10 检查ing挂载其他文件系统 /etc/fstab

11 清除不再使用锁和PID文件

大家看过上面的文件信息后,我再重述一遍linux的开机启动过程,希望能是大家的思路更加清晰:

开机通电后,BIOS进行自检,并且自己获得一个设备启动号,也就是将MBR定义为第一个要启动的设备,BIOS自检完成就将控制权交给MBR,MBR分为两部分,第一部分446字节,它的唯一作用就是引导第二部分,也就是我们常用的grub,grub通过其菜单功能和指向功能让我们选择需要加载的内核.通过引导加载程序读取内核文件(我们的内核文件一般放在/boot/vmlinuz-servion)后,机器会将内核解压到主存,然后通过内核功能来进行设备检测.在内核加载过程中,系统只会以只读方式载入根目录,为了让某些功能能以文件方式来读取,在系统启动时,就需要用initrd建立虚拟盘(RAM disk),所在grub利用引导加载功能加载核心是,也会加载进initrd的映像文件/boot/initrd-****.img,然后内核会自动以initrd来建立虚拟盘,并且用initrd-***.img文件内的linuxrc(笔者系统里的该程序名字为init)程序来加载模块,内核驱动外部硬件的工作完成,虚拟盘删除.核心加载完成后,系统准备就绪,执行第一个进程/sbin/init,通过id:5:initdefault: 设置系统默认启动级别,通过si::sysinit:/etc/rc.d/rc.sysinit 执行系统初始化脚本,通过l*:*:wait:/etc/rc.d/rc * 使用rc脚本执行rc*.d目录和rc.local目录内脚本.(Redhat中的运行模式2、3、5都把/etc/rc.d/rc.local做为初始化脚本中的一个

至此整个系统启动完成!

下面思考下:我们想要在开机时自动运行一个命令,该如何实现呢?以cvslockd命令为例

1:在/etc/rc.d/init.d/目录下

#vim cvslockd

#!/bin/bash

/usr/local/bin/cvslockd 命令的全路径

为脚本添加执行权限

#chmod x /etc/rc.d/init.d/cvslockd

2:在文件/etc/inittab中查看系统的运行级别id:5:initdefault:,表示级别为5

3. 到/etc/rc.d/rc5.d目录下,把你要执行的可执行文件做一个软连接,在命名的时候要以大写S字母开头,S之后的数字大小代表执行顺序的先后,数字越大越后执行.

#ln -s /etc/rc.d/init.d/cvslockd /etc/rc5.d/S100cvslockd

#ln -s /etc/rc.d/init.d/cvslockd /

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号