Linux 开机启动顺序_005

 

 

***了解Linux开机启动顺序之前先了解一下Linux运行级别,通过inittab配置文件查看运行级别的定义:

 

[root@oldboy ~]# cat /etc/inittab

# Default runlevel. The runlevels used are:

0表示系统关机

#   0 - halt (Do NOT set initdefault to this)

1表示单用户模式,一般用于修改root密码或系统救援

#   1 - Single user mode

2表示多用户模式,但没有NFS网络文件系统功能

#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)

3表示多用户模式,一般生产系统就用此级别

#   3 - Full multiuser mode

4表示未使用

#   4 – unused

5表示以图形介面登录

#   5 - X11

6表示重启系统

#   6 - reboot (Do NOT set initdefault to this)

id:3:initdefault:    ##系统修改运行级加就在此修改即可

 

[root@oldboy ~]# runlevel    ##查看当前系统运行级别

N 3

 

[root@oldboy ~]# init 5       ##切换运行级别

 

 

 

 

Linux 开机启动顺序流程图:

 

 

 

 

 

一、开机加载BIOS自检设备启动顺序信息、硬盘信息、内存信息等

标注:以VMware WorkStation虚拟机截图

 

 

 

 

二、MBR引导

标注:还有另外一种开机加载方式GPT(UEFI+GPT)引导,GUID Partition Table全局唯一标识分区表

MBR(Legacy+MBR)引导,Master Boot Record即硬盘主引导记录分区 (硬盘0柱面、0磁头、1扇区,大小为512字节)

(1)、主引导扇区MBR  占446个字节

(2)、分区表DPT 占64个字节(一个硬盘只能分四个主分区,一个分区占用16个字节)

(3)、分区表有效性标记 占用2个字节

 

 

三、Boot Loader引导加载(以GRUB引导菜单为例),系统读取内存中的grub配置信息,

并依照此配置信息来启动不同的操作系统,可以通过/boot/grub/grub.conf进行配置

 

 

四、加载内核Kernel

五、启动第一个进程init

六、执行/etc/rc.d/rc.sysinit脚本文件初始化设置

 

 

七、读取inittab配置文件设定运行等级,执行/etc/rc.d/rc3.d目录相应的脚本程序

标注:kdump 是一个系统意外崩溃时收集错误信息的工具,可以关闭,不影响系统启动

 

 

 

八、启动mingetty进程,进入登录状态

标注:在启动mingetty进程时,系统会先执行/etc/rc/rc.local开机自动启用户自定义的动程序命令的文件

 

 

 

感谢老男孩博客提供参考  https://blog.51cto.com/oldboy

 

 

 

原文地址:https://www.cnblogs.com/zoulongbin/p/10441426.html