uefi和legacy bios的深度剖析

2021-07-13 11:07:13 字數 2477 閱讀 9556

這個是我總結的,參考了幾個論壇還有《鳥哥的私房菜》,還有一部分是我自己的經驗..適合初步了解uefi和legacy的人更深入的了解

legacy

為了方便計算機訪問硬碟,把硬碟上的空間劃分成許許多多的區塊(英文叫sectors,即扇區),然後給每個區塊分配乙個位址,稱為邏輯塊位址(即lba)。

2.原理

磁碟起始位置以特定格式描述磁碟上的分割槽,幷包含「啟動裝載程式 (boot loader)」,bios 韌體知道如何執行這一小段啟動裝載程式**。啟動裝載程式的職責是啟動作業系統(現代啟動裝載程式的大小通常超出了 mbr 空間所能容納的範圍,因此必須採用多階段設計,其中 mbr 部分只知道如何從其他位置載入下一階段)。

3.引導順序

bios->mbr(內含引導引導程式)->引導引導程式boot loader(乙個可讀取核心檔案來執行的軟體)(作用1提供選單2載入核心3其它的loader)。

安裝系統的時候mbr和boot sector(每乙個分割槽的第乙個扇區,檔案系統會保留)均放bootloader(所以先裝linux後裝win,引導會掉)。但是windows的bootloader沒有轉移控制權的功能。所以一般mbr放grub引導裝載程式(1指向linux核心檔案2移交控制權給boot sector的windows bootloader)。

系統啟動時順序 bios -> mbr (主引導記錄)-> dpt (硬碟分割槽表)-> pbr -> 尋找根目錄下 ntldr(xp) ->boot.ini(xp)

bios -> mbr -> dpt -> pbr-> 尋找根目錄下bootmgr(win7/vista)/grldr(grub)/btldr.mbr(bootlink)->\boot\bcd->winload.exe->核心

當xp和win7共存,則bootmgr起作用。xp顯示為早期的windows版本

4.要求

2.啟動順序:

①一般情況下(系統引導和windows引導都管用)

\efi\boot\bootx64.efi->\efi\microsoft\boot\bootmgfw.efi->\efi\microsoft\boot\bcd->winload.efi

②系統引導(windows boot manager不管用了,系統引導管用)

\efi\boot\bootx64.efi->\efi\microsoft\boot\bcd->winload.efi

③windows引導(windows boot manager) \efi\microsoft\boot\bootmgfw.efi->\efi\microsoft\boot\bcd->winload.efi

3.修復引導

bcdboot.exe 會修復系統引導,而且會同時修復計算機預設引導和windows 預設引導,即在esp(fat)分割槽下沒有任何檔案下的情況下完成所有的檔案複製。在esp分割槽同時出現bootx64.efi和bootmgfw.efi,並且bootx64.efi是由bootmgfw.efi 改名而來的。與此同時在boot menu啟動選擇選單那裡生成「windows boot manager」,windows boot manager 及其包含的資訊是儲存在主機板上的nvram裡面的,而不是儲存在硬碟上,故刪除windows boot manager需要到bios設定區刪除。

4.uefi及其優勢

要知道,這些都是bios做不到的。因為bios下啟動作業系統之前,必須從硬碟上指定扇區讀取系統啟動**(包含在主引導記錄中),然後從活動分割槽中引導啟動作業系統。對扇區的操作遠比不上對分割槽中檔案的操作更直觀更簡單,所以在bios下引導安裝windows作業系統,我們不得不使用一些工具對裝置進行配置以達到啟動要求。而在uefi下,這些統統都不需要,不再需要主引導記錄,不再需要活動分割槽,不需要任何工具,只要複製安裝檔案到乙個fat32(主)分割槽/u盤中,然後從這個分割槽/u盤啟動,安裝windows就是這麼簡單。

6.要求

7.經驗

當uefi方式啟動成功系統後引導丟了,目前出現了不能關機,但是能重啟成功的現象。

grub2引導過程:

bios:

開機—>按照指定的順序啟動u盤—>啟動u盤主引導—>主引導搜尋指定位置的grub.cfg—>載入grub.cfg選單,有使用者自行選擇啟動項

uefi

開機—>查詢指定u盤內計算機預設引導檔案:\efi\boot\bootx64.efi (grub2.efi改名)—>搜尋指定位置的grub.cfg—>載入grub.cfg選單,有使用者自行選擇啟動項

大家如需自行定製grub2的話需具備 ubuntu 系統,並且需要bios和uefi版本的各乙個,然後使用 grub-mkimage 定製。

linux中所謂掛載就是指進該目錄可以直接讀取該分割槽的意思。根目錄一定要掛載到某乙個分割槽。

reset to setup mode恢復bios出廠設定,restore factory keys用於清除或恢復內建的安全啟動金鑰,os optimized defaults是乙個「頂級」設定選項,開啟該選項後,bios會自動將所有相關選項恢復為預裝win8/8.1 預設啟動方式所要求的標準設定。

從Uefi的歷史開始 BIOS和Uefi

legacy bios可以引導不同的作業系統,它定義了一套與作業系統無關的硬體介面,通過bios rom loader和 bootstrap loader去使能中斷和video,disk,keyboard服務進行通訊。uefi是用來代替legacy bios的服務。除此之外,uefi還提供了其他的一...

uefi怎麼念 UEFI規範導讀

uefi 規範第一章 introduction 這一章是整個 uefi 的設計思想進行概要性介紹,提到 uefi 規範的設計目標。對規範本身 的一些名詞術語的用法,文字的編排等做了一些說明。並且還簡單講了講對 legacy 系統的相容性問題。這一章屬於總體性的說明,我強力建議大家首先通讀這一章。ue...

UEFI和傳統引導的區別

兩者區別 理論上 最早出來的主機板,都是legacy mbr引導的,也就是我們常說的傳統引導,這種引導,就讀取速度而言,傳統模式使用的讀取方式比較慢,使用int 13中斷讀取磁碟,每次只能讀64kb,這也導致我們開機速度往往需要30s以上。而最新出來的uefi啟動,讀取速度上,能有較大的提公升,達到...