Linux启动过程

启动过程图

技术分享

1、BIOS

A.post加电自检,检测电脑硬件

B.初始化,分配中断号;外部设备初始化和检测

C.读取CMOS信息,根据启动顺序加载引导驱动器的bootloader程序。交接工作给bootloader

2、MBR

解释:狭义理解为引导程序;广义理解为引导驱动器的第一扇区

第一扇区结构:

446

64

2

代码区(存储引导程序)

硬盘分区表DPT

标志位

 

3、Bootloadergrub

从预先编排好的清单中选择一个内核,用系统管理员指定好的参数来加载这个内核。系统启动交给kernel控制,grub可以引导有两(多)个内核的系统。

4、Kernel/initrd.img

a.系统初始化,加载各种模块

b.Initrd.img是一个虚拟文件系统(由内存虚拟而成的硬盘映像文件),目的是让内核在虚拟文件系统中执行某些文件,用来加载各种模块。同时,识别加载真实的硬盘文件系统。

c.在真正的文件系统上执行启动init进程

5、Init

a.运行 rc.sysinit 以便执行一些重要的系统初始化任务。在 RedHat 公司的 RHEL5 (RHEL6 已经使用 upstart )rc.sysinit 主要完成以下这些工作。

激活 udev 和 selinux

设置定义在/etc/sysctl.conf 中的内核参数

设置系统时钟

加载 keymaps

使能交换分区

设置主机名(hostname)

根分区检查和 remount

激活 RAID 和 LVM 设备

开启磁盘配额

检查并挂载所有文件系统

清除过期的 locks 和 PID 文件

b.运行/etc/rc.d/rc 脚本。根据不同的 runlevelrc 脚本将打开对应该 runlevel 的 rcX.d 目录(X 就是 runlevel),找到并运行存放在该目录下的所有启动脚本。每个 runlevel X 都有一个这样的目录,目录名为/etc/rc.d/rcX.d

c.运行/etc/rc.d/rc.local 脚本。


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。