很多網友詢問MBR和GPT的問題,涉及到硬盤操作系統的安裝,其實除了MBR和GPT分區表,UEFI BIOS也是和操作系統緊密聯系在一起的,下面我們就來聊聊硬盤分區表和UEFI BIOS的知識。從Intel 6系列主板之后,就開始提供UEFI BIOS支持,正式支持GPT硬盤分區表,一舉取代了此前的MBR分區表格式,不過為了保持對老平臺的兼容,微軟即使最新的Windows 10系統也繼續提供了對MBR分區表格式的支持。
MBR和GPT分區表詳解
全新硬盤(未初始化)裝系統之前,必須對齊進行分區,硬盤分區初始化的格式包括MBR和GPT兩種。當然對于基于PowerPC的Mac電腦還有專門的Apple分區圖,在這里就不做介紹。
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分區表系統
所謂啟動加載器,是一小段代碼,用于加載驅動器上其他分區上更大的加載器。如果你安裝了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最大支持2.2TB磁盤,它無法處理大于2.2TB容量的磁盤。MBR還只支持最多4個主分區——如果你想要更多分區,你需要創建所謂“擴展分區”,并在其中創建邏輯分區。
GPT的全稱是Globally Unique Identifier Partition Table,意即GUID分區表,它的推出是和UEFI BIOS相輔相成的,鑒于MBR的磁盤容量和分區數量已經不能滿足硬件發展的需求,GPT首要的任務就是突破了2.2T分區的限制,最大支持18EB的分區。
GPT分區表系統
而在分區數量上,GPT會為每一個分區分配一個全局唯一的標識符,理論上GPT支持無限個磁盤分區,不過在Windows系統上由于系統的限制,最多只能支持128個磁盤分區,基本可以滿足所有用戶的存儲需求。在每一個分區上,這個標識符是一個隨機生成的字符串,可以保證為地球上的每一個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。
傳統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的相關選項和功能。
UEFI BIOS界面
除了圖形化界面,UEFI相比傳統BIOS,還提供了文件系統的支持,它能夠直接讀取FAT、FAT32分區中的文件,例如華碩、華擎等主板在UEFI BIOS環境下更新BIOS就可以直接讀取U盤中的BIOS及其他文件,另外新的UEFI主板基本都提供了截屏功能,這些截屏圖片都可以存儲在U盤當中。
UEFI還有一個重要特性就是在UEFI下運行應用程序,這類程序文件通常以efi結尾。利用UEFI可以直接識別FAT分區中的文件,又有可直接在其中運行應用程序。我們就可以將Windows安裝程序做成efi類型應用程序,然后把它放到任意FATA分區中直接運行即可。
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分區表,一般會提供Legacy BIOS和UEFI BIOS啟動模式選項,如果要使用UEFI模式安裝Windows,就必須開啟UEFI啟動模式。
目前64bit Windows Vista、7、8、8.1、10都已經支持GPT分區表,而Windows 8、8.1、10都已經原生支持UEFI,安裝這些系統的時候:只要硬盤設置為GPT分區表 主板設置為UEFI啟動后,就可以直接開始安裝操作系統了。
而對于Windows Vista、7系統,就需要手動添加UEFI支持,我們可以找一份Windows 8或者10安裝鏡像,從安裝文件中提取Bootmgfw.efi文件,重命名為BOOTX64.EFI,拷貝到win7安裝文件的EFIBoot下,如果沒有BOOT文件夾就新建一個。
至此UEFI模式安裝Windows系統告一段落,如果大家還有什么疑問,歡迎大家在下面評論中提出寶貴的意見。