• 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



  • 相关阅读:
    多线程 线程队列的实现
    如何使用vagrant在虚拟机安装hadoop集群
    【leetcode】Rotate List
    麒麟(Kylin)与Ubuntu的寓意相通
    山寨APP恶意吸费隐患 门槛底致监管盲点
    2013年软件设计师之考前复习笔记:IP地址
    .gitkeep
    cmd 里面运行git提示“不是内部或外部命令,也不是可运行的程序”的解决办法...
    windows常用命令行命令
    PhpStorm terminal无法输入命令的解决方法
  • 原文地址:https://www.cnblogs.com/lqynkdcwy/p/9588515.html
Copyright © 2020-2023  润新知