2.centos5,6启动流程

wKioL1Mb-qTBc13RABEw7PlXo9A353.jpg

centos5,6启动流程:

1.post
2.grub

  • 2.1stage1 mbr 446
  • 2.2stage1.5 mbr后面的27 sectors
  • 2.3stage2 /boot/grub

3.核心文件:/boot/vmlinuz-VERSION-release
4.伪根系统:/boot/initramfs-VERSION-release.img
5.mount /
6./sbin/init /etc/inittab N
7./etc/rc.d/rc.sysinit
8./etc/rcN.d/K*
9./etc/rcN.d/S*
10./etc/rc.d/rc.local
11.mingetty login
12.windows

timg.jpg

文字描述

1.加载BIOS的硬件信息,获取第一个启动设备
2.读取第一个启动设备MBR的引导加载程序(grub)的启动信息
3.加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备
4.核心执行init程序,并获取默认的运行信息
5.init程序执行/etc/rc.d/rc.sysinit文件
6.启动核心的外挂模块
7.init执行运行的各个批处理文件(scripts)
8.init执行/etc/rc.d/rc.local
9.执行/bin/login程序,等待用户登录
10.登录之后开始以Shell控制主机

分步解析

1.加载BIOS,开机自检(post)----->寻找第一个可启动设备

image

2.读取GRUB(主引导程序)----->读取第一个可启动设备的第一个扇区

  • primary boot loader:

    • 1---stage1)MBR 446 stage1
      1.png
      1.png

    • 2---stage1.5 )识别相应的文件系统,从而加载stage2文件-----stage1与stage2的桥梁
      1.png

  • secondary boot loader

    • 2---stage2)引导菜单 /boot/grub/grub.conf
      image

第1和第2总结

  1. BIOS将控制权交给硬盘的主引导区,即MBR
  2. MBR中的bootloader(stage1)通过内置的地址加载stage1_5
  3. bootloader通过stage1_5的内容,将分区中的stage2加载
  4. stage2此时就可以在文件系统中将grub.conf文件加载,让用户看到选项界面。

3.执行内核文件:/boot/vmlinuz-VERSION-release

1.png

4.加载伪根系统:/boot/initramfs-VERSION-release.img

为挂载/提供模块

1.png

5.以只读方式挂载根文件系统(mount /)

1.png
2.png

6.运行第1个应用程序(用户空间),初始化

/sbin/init(第1个用户进程)根据/etc/inittab配置文件来执行相应的脚本进行初始化

1.png
2.png
3.png

7.init执行系统初始化脚本:/etc/rc.d/rc.sysinit

1.png
1.png

8. init执行指定运行级别的脚本(停止类)

/etc/rcN.d/K*(按顺序停止每个服务)

1.png
2.png

9. init执行指定运行级别的脚本(开始类)

/etc/rcN.d/S*(按顺序开始每个服务)

1.png

10.在2、3、5模式下会执行的脚本

/etc/rc.d/rc.local

1.png
1.png

11.等待用户登录

/sbin/mingetty
1)命令行登录
2)图形化登录

1.png
1.png



原文地址:https://www.cnblogs.com/lqynkdcwy/p/9588515.html