1. 程式人生 > >關於UEFI啟動+GPT分割槽 的一些經驗

關於UEFI啟動+GPT分割槽 的一些經驗

前言:

  隨著時代和科技的發展,電腦越來越普及,似乎人人都可以張嘴就說“我懂電腦”,但是總有一些看起來完全不懂但實際上非常基礎的東西讓“懂”與“不懂”清晰地劃清界限。比如UEFI+GPT就是其中之一。那些之前認為自己已經精通電腦的人,遇到這個東西,忽然發現自己連以前自以為駕輕就熟的分割槽、裝系統都不會了。 
  儘管UEFI以及GPT從誕生迄今已經十餘年了,但是對於絕大多數人來講它們是完全陌生的,甚至根本就不知道還有這種東西。 
  但是由於Windows8作業系統的面世,預裝Windows8的電腦開始統一採用UEFI+GPT,很多人被迫接觸到,感覺就像突然從天上掉下來的東西一樣,無所適從,一籌莫展——“這到底是個什麼東西呢?” 
  一旦出現系統問題,唯一能做的解決辦法除了品牌機自帶的系統還原,最大能力不過就是把UEFI關閉,把硬碟從GPT再轉成MBR,從而徹底毀掉UEFI+GPT的優勢,重新回到陳舊落後的BIOS+MBR的系統安裝和執行方式上來。而每臺電腦的具體情況又不盡相同,有時候即使想用BIOS+MBR也不是肯定能成功的——“我該怎麼辦啊?” 
  正文:

 
  之前很長一段時間對UEFI+GPT沒有頭緒,有種無處下手的感覺,雖然UEFI+GPT安裝系統一直沒遇到什麼障礙,但是即使查閱了相當數量的資料,在認識上對於UEFI+GPT也沒有一個完整的概念,總覺得這是一個很難理解的東西,不得要領。不像最初接觸BIOS+MBR的時候那麼容易入門直至熟練操作。 
  先說關於什麼是UEFI和GPT,在此就不做詳解了,感興趣的都瞭解,不感興趣的說了也沒什麼用處。只說一點最基本的,MBR分割槽結構只能支援到2.2T的硬碟,超過2.2T就必須採用GPT分割槽,而就Windows而言,採用了GPT的硬碟,要想安裝並啟動Windows作業系統,只能選擇高於XP的64位作業系統,並且採用UEFI方式安裝、引導,否則無法啟動,而包括XP在內及其之前的32位作業系統完全不支援GPT,別說安裝、引導系統,直接無法識別。3T硬碟時代並不遙遠,要想正常使用你的電腦,這就是採用UEFI+GPT的必要性。 
  而最關鍵之處在於,照目前的形勢來看,由於預裝Windows8電腦的推動,UEFI+GPT已經是大勢所趨,與是否2.2T以上硬碟也已經沒什麼直接關係,也許就在不久之後的某一天開始所有的電腦全部使用UEFI單一啟動,不會再相容傳統BIOS。
 
  再說一下關於BIOS+MBR,從接觸電腦十幾年來,一直都是用的這種組合,直至今日,不敢說對此有多麼瞭解,最起碼在日常操作中基本無障礙了。比如:Windows各個版本甚至再+Linux+Mac的混合安裝、引導駕輕就熟,任意順序安裝,任意建立、修復引導,多硬碟混合引導,分割槽表損壞、主引導記錄損壞的修復、重建等等,都不存在任何問題。 
  而從一接觸UEFI+GPT,總是感覺這個東西無法理解。甚至一籌莫展,哪怕是引導損壞這樣之前在BIOS+MBR裡不叫事的事情,面對UEFI+GPT都束手無策,查了很多資料,除了重灌系統,在國內網路範圍內,全網竟然找不到任何一篇具體解決問題的文章。現在回想,很長一段時間內都無法理解這些問題,很多莫名其妙的所謂專業文章的誤導在其中作了重要貢獻。 
  後來索性拋開所有的那些亂七八糟的觀點、定義,按照自己的想法去摸索,經過近十天,幾十遍重灌系統,反覆的假設、實驗,總算是對UEFI+GPT有了一個總體的概念和較為清晰的認識,最關鍵的在於能夠隨意進行UEFI+GPT的安裝和引導修復了,這是最重要的,個人觀點一直都是,必須從實際出發,即使瞭解的再多,什麼問題也解決不了,紙上談兵,一切等於零。
