• Linux 启动流程


    1、首先加载BIOS(Basic Input Output System),自检,读取可启动的设备顺序(一般是硬盘)。
    2、每个硬盘有一个MBR(Master Boot Record)区域,MBR是硬盘第一个扇区446B的区域。设置启动顺序,相当于读取不同硬盘的MBR。
    3、然后加载MBR。
    4、每个操作系统都有一个自己的Boot Loader,Boot Loader负责把系统内核加载到内存中运行。安装操作系统的时候,操作系统会把Boot Loader安装在自己的文件系统中。
      安装Linux的时候,可以选择是否要把Boot Loader拷贝到MBR中,而Windows会主动把Boot Loader拷贝到MBR中,特别注意:MBR中只有一个区域存放Boot Loader,后一次拷贝的Boot Loader会覆盖掉前一次拷贝的Boot Loader。
    5、加载MBR,读取其中的Boot Loader,启动系统。那么问题来了?
      MBR中只有一个Boot Loader,后安装的系统拷贝Boot Loader 到MBR,覆盖掉前一个系统的Boot Loader,这不就导致,前一个系统永远没有办法启动了?
    6、这就要谈到Boot Loader的功能,MBR中只有一个Boot Loader,但是Boot Loader提供菜单选项,可以选择不同的启动选项。
      a、直接指向可启动的程序区段,加载操作系统。
      b、将引导加载功能,转交给其他的Boot Loader。
    7、考虑下面的情况,安装了Windows,文件系统中有Boot Loader,名称W,将W拷贝到MBR。再安装Linux,文件系统中有Boot Loader,名称L,将L拷贝到MBR,覆盖掉W。启动的时候,加载MBR中的L,L提供选项:
      a、可以直接加载Linux系统;
      b、可以转交给Linux文件系统中的Boot Loader,再加载Linux;
      c、可以转交给Windows文件系统中的Boot Loader,再加载Windows。
    8、特别注意的是:Windows的Boot Loader 默认不具备转交的功能,而且安装Windows的时候,会主动把Boot Loader拷贝MBR,覆盖掉以前的。这就存在一个问题:
      安装多操作系统,最后安装Windows,导致无法引导启动其他的系统。因此,安装多操作系统,涉及到MBR与多重引导,应该先安装Windows,在安装Linux,让Linux的Boot Loader 在MBR覆盖掉Windows的。
    9、然后Boot Loader加载系统内核到内存中,系统内核驱动周边的设备,接管了BIOS以后的工作。

  • 相关阅读:
    [ES6] for..in && for..of
    [Falcor] Building Paths Programmatically
    [Polymer] Custom Elements: Styling
    [Polymer] Introduction
    [Redux] Implementing combineReducers() from Scratch
    [Redux] Reducer Composition with combineReducers()
    [AngularJS] Exploring the Angular 1.5 .component() method
    生物-脑-脑容量:脑容量
    生物学-脑:脑(动物中枢神经系统主要部分)
    生物:生物
  • 原文地址:https://www.cnblogs.com/nzbbody/p/4394006.html
Copyright © 2020-2023  润新知