1. 程式人生 > >[轉帖]MBR與UEFI

[轉帖]MBR與UEFI

從Intel 6系列主機板之後,就開始提供UEFI BIOS支援,正式支援GPT硬碟分割槽表,一舉取代了此前的MBR分割槽表格式,不過為了保持對老平臺的相容,微軟即使最新的Windows 10系統也繼續提供了對MBR分割槽表格式的支援。   MBR和GPT分割槽表詳解 全新硬碟(未初始化)裝系統之前,必須對齊進行分割槽,硬碟分割槽初始化的格式包括MBR和GPT兩種。當然對於基於PowerPC的Mac電腦還有專門的Apple分割槽圖,在這裡就不做介紹。  

硬碟分割槽不求人:秒懂MBR和GPT分割槽表

  MBR的全稱是Master Boot Record(主引導記錄),MBR早在1983年IBM PC DOS 2.0中就已經提出。之所以叫“主引導記錄”,是因為它是存在於驅動器開始部分的一個特殊的啟動扇區。這個扇區包含了已安裝的作業系統的啟動載入器和驅動器的邏輯分割槽資訊。   主引導扇區是硬碟的第一扇區。它由三個部分組成,主引導記錄MBR、硬碟分割槽表DPT和硬碟有效標誌。在總共512位元組的主引導扇區裡MBR佔446個位元組,偏移地址0000H--0088H),它負責從活動分割槽中裝載,並執行系統載入程式;第二部分是Partition table區(DPT分割槽表),佔64個位元組;第三部分是Magic number,佔2個位元組。  

硬碟分割槽不求人:秒懂MBR和GPT分割槽表

  MBR分割槽表系統 所謂啟動載入器,是一小段程式碼,用於載入驅動器上其他分割槽上更大的載入器。如果你安裝了Windows,Windows啟動載入器的初始資訊就放在這個區域裡——如果MBR的資訊被覆蓋導致Windows不能啟動,你就需要使用Windows的MBR修復功能來使其恢復正常。如果你安裝了Linux,則位於MBR裡的通常會是GRUB載入器。   分割槽表偏移地址為01BEH--01FDH,每個分割槽表項長16個位元組,共64位元組為分割槽項1、分割槽項2、分割槽項3、分割槽項4,分別對應MBR的四個主分割槽。 Magic number也就是結束標誌字,偏移地址01FE--01FF的2個位元組,固定為55AA,如果該標誌錯誤系統就不能啟動。  

硬碟分割槽不求人:秒懂MBR和GPT分割槽表

  MBR最大支援2.2TB磁碟,它無法處理大於2.2TB容量的磁碟。MBR還只支援最多4個主分割槽——如果你想要更多分割槽,你需要建立所謂“擴充套件分割槽”,並在其中建立邏輯分割槽。   GPT的全稱是Globally Unique Identifier Partition Table,意即GUID分割槽表,它的推出是和UEFI BIOS相輔相成的,鑑於MBR的磁碟容量和分割槽數量已經不能滿足硬體發展的需求,GPT首要的任務就是突破了2.2T分割槽的限制,最大支援18EB的分割槽。  

硬碟分割槽不求人:秒懂MBR和GPT分割槽表

  GPT分割槽表系統   而在分割槽數量上,GPT會為每一個分割槽分配一個全域性唯一的識別符號,理論上GPT支援無限個磁碟分割槽,不過在Windows系統上由於系統的限制,最多隻能支援128個磁碟分割槽,基本可以滿足所有使用者的儲存需求。在每一個分割槽上,這個識別符號是一個隨機生成的字串,可以保證為地球上的每一個GPT分割槽都分配完全唯一的識別符號。  

硬碟分割槽不求人:秒懂MBR和GPT分割槽表

  而在安全性方面,GPT分割槽表也進行了全方位改進。在早期的MBR磁碟上,分割槽和啟動資訊是儲存在一起的。如果這部分資料被覆蓋或破壞,事情就麻煩了。相對的,GPT在整個磁碟上儲存多個這部分資訊的副本,因此它更為健壯,並可以恢復被破壞的這部分資訊。GPT還為這些資訊儲存了迴圈冗餘校驗碼(CRC)以保證其完整和正確——如果資料被破壞,GPT會發覺這些破壞,並從磁碟上的其他地方進行恢復。   小結:所以對於新平臺使用者(Intel 6系以後/AMD 900系列以後和A系列)來說,都強烈推薦使用GPT分割槽表格式,目前包括Windows Vista、7、8、8.1、10已經都支援讀取和使用GPT分割槽表。而對於使用Windows 8、8.1、10的使用者,換用GPT後開機啟動速度也可以進一步得到顯著提升。   UEFI BIOS詳解   UEFI的全稱是Unified Extensible Firmware Interface,意即統一可擴充套件 韌體 介面,它是基於EFI 1.10標準為基礎發展而來,值得注意的是在UEFI正式確立之前,Intel就開始積極推進傳統BIOS的升級方案,並最終確立了過渡方案EFI標準,直到2007年Intel將EFI標準的改進與完善工作交給Unified EFI Form進行全權負責,EFI標準則正式更名為UEFI。  