可以毫不誇張的說,至少目前為止,本文是全網路唯一一篇對UEFI+GPT進行實用性介紹和以及解決實際問題的文章。 
  個人體會,實際上只要對BIOS+MBR有一定的瞭解和操作能力,完全可以繼續用BIOS+MBR的思路去考慮UEFI+GPT的問題,這樣的話很多事情都會迎刃而解,因為兩者之間在實際應用和操作上沒有本質區別,而不是像某些專業文章所渲染那麼高深莫測,並且盡其能事的竭力描述兩者之間的重大區別,使UEFI+GPT理解起來更加困難,在一定程度上來講,這就是一種因循誤導。(當然也不排除某些寫此類文章的人其實自己對這個東西也一知半解或者根本就不明白,除了千篇一律的抄襲、轉載,最多也只能翻來覆去的照搬官方術語,堆砌定義和理論,完全談不上有自己的觀點或者看法,更沒有什麼具體的解決方案。) 
  
關於UEFI的優越特性,比如可操作性、安全性、相容性、可擴充套件性之類的問題,在此不再多說,這是開發人員的事情,和我沒有關係。僅僅總結幾點兩者在系統安裝及引導方式方面一些異同,幫助同樣有此困惑的人理解這個東西: 
  【重要提示: 
  本文旨在“授之以漁”,力求融會貫通,知其然更知其所以然。因此本文既不包含網路上“技術文章八股文”式的定義、理論的堆砌和釋義,更不是“小白必備”的傻瓜式手把手操作教程,如果對以上兩種千篇一律的所謂“技術文章”有偏執的愛好,請務必及時停止瀏覽,另尋其好。】 
  不同點: 
  1.BIOS+MBR安裝系統要求硬碟只要存在非隱藏、活動的主分割槽就可以了;而UEFI+GPT要求硬碟上除了存在ESP分割槽,還必須存在至少一個主分割槽 
  2.BIOS+MBR一旦系統安裝好之後,如果系統引導檔案在單獨的分割槽,此分割槽可以在作業系統中可見,也可以設定此分割槽為隱藏,系統都可以正常啟動;而UEFI+GPT系統引導檔案所在的ESP分割槽在作業系統中為不可見 
  3.BIOS+MBR啟動要求的活動的主分割槽不是唯一固定的,可以任意設定某一分割槽為活動的主分割槽,然後MBR就可以通過分割槽表指引作業系統從此分割槽啟動,也就是說,可以在任意分割槽(主分割槽無論是否活動或者擴充套件分割槽)安裝作業系統,只要存在任意的活動主分割槽,就可以從此分割槽啟動作業系統;而UEFI+GPT只能把系統引導檔案放置在ESP分割槽 
  4.BIOS+MBR的系統引導檔案可以和系統檔案在同一分割槽的根目錄,也可以不與系統檔案同一分割槽,只要系統引導檔案所在分割槽為活動的主分割槽即可啟動作業系統;而UEFI+GPT只能把系統引導檔案放置在ESP分割槽,且作業系統必須在另外的主分割槽,也就是說,UEFI+GPT強制要求系統啟動檔案與系統檔案必須分離,不在同一分割槽。 
  相同點: 
  
