1.BIOS 加电自检(Power-On-Self-Test)

这个过程是开机后,BIOS或UEFI进行硬件检查的阶段

2.MBR引导

自检硬件没有问题时候,BIOS将会直接去找硬盘的第一个扇区,找到前446字节,将MBR加载到内存中,MBR将告诉程序下一阶段去哪里找系统grub引导.

3.GRUB引导

开机启动的时候看到的Grub选项、信息,还有修改GRUB背景等功能读入/boot/grub/grub.conf或者menu.lst等配置文件

4.读取grub.conf文件

读取grub.conf文件以确定内核启动的参数,准备启动内核

5.启动内核

加载内核,核心开始解压缩,启动一些最核心的程序。 因为为了让内核足够轻小,硬件驱动并没有放在内核文件里面,我们可以看到内核很小,才4M左右,因此需要使用 /boot/initramfs-2.6.32-696.10.1.el6.x86_64.img来驱动硬件

[root@txss test]# ll -lh  /boot/vmlinuz-2.6.32-696.10.1.el6.x86_64 

-rwxr-xr-x 1 root root 4.1M 8月  23 2017 /boot/vmlinuz-2.6.32-696.10.1.el6.x86_64

6.加载伪文件系统(ramdisk),

内核已将启动起来了,再调用ramdisk文件,尝试驱动所有的硬件设备,到这一步,内核起来了,所有驱动也装上了,因此后面的启动就可以交给程序了

7.启动init进程

grub中默认指定init=/sbin/init程序

(1)读取/etc/inittab文件

inittab文件里面定义了系统默认运行级别,这一步做了一些工作如下:

 a)初始运行级别(RUN LEVEL)

 b)系统初始化脚本

 c)对应运行级别的脚本目录

 d)定义UPS电源终端/恢复脚本

 e)在虚拟控制台生成getty,以生成终端

 f)在运行级别5初始化X

(2)执行/etc/rc.d/rc.sysinit程序

系统初始化一些脚本,主要完成以下工作

a)设置主机名

b)设置欢迎信息

c)激活udev和selinux可以在grub.conf中,kernel行添加selinux=0以关闭selinux

d)挂载/etc/fstab文件中定义的文件系统

e)检测根文件系统,并以读写方式重新挂载根文件系统

f)设置系统时钟

g)激活swap设备

h)根据/etc/sysctl.conf文件设置内核参数

i)激活lvm及software raid设备

j)加载额外设备的驱动程序

k)清理操作

(3)/etc/rc#.d/文件(各种服务)

里面定义的是各种服务的启动脚本,可以ls查看,S开头代表开机启动的服务,K开头的是关机要执行的任务。#代表数字,一个数字代表一个运行级别,共7个运行级别,这里就不多说了

(4)/etc/rc.d/rc.local文件

这里面可以自定义开机启动的命令。

8.执行/bin/login

执行/bin/login程序,等待用户登录

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注