时间:2017.12.21
作者:李强
参考:man,info,magedu讲义,万能的internet
实验环境:VMware® Workstation 12 Pro ,Centos 6.9,Centos 7.4,SecureCRT Version 8.1.4
声明:以下英文纯属个人翻译,英文B级,欢迎纠正,以下内容纯属个人理解,并没有对错,只是参考,盗版不纠,才能有限,希望不误人子弟为好。
1、首先系统启动过程
主板的BIOS不管是BIOS还是UEFI BIOS都是BIOS,会去读取CMOS中的配置,然后通过PnP装置,选择第一个可开机的选项。
然后BIOS会去其MBR不管是MBR还是GPT其bootloader都是在MBR中,通过INT13信道找到MBR中的bootloader并运行之。
bootloader需提供:选择加载那个系统核心文件的菜单,加载核心文件,转交给其他bootloader,不同的系统是不同的bootloader的。
bootloader是用来把系统内核核心文件加载到内存中解压缩并执行,使其完成苏醒过程,就好像电视上电击昏迷者的起搏器。
所以为何在同一个硬盘上安装多个操作系统时,需要先安装windows,后安装linux的原因就是bootloader问题。我们安装操作系统的时候,会安装bootloader到MBR中,因为windows操作系统是闭源,预设值是不能开机管理程序功能转交给其他bootloader的,因此你如果是后安装windows系统,他会把之前linux安装在MBR中的bootloader给覆盖掉,然后又不能转交给linux根文件系统下的bootloader程序,因此linux核心文件就无法加载到内存中,因此linux就无法启动运行了。
但是我们先将windows安装后,再安装linux,linux虽然也会将MBR中的446bytes的bootloader给覆盖成grub2,但是grub2具有将开机程序转交给其他bootloader的权限,如果你开机菜单核心文件选择了,windows的。那么他就会把开启过程转交给windows的nt bootloader去完成windows的加载过程。
下图引用自:鸟哥的私房菜