您的位置:首页 > 运维架构 > Linux

Linux 开机启动流程

2011-05-18 21:26 330 查看
1.加电自检

我们知道整个主机在开机的时候,第一个被读取的地方, 就是 BIOS ( Basic Input Output System ) 啦,这个 BIOS 里面记录了主机板的芯片组与相关的设定, 例如 CPU 与接口设备的沟通频率啊、开机装置的搜 寻顺序啊、硬盘的大小与类型啊、 系统时间啊、各周边总线的是否启动 Plug and Play (PnP, 随插即用装置) 啊 、 各接口设备的 I/O 地址啊、以及与 CPU 沟通的 IRQ 岔断等等的信息都记录在此, 所以 啰,系统要顺利的开机,首先就是要去读取 BIOS 的相关设定值了。 读取了 BIOS 设定值之后,系统会根据 BIOS 的数据,进行开机自我测试 (power on self test, POST), 然后开始执行硬件侦测的初始化,并设定 PnP 装置,之后再定义出可开机的装置, 之后就会开始进行开机装置的数据读取了 (MBR 相关的任务开始。

2.bootloader:引导加载器 (windows下用fisk /mbr)

早期的Linux 用的引导加载器叫LILO(Linux loader)只能加载1024柱面以内的磁盘分区对大硬盘支持不好,多用于嵌入式。现在被性能更强的GRUB(GRand Unified Bootloader)代替。

GRUB 分为两段式引导

一个段是MBR上前446byte 第一段找到第二段/boot/grub/stage2 还有一点五段用于表示不同的分区类型grub.conf

内核一定在/boot 中

系统启动第三步

内核初始化

1.硬件设备探测

2.initrd文件,从中加载额外的设备驱动。

3.以只读的方式挂载根文件系统

4.装载init进程 进程号1,在/sbin/init

以上内核初始化信息,都会保存在/var/log/dmesg

/etc/inittab:主要包括一下几个步骤

1.设定默认运行级别

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

3.执行指定运行级别下的每一个启动脚本 etc/rc.d /etc/rc.d/rc /etc/rc.d/rcN.d

4.设定ctrl+alt+del组合键功能

5.设定电源故障时要执行的脚本

6.设定要启动的虚拟控制台 /dev/tty[0-6]

7.设定当指定运行级别为5时做gui的初始化脚本

inittab分四段 简介14:55 /etc/rc.d/rc.sysinit

1段.设置项目

2段 运行级别

3init的操作行为

4段.命令项目执行的命令或脚本

/etc/rc.d/rc.sysinit

1.激活udev和selinux

2.设置内核参数,会读取/etc/sysctl.conf

3.设置系统时钟

4.装载键盘映射

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

6.设置主机名称,

7.根文件系统检查(检查文件的一致性状态),以读写方式挂载根文件系统

8.激活RAID和LVM设备

9.启用磁盘配额

10.检查并挂载其他的文件系统 /etc/fstab

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

/etc/rc.local 在启动系统过程的最后定义一些自己想启动的服务
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: