1. 程式人生 > >UEFI+GPT引導基礎篇(一):什麼是GPT,什麼是UEFI?

UEFI+GPT引導基礎篇(一):什麼是GPT,什麼是UEFI?

轉自:http://www.iruanmi.com/install-64bit-windows-7-on-a-pre-installed-win8-pc/

其實關於UEFI的幾篇文章很早就寫下了,只是自己讀了一遍感覺很不滿意,就決定重寫。目的是想用最簡單直白的語言把內容寫出來,讓每個人都能輕鬆讀懂。當然,如果你已經對這些內容有了很深的理解的話,這篇文章除了浪費你的時間外恐怕是別無益處了,建議去UEFI官方網站下載UEFI規範文件,那裡詳細闡述了UEFI、GPT的每個技術細節。

其實UEFI、GPT都不是什麼新鮮玩意了,只不過因為預裝Win8電腦指定採用了這一標準所以彷彿是在一夜之間關於UEFI啟動Windows的文章就遍地開花了,很多人大概也是頭一次聽說世上還有這玩意。既然UEFI、GPT是“新”技術,那麼就必然有較舊技術(BIOS+MBR)更先進、更NB的地方。到底NB在哪裡呢?下面來簡單比較一下:

GPT及其優勢

GPT和MBR是兩種不同的分割槽方案。目前在Windows下廣泛採用的磁碟分割槽方案仍然是MBR分割槽結構,但不容懷疑GPT是今後的趨勢。我們可將MBR磁碟分割槽結構用下圖簡單表示(Windows下基本磁碟、4個主分割槽):

MBR分割槽結構

MBR分割槽結構

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

在MBR磁碟的第一個扇區內儲存著啟動程式碼和硬碟分割槽表。啟動程式碼的作用是指引計算機從活動分割槽引導啟動作業系統(BIOS下啟動作業系統的方式);分割槽表的作用是記錄硬碟的分割槽資訊。在MBR中,分割槽表的大小是固定的,一共可容納4個主分割槽資訊。在MBR分割槽表中邏輯塊地址採用32位二進位制數表示,因此一共可表示2^32(2的32次方)個邏輯塊地址。如果一個扇區大小為512位元組,那麼硬碟最大分割槽容量僅為2TB。

GPT磁碟分割槽結構可用下圖簡單表示(Windows下基本磁碟):

GPT分割槽結構

GPT分割槽結構

可以看到,在GTP磁碟的第一個資料塊中同樣有一個與MBR(主引導記錄)類似的標記,叫做PMBR。PMBR的作用是,當使用不支援GPT的分割槽工具時,整個硬碟將顯示為一個受保護的分割槽,以防止分割槽表及硬碟資料遭到破壞。UEFI並不從PMBR中獲取GPT磁碟的分割槽資訊,它有自己的分割槽表,即GPT分割槽表。

GPT的分割槽方案之所以比MBR更先進,是因為在GPT分割槽表頭中可自定義分割槽數量的最大值,也就是說GPT分割槽表的大小不是固定的。在Windows中,微軟設定GPT磁碟最大分割槽數量為128個。另外,GPT分割槽方案中邏輯塊地址(LBA)採用64位二進位制數表示,可以計算一下2^64是一個多麼龐大的資料,以我們的需求來講完全有理由認為這個大小約等於無限。除此之外,GPT分割槽方案在硬碟的末端還有一個備份分割槽表,保證了分割槽資訊不容易丟失。

Windows作業系統對GPT磁碟的支援

因為BIOS無法識別GPT分割槽,所以BIOS下GPT磁碟不能用於啟動作業系統,在作業系統提供支援的情況下可用於資料儲存。

UEFI可同時識別MBR分割槽和GPT分割槽,因此UEFI下,MBR磁碟和GPT磁碟都可用於啟動作業系統和資料儲存。不過微軟限制,UEFI下使用Windows安裝程式安裝作業系統是隻能將系統安裝在GPT磁碟中。

下表列出了Windows各版本作業系統對GPT磁碟的支援程度:

32位Windows對GPT分割槽支援情況

32位Windows對GPT分割槽支援情況

64位Windows對GPT分割槽支援情況

64位Windows對GPT分割槽支援情況

UEFI及其優勢

UEFI是BIOS的一種升級替代方案。關於BIOS和UEFI二者的比較,網路上已經有很多相關的文章,這裡不再贅述,僅從系統啟動原理方面來做比較。UEFI之所以比BIOS強大,是因為UEFI本身已經相當於一個微型作業系統,其帶來的便利之處在於:

首先,UEFI已具備檔案系統的支援,它能夠直接讀取FAT分割槽中的檔案;

什麼是檔案系統?簡單說,檔案系統是作業系統組織管理檔案的一種方法,直白點說就是把硬碟上的資料以檔案的形式呈現給使用者。Fat32、NTFS都是常見的檔案系統型別。

其次,可開發出直接在UEFI下執行的應用程式,這類程式檔案通常以efi結尾。

既然UEFI可以直接識別FAT分割槽中的檔案,又有可直接在其中執行的應用程式。那麼完全可以將Windows安裝程式做成efi型別應用程式,然後把它放到任意fat分割槽中直接執行即可,如此一來安裝Windows作業系統這件過去看上去稍微有點複雜的事情突然就變非常簡單了,就像在Windows下開啟QQ一樣簡單。而事實上,也就是這麼一回事。

要知道,這些都是BIOS做不到的。因為BIOS下啟動作業系統之前,必須從硬碟上指定扇區讀取系統啟動程式碼(包含在主引導記錄中),然後從活動分割槽中引導啟動作業系統。對扇區的操作遠比不上對分割槽中檔案的操作更直觀更簡單,所以在BIOS下引導安裝Windows作業系統,我們不得不使用一些工具對裝置進行配置以達到啟動要求。而在UEFI下,這些統統都不需要,不再需要主引導記錄,不再需要活動分割槽,不需要任何工具,只要複製安裝檔案到一個FAT32(主)分割槽/U盤中,然後從這個分割槽/U盤啟動,安裝Windows就是這麼簡單。後面會有專門的文章來詳細介紹UEFI下安裝Windows7、8的方法。

=======================

文章匆忙改就,如有錯誤之處望指出。

預裝Win8電腦重灌系統及UEFI+GPT安裝Windows7/8相關教程:

最後編輯於 2014年12月24日 23:11