命令记不住

登陆

Linux 开机启动流程

Linux开机启动流程

总体有4个阶段

  • BIOS启动引导阶段
  • GRUB启动引导阶段
  • 内核阶段
  • init初始化阶段

1.BIOS启动引导阶段

在服务器通电的瞬间,ROM只读芯片中的开机程序被触发,第一个阶段开始进行。

硬件自检

BIOS程序首先检查计算机硬件能否满足基本条件

寻找启动设备

当硬件检测通过后,BIOS把控制权交给下一阶段的启动程序,系统是从硬盘启动,还是从网络启动,还是从U盘启动

2.GRUB启动引导阶段

两个步骤

MBR

MBR里面存储了系统预启动信息、分区表和主引导记录签名

MBR引导CPU读取Boot Loader引导加载程序

Boot Loader

引导加载程序,grub启动之后首先用到/boot目录,读取/boot/grub/grub.conf显式启动菜单,具体的作用是以下

  • 提供一块硬盘上所有安装的系统的选择菜单
  • 载入操作系统的内核,移交控制权给内核
  • 将控制权移交给其他系统的boot loader

3.内核阶段

GRUB加载内核,将initrd加载到内存进行初始化启动,Kernel会初始化系统中的设备并且做相关的配置工作,驱动加载后会转换到真正的系统根上面,开启系统的1号进程,到达系统初始化阶段

4.init初始化阶段

核心加载完毕之后,系统就准备好了,开始进行程序执行。

执行系统初始化脚本(/etc/rc.d/rc.sysinit),对系统进行基本的配置。/etc/inittab确定运行级别,/etc/rc.d/rcX.d运行服务,/etc/rc.d/init.d运行脚本,最终展现用户登陆界面