Linux 开机启动顺序
***了解Linux开机启动顺序以前先了解一下Linux运行级别,经过inittab配置文件查看运行级别的定义:网络
[root@oldboy ~]# cat /etc/inittab工具
# Default runlevel. The runlevels used are:this
0表示系统关机spa
# 0 - halt (Do NOT set initdefault to this)操作系统
1表示单用户模式,通常用于修改root密码或系统救援3d
# 1 - Single user modeblog
2表示多用户模式,但没有NFS网络文件系统功能进程
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)内存
3表示多用户模式,通常生产系统就用此级别get
# 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 ##切换运行级别
1、开机加载BIOS自检设备启动顺序信息、硬盘信息、内存信息等
标注:以VMware WorkStation虚拟机截图
2、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个字节
3、Boot Loader引导加载(以GRUB引导菜单为例),系统读取内存中的grub配置信息,
并依照此配置信息来启动不一样的操做系统,能够经过/boot/grub/grub.conf进行配置
4、加载内核Kernel
5、启动第一个进程init
6、执行/etc/rc.d/rc.sysinit脚本文件初始化设置
7、读取inittab配置文件设定运行等级,执行/etc/rc.d/rc3.d目录相应的脚本程序
标注:kdump 是一个系统意外崩溃时收集错误信息的工具,能够关闭,不影响系统启动
8、启动mingetty进程,进入登陆状态
标注:在启动mingetty进程时,系统会先执行/etc/rc/rc.local开机自动启用户自定义的动程序命令的文件