启动流程

SystemV

  1. 加载 BIOS 的硬件资讯与进行自我测试,并依据配置取得第一个可启动的装置;

  2. 读取并运行第一个启动装置内 MBR 的 boot Loader (亦即是 grub, spfdisk 等程序);

  3. 依据 boot loader 的配置加载 Kernel ,Kernel 会开始侦测硬件与加载驱动程序;

  4. 在硬件驱动成功后,Kernel 会主动呼叫 init 程序,而 init 会取得 run-level 资讯;

  5. init 运行 /etc/rc.d/rc.sysinit 文件来准备软件运行的作业环境 (如网络、时区等);

  6. init 运行 run-level 的各个服务之启动 (script 方式);

  7. init 运行 /etc/rc.d/rc.local 文件;

  8. init 运行终端机模拟程序 mingetty 来启动 login 程序,最后就等待使用者登陆啦;


Systemd

  1.载入 BIOS 的硬体资讯与进行自我测试,并依据设定取得第一个可开机的装置;
  2.读取并执行第一个开机装置内 MBR 的 boot Loader (亦即是 grub2, spfdisk 等程式);
    依据 boot loader 的设定载入 Kernel ,Kernel 会开始侦测硬体与载入驱动程式;
    在硬体驱动成功后,Kernel 会主动呼叫 systemd 程式,并以 default.target 流程开机;
        systemd 执行 sysinit.target 初始化系统及 basic.target 准备作业系统;
        systemd 启动 multi-user.target 下的本机与伺服器服务;
        systemd 执行 multi-user.target 下的 /etc/rc.d/rc.local 档案;
        systemd 执行 multi-user.target 下的 getty.target 及登入服务;
        systemd 执行 graphical 需要的服务



MBR:

    全称为Master Boot Record,中文:主引导记录,在0柱面0磁头1扇区,大小为512字节,这个区域

被分为三部分:

1)前446个字节:这里存放引导加载程序(Boot Loader),如grub2等,

2)中间64个字节:这个区域被称为分区表(Partition table),记录4组分区信息,每16字节一组,每组分区

信息包含:分区状态(激活,未激活)、分区类型、起止柱面号、起磁头号、起扇区号、寻址方式(线性寻址方式和分区相对扇区地址)、分区总扇区数目(4个字节)等内容,这四组分区信息,称为主分区(Primary)或者扩展分区(Extended).

注意:每组分区中包含4个字节的总扇区数:2^32,这里的总扇区数目指的是这块硬盘的总扇区数目,而不是指这个主分区里的总扇区数目,转化为TB,2^32*512/1024/1024/1024/1024=2TB,即mbr不支持

硬盘容量大于2TB以上的硬盘.

3)最后2个字节:固定为55AA,占2字节如果这个标识被破坏,即便磁盘正常分区也会被认为这块磁盘是一块全新的没有被分区的盘


  • 主要分割与扩展分配最多可以有四个(硬盘的限制)

  • 扩展分配最多只能有一个(操作系统的限制)

  • 逻辑分割是由扩展分配持续切割出来的分割槽;

  • 能够被格式化后,作为数据存取的分割槽为主要分割与逻辑分割。扩展分配无法格式化;

  • 逻辑分割的数量依操作系统而不同,在Linux系统中,IDE硬盘最多有59个逻辑分割(5号到63号), SATA硬盘则有11个逻辑分割(5号到15号)。



mbr,gpt,开机启动流程._第1张图片

Boot Loader的作用:

  • 提供菜单:使用者可以选择不同的启动项目,这也是多重启动的重要功能!

  • 加载核心文件:直接指向可启动的程序区段来开始操作系统;

  • 转交其他loader:将启动管理功能转交给其他loader负责。

什么是扩展分区?

   所谓扩展分区,严格地讲它不是一个实际意义的分区,它仅仅是一个指向下一个分区的指针,这种指针结构将形成一个单向链表。这样在主引导扇区中除了主分区外,仅需要存储一个被称为扩展分区的分区数据,通过这个扩展分区的数据可以找到下一个分区(实际上也就是下一个逻辑磁盘)的起始位置,以此起始位置类推可以找到所有的分区。无论系统中建立多少个逻辑磁盘,在主引导扇区中通过一个扩展分区的参数就可以逐个找到每一个逻辑磁盘


扩展分区结构:扩展引导记录(EBR)+ 逻辑分区

  注:扩展分区中的每个逻辑驱动器都存在一个类似于MBR的扩展引导记录( Extended Boot Record, EBR)


扩展引导记录(EBR):类似于MBR的扩展引导记录,扩展引导记录包括一个扩展分区表和该扇区的标签.

   扩展引导记录将记录只包含扩展分区中每个逻辑驱动器的第一个柱面的第一面的信息,但是,如果磁盘上没有扩展分区,那么就不会有扩展引导记录和逻辑驱动器。

EBR结构:

   逻辑分区前扇区,如扩展分区0号扇区(512bytes)

    前446bytes:未使用,全为0;

扩展分区表(64bytes):记录分区状态,每16bytes分为一个项,共四个项。

    第一项:指向它自身的引导扇区;

    第二项:指向下一个逻辑驱动器的EBR

        注:如果不存在进一步的逻辑驱动器,第二项不会使用,且被记录成一系列零。

    第三项:未使用

    第四项:未使用

结束标识(2bytes): 55AA ,有效性标识;55AA为有效