時間: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的加載過程。
下圖引用自:鳥哥的私房菜

本文轉自 lajifeiwomoshu 51CTO部落格,原文連結:http://blog.51cto.com/lajifeiwomoshu/2052756