1.BIOS+MBR和UEFI+GPT的系統引導檔案都可以放置在單獨的分割槽,這一點在上面的第4點裡已經說的很清楚 
  2.BIOS+MBR的系統引導檔案所在的活動主分割槽位置不是固定的,可以隨意設定任意分割槽滿足此條件,UEFI+GPT的ESP的位置也是可以隨意設定的,在硬碟起始位置、中間位置、末尾,都可以,只要分割槽屬性和其中的引導檔案正確,就可以引導啟動作業系統(參考文中附圖) 
  3.BIOS+MBR的系統引導檔案所在的分割槽和UEFI+GPT的ESP分割槽都可以分配任意大小,而不是ESP必須100M 
  4.BIOS+MBR安裝系統所需的非隱藏、活動主分割槽和UEFI+GPT的系統的ESP分割槽,都可以同時設定多個,但是即使有多個相同屬性的分割槽,系統安裝時安裝程式都是自動寫入第一個,啟動時也都是從第一個啟動(參考文中附圖) 
  補充: 
  1.使用BIOS+MBR和UEFI+GPT安裝的系統檔案是一模一樣的,唯一的區別只是引導方式的不同,因此使用GHOST手動備份的系統,MBR和GPT可以任意交叉還原,只要做好引導修復就沒有任何問題 
  2.GHOST始終是系統備份還原神器,只要熟練掌握GHOST手動操作,至少目前為止Windows系統的範圍之內,無論什麼版本,無論MBR還是GPT,都可以隨意備份還原。 
  3.MBR與GPT分割槽互轉的話,與“刪除所有分割槽”以及“全盤格式化”沒有任何必然聯絡,你格式化一萬遍硬碟也還是原來的分割槽結構,只有通過轉換操作才可以到另一種,而這個轉換操作與“刪除所有分割槽”以及“全盤格式化”沒什麼關係。 
  著重強調一點: 
  以上所有經驗均基於UEFI+GPT的組合,而實際上,UEFI啟動(Windows作業系統)的話,並不強制要求硬碟必須為GPT分割槽,而是隻要硬碟上存在EFI啟動檔案且位於FAT(16/32)分割槽就可以了(UEFI無法從NTFS分割槽啟動)。因此如果是小於2.2T的硬碟,不必非得轉換成GPT也可以引導系統啟動。也就是說,UEFI+MBR也是可行的,而GPT硬碟的話,則必須使用UEFI引導,BIOS無法原生引導GPT硬碟上的作業系統(Windows)。 
  關於這一點,如果感覺不能理解的話,可以通過以下具體應用來參考。 
  注: 
  綜觀網上那些關於UEFI的所謂技術類文章,除了毫無實用價值和實際意義,而且都不同程度的存在各種各樣的因循誤導,繼而被以訛傳訛,最終成為一些人堅信不疑的“定律”。這樣的誤導主要表現為兩點: 
  1.就是剛剛說的,“UEFI啟動系統必須是GPT分割槽”,這個已經說得很明白了,並且有例項解析,無需再討論 
  2.另外一個就是不知道從什麼時候什麼人開始謠傳的“UEFI的優勢就是啟動速度快”或者“UEFI啟動比傳統BIOS啟動速度快”。無論UEFI還是GPT,與電腦啟動速度沒有任何必然聯絡。或者說,只要硬體環境相同、系統一樣,無論UEFI+GPT安裝還是BIOS+MBR安裝系統,啟動速度沒有區別 
  
  
  附:部分Windows桌面作業系統對GPT的支援 
  資料讀寫系統啟動 
  WindowsXP32位不支援GPT不支援GPT 
  WindowsXP64位支援GPT不支援GPT 
  WindowsVista32位支援GPT不支援GPT 
  WindowsVista64位支援GPT支援GPT(需UEFI) 
  Windows732位支援GPT不支援GPT 
  Windows764位支援GPT支援GPT(需UEFI) 
  Windows832位支援GPT不支援GPT 
  Windows864位支援GPT支援GPT(需UEFI) 
  有了以上的經驗總結,就可以輕鬆解決以下問題了: 
  1.UEFI+GPT環境下以任意方式安裝作業系統(單系統或者多系統)。這個不必詳解了 
  2.最主要的問題:UEFI+GPT引導修復操作(EFI引導檔案損壞、ESP分割槽損壞或者丟失之後手動重建EFI引導等等)。這個在此也不做詳解,這是這段時間反覆研究、實踐的最重要成果,因此姑且算是有所保留賣個關子吧,如果是結合以上幾點經驗總結,對UEFI+GPT有一定的瞭解之後,應該不難揣摩出辦法 
  3.如果主機板不支援UEFI,使用折中的辦法來解決大硬碟使用問題,這個問題以前我也已經多次提過。 
  第一種辦法就是使用多塊硬碟,MBR+GPT組合,MBR硬碟作為啟動引導盤。 
  小於2.2T的硬碟採用MBR,大於2.2T的硬碟採用GPT,這樣的話,解決方案就很靈活了,可以根據以上所列相同點的第1條和補充裡面第2條,使用MBR硬碟建一個非隱藏活動主分割槽,放置系統引導檔案,然後將系統安裝在MBR硬碟或者GPT硬碟都可以,無論單系統還是多系統都無所謂,兩塊硬碟交叉安裝作業系統也沒有任何問題 
  強調兩點: 
  1.這樣安裝的話不限於64位作業系統及XP以上版本,理論上只要是能對GPT硬碟進行讀寫的系統版本就可以安裝。實際測試,32位XP和2003sp1以及之前的版本,電腦事先安裝GPT硬碟的情況下,即使系統安裝在MBR硬碟,原版系統安裝,沒有問題,如果是Ghost系統,有可能出現卡死或者藍屏等問題導致無法順利安裝;先在MBR硬碟安裝好系統,然後再裝GPT硬碟,無論原版還是Ghost系統都沒有問題,只是GPT分割槽無法識別(解決方法很簡單,就是使用2003sp2的disk.sys檔案替換到以上系統,就可以完美識別GPT分割槽,此法簡單易操作,且不涉及系統穩定問題,感興趣的話可以自行搜尋)。64位XP安裝在MBR硬碟,引導、啟動都沒有問題,安裝在GPT硬碟無法引導。其他系統無論32位還是64位,無論安裝在MBR還是GPT,都可以正常引導啟動; 
  2.BIOS安裝系統到GPT硬碟僅限於Ghost方式,Ghost解壓完畢後手動修復引導即可。 
  第二種辦法是單塊大於2.2T的硬碟+U盤或者光碟組合 
  使用GPT分割槽結構對硬碟進行分割槽,是否建立ESP分割槽都無所謂,因為主機板不支援UEFI,建立此分割槽也沒什麼用,全憑個人愛好了。然後只能使用Ghost方式解壓安裝作業系統到硬碟,無論單系統還是多系統,全部安裝完畢後,準備一個U盤,大小無所謂,只要不小於十幾M就行,使用分割槽軟體設為活動主分割槽,插在電腦上。進PE(2003sp1以上版本),手動或者使用工具軟體修復單系統或者多系統引導,將引導檔案寫入U盤。然後就可以使用此U盤啟動所安裝的單系統或者多系統了。此方法實際上就是用U盤代替了第一種方法中的小硬碟而已,沒什麼本質區別。(這個方法大概10年前我就在電腦論壇發過帖子,當時考慮的是用U盤做一個系統啟動鑰匙,因為系統引導檔案在U盤上,電腦如果不插這個U盤是無法啟動的。MBR硬碟系統:Windows864位+Windows732位+WindowsXP32位,GPT硬碟系統:Windows832位+Windows764位+WindowsVista32位,測試環境:雜牌945主機板、32M老U盤,測試通過。) 
  另外還可以再使用光碟來代替U盤,具體方法說起來更簡單,用軟體建立一個可啟動光碟(建立方法自行查詢,會做的不用講,壓根沒接觸過的,另開帖子專門講也不一定看得懂),然後將上面U盤裡的系統啟動檔案加進去燒錄就可以了。然後使用此光碟啟動電腦,效果和U盤是一樣的。此方法僅僅作為一種可行性的介紹,不推薦使用,U盤比這個方便的多,沒必要多此一舉。 
  備註:使用此方法,理論上來講凡是可以對GPT進行讀寫的系統都適用,但實際上XP以上系統無論32位還是64位作業系統全部測試可行,但是2003sp1及XP64位這些可以讀寫GPT的系統也不行,這個不知道是由於NT5.X的ntldr引導機制還是其他的什麼原因,有知道原因的朋友不吝賜教! 
  注: 
  1.除專門標明“Ghost系統”,本文所提及的系統安裝均為微軟原版Windows系統,不包含任何修改版本 
  2.非UEFI主機板安裝原版系統到GPT磁碟,只能採取wim直接解壓到分割槽或者先將系統Ghost化,然後解壓安裝的辦法。 
  3.本文所有結論全部為反覆多次實際測試結果,不是設想、假設,更不是想象或者幻想以及想當然的以為 
  4.本文內容已經多次修訂和修改,這是個人的一點經驗總結,難免有紕漏以及表達不準確之處,望有相關經驗的朋友給予更多幫助 
  附註: 
   
  鑑於許多的網友瀏覽本文之後提出如下問題,因此酷站網軟特集中在此做如下補充說明,不再過多贅述及一一答覆:
 
  原本很早之前就寫了一篇關於預裝win8的電腦改其他系統以及安裝多系統的文章,雖然經過多次修改,最後還是放在電腦裡沒有在任何地方發表出來。 
  雖然那是親自實踐過多個品牌和型號的預裝機器之後總結出來的經驗,但是仍然發現在其他品牌和型號的電腦上根本無法通用。而我不可能也沒條件遍試所有的機器,因此此篇文章就此擱淺。 
  因此我在我的這篇文章裡面沒有涉及任何預裝win8系統的電腦改系統的問題。 
  這是我的一貫態度,我所寫的都是我親身實踐、確實可行、不需討論的,在我這裡不可能出現“我覺得”“我認為”“應該是”這類想象或者幻想的東西。 
  (在此還是要特別強調幾點: 
  1.這個意思並不是說“預裝win8的電腦改其他系統以及安裝多系統”是完全不可行的,只是目前為止還沒找到通用的方法。也就是說可能在某個品牌和型號的電腦上按照某種方法安裝非常順利,但是同樣的方法用在其他品牌和型號的電腦上可能完全不適用。 
  2.不管是用何種方法,比如Ghost、PE、nt6 hdd installer、快捷安裝器、直接setup、在vhd裝、全盤轉換成mbr、手動寫引導等等方法,將其他系統裝進硬碟,只要通過這塊主機板啟動,就要面對安裝失敗的問題,因此制約因素在主機板上,並不在於採用什麼方式安裝系統。

轉載自:http://www.kzwr.com/article/110118   Biny

----------------------------------------------------------------------

PS:  

開啟“命令提示符”後,依此鍵入下面的命令(每條命令跟一個回車)即可完成轉換:

Diskpart   --------------------------------  啟動Diskpart分割槽命令

help   ------------------------------------  輸入help,回車,檢視所有命令

List disk   -------------------------------  列出計算機的硬碟

Select disk n   ---------------------------  選擇硬碟 n=你的硬碟序號,一般是0或者1

Clean   -----------------------------------  清除磁碟所有分割槽。

Convert gpt   -----------------------------  轉換硬碟為GPT格式

list partition   --------------------------  顯示硬碟分割槽

create partition efi size=100   -----------  建立EFI分割槽,大小為100m

create partition msr size=128   -----------  建立MSR分割槽,大小為128m

create partition primary size=75000   -----  建立主分割槽,大小為75G(安裝系統用,剩下的空間,安裝完系統,進入系統再分割槽。)