MBR和GPT分區表的那些事兒

MBR和GPT的問題,涉及到硬盤操作系統的安裝,其實除了MBR和GPT分區表,UEFI BIOS也是和操作系統緊密聯繫在一起的,下面我們就來聊聊硬盤分區表和UEFI BIOS的知識。從Intel 6系列主板之後,就開始提供UEFI BIOS支持,正式支持GPT硬盤分區表,一舉取代了此前的MBR分區表格式,不過爲了保持對老平臺的兼容,微軟即使最新的Windows 10系統也繼續提供了對MBR分區表格式的支持。

MBR和GPT分區表詳解

全新硬盤(未初始化)裝系統之前,必須對齊進行分區,硬盤分區初始化的格式包括MBR和GPT兩種。當然對於基於PowerPC的Mac電腦還有專門的Apple分區圖,在這裏就不做介紹。

b8ddc1634d2dbc3.jpg

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個字節。

ea1972b45ba636f.png

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,如果該標誌錯誤系統就不能啓動。

8bc3005464e4ea0.png

MBR最大支持2.2TB磁盤,它無法處理大於2.2TB容量的磁盤。MBR還只支持最多4個主分區——如果你想要更多分區,你需要創建所謂“擴展分區”,並在其中創建邏輯分區。

GPT的全稱是Globally Unique Identifier Partition Table,意即GUID分區表,它的推出是和UEFI BIOS相輔相成的,鑑於MBR的磁盤容量和分區數量已經不能滿足硬件發展的需求,GPT首要的任務就是突破了2.2T分區的限制,最大支持18EB的分區

4c072e5c588f2a2.jpg

GPT分區表系統

而在分區數量上,GPT會爲每一個分區分配一個全局唯一的標識符,理論上GPT支持無限個磁盤分區,不過在Windows系統上由於系統的限制,最多隻能支持128個磁盤分區,基本可以滿足所有用戶的存儲需求。在每一個分區上,這個標識符是一個隨機生成的字符串,可以保證爲地球上的每一個GPT分區都分配完全唯一的標識符。

41e3c854fdaa250.jpg

而在安全性方面,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。

2b266a14ef83ad3.jpg

傳統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的相關選項和功能。

1d47e625dccb54f.jpg

UEFI BIOS界面

除了圖形化界面,UEFI相比傳統BIOS,還提供了文件系統的支持,它能夠直接讀取FAT、FAT32分區中的文件,例如華碩、華擎等主板在UEFI BIOS環境下更新BIOS就可以直接讀取U盤中的BIOS及其他文件,另外新的UEFI主板基本都提供了截屏功能,這些截屏圖片都可以存儲在U盤當中。

UEFI還有一個重要特性就是在UEFI下運行應用程序,這類程序文件通常以efi結尾。利用UEFI可以直接識別FAT分區中的文件,又有可直接在其中運行應用程序。我們就可以將Windows安裝程序做成efi類型應用程序,然後把它放到任意FATA分區中直接運行即可。

f0c58e14107cb0a.jpg

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。

005897108f8e620.jpg

備註:主板爲了兼容MBR分區表,一般會提供Legacy BIOS和UEFI BIOS啓動模式選項,如果要使用UEFI模式安裝Windows,就必須開啓UEFI啓動模式。

896d3ef26a26695.jpg

目前64bit Windows Vista、7、8、8.1、10都已經支持GPT分區表,而Windows 8、8.1、10都已經原生支持UEFI,安裝這些系統的時候:只要硬盤設置爲GPT分區表 主板設置爲UEFI啓動後,就可以直接開始安裝操作系統了。

97e4efca55b93ef.jpg

而對於Windows Vista、7系統,就需要手動添加UEFI支持,我們可以找一份Windows 8或者10安裝鏡像,從安裝文件中提取Bootmgfw.efi文件,重命名爲BOOTX64.EFI,拷貝到win7安裝文件的\EFI\Boot\下,如果沒有BOOT文件夾就新建一個

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章