硬碟分割槽不求人:秒懂MBR和GPT分割槽表

  傳統BIOS介面 相比傳統BIOS,UEFI最大的幾個區別在於: 1、編碼99%都是由C語言完成; 2、一改之前的中斷、硬體埠操作的方法,而採用了Driver/protocol的新方式; 3、將不支援X86真實模式,而直接採用Flat mode(也就是不能用DOS了,現在有些 EFI 或 UEFI 能用是因為做了相容,但實際上這部分不屬於UEFI的定義了); 4、輸出也不再是單純的二進位制code,改為Removable Binary Drivers; 5、OS啟動不再是呼叫Int19,而是直接利用protocol/device Path; 6、對於第三方的開發,前者基本上做不到,除非參與BIOS的設計,但是還要受到ROM的大小限制,而後者就便利多了。 7、彌補BIOS對新硬體的支援不足的問題。   UEFI和GPT是相輔相成的,二者缺一不可,要想使用GPT分割槽表則必須是UEFI BIOS環境。UEFI於使用者而言最典型的特徵就是使用了圖形化介面,雖然還未達到作業系統介面的圖形互動功能,但人性化的介面、滑鼠的操作,已經將BIOS變得非常易用,對於不少電腦初級使用者來說也可以很好的檢視和設定BIOS的相關選項和功能。   

硬碟分割槽不求人:秒懂MBR和GPT分割槽表

  UEFI BIOS介面 除了圖形化介面,UEFI相比傳統BIOS,還提供了檔案系統的支援,它能夠直接讀取FAT、FAT32分割槽中的檔案,例如華碩、華擎等主機板在UEFI BIOS環境下更新BIOS就可以直接讀取U盤中的BIOS及其他檔案,另外新的UEFI主機板基本都提供了截圖功能,這些截圖圖片都可以儲存在U盤當中。 UEFI還有一個重要特性就是在UEFI下執行應用程式,這類程式檔案通常以efi結尾。利用UEFI可以直接識別FAT分割槽中的檔案,又有可直接在其中執行應用程式。我們就可以將Windows安裝程式做成efi型別應用程式,然後把它放到任意FATA分割槽中直接執行即可。  

硬碟分割槽不求人:秒懂MBR和GPT分割槽表

  UEFI啟動順序 UEFI的模組化設計,它在邏輯上分為硬體控制與OS(作業系統)軟體管理兩部分,硬體控制為所有UEFI版本所共有,而OS軟體管理其實是一個可程式設計的開放介面。藉助這個介面,主機板廠商可以實現各種豐富的功能。比如我們熟悉的各種備份及診斷功能可通過UEFI加以實現,主機板或韌體廠商可以將它們作為自身產品的一大賣點。UEFI也提供了強大的聯網功能,其他使用者可以對你的主機進行可靠的遠端故障診斷,而這一切並不需要進入作業系統。 當然由於UEFI主要由高階語言編寫(C語言),相比於傳統BIOS的組合語言,UEFI BIOS在安全防護性方面相比傳統BIOS要弱,比較容易遭到病毒的攻擊,安全性有待進一步提升。不過在圖形化介面、應用程式擴充套件面前,UEFI BIOS還是非常成功的。   One More Thing...   聊完了MBR/GPT分割槽表和UEFI BIOS,下面我們就來介紹下UEFI下安裝Windows系統,上面已經講到UEFI和GPT是相輔相成的,如果使用UEFI模式安裝Windows系統,那麼硬碟分割槽表必須是GPT。  

硬碟分割槽不求人:秒懂MBR和GPT分割槽表

  備註:主機板為了相容MBR分割槽表,一般會提供Legacy BIOS和UEFI BIOS啟動模式選項,如果要使用UEFI模式安裝Windows,就必須開啟UEFI啟動模式。  

硬碟分割槽不求人:秒懂MBR和GPT分割槽表

  目前64bit Windows Vista、7、8、8.1、10都已經支援GPT分割槽表,而Windows 8、8.1、10都已經原生支援UEFI,安裝這些系統的時候:只要硬碟設定為GPT分割槽表 主機板設定為UEFI啟動後,就可以直接開始安裝作業系統了。  

硬碟分割槽不求人:秒懂MBR和GPT分割槽表

  而對於Windows Vista、7系統,就需要手動新增UEFI支援,我們可以找一份Windows 8或者10安裝映象,從安裝檔案中提取Bootmgfw.efi檔案,重新命名為BOOTX64.EFI,拷貝到win7安裝檔案的\EFI\Boot\下,如果沒有BOOT資料夾就新建一個。   至此UEFI模式安裝Windows系統告一段落,如果大家還有什麼疑問,歡迎大家在下面評論中提出寶貴的意見。