win10+ubuntu雙系統:UEFI+GPT和Legacy+MBR引導模式

由于簡書沒有目錄 想看目錄的直接
打開CSDN的同名文章

目錄:

[TOC]

磁盤分區格式介紹

一般來說,磁盤分區表有兩種格式:MBR 和 GPT

MBR 分區

在 windows 操作系統下最多支持4個主分區或3個主分區+1個擴展分區(包含多個邏輯分區),擴展分區必須劃分為邏輯分區才能使用,1個擴展分區可以劃分多個邏輯分區,MBR 分區表不支持容量大于2.2TB的分區(一些硬盤制造商將他們的容量較大的磁盤升級到了 4KB 的扇區,這意味著 MBR 的有效容量上限提升到了 16 TB)

如下圖 : 是一個 MBR 分區表示例:1 個主分區+1 個擴展分區(劃分了 3 個邏輯分區)

GPT 分區

GPT 分區 對分區數量沒有限制,但在 windows 系統上最多可以支持 128 個主分區GPT 分區表突破了 MBR 最大支持 2.2T 分區的限制,貌似最大支持 18EB 的分區如下圖是一個 GPT 分區表示例:劃分了 7 個主分區

檢測磁盤分區表格式的方法

當然檢測磁盤分區表格式的方法大概有兩種:

  • 打開Windows下磁盤管理---->右擊一個磁盤屬性


  • 第二種就是通過分區工具查看


GPT和MBR轉化

當然GPT也可以轉化為MBR,相反MBR也可以轉化為GPT

image.png

BIOS引導方式

目前主要的系統引導方式也有兩種:傳統的LegacyBIOS和新型的UEFI BIOS

一般來說,有如下兩種引導+磁盤分區表組合方式:LegacyBIOS+MBR和UEFI BIOS+GPT
Legacy BIOS無法識別GPT分區表格式,所以也就沒有LegacyBIOS+GPT組合方式;UEFI BIOS可同時識別MBR分區和GPT分區,所以UEFI下,MBR和GPT磁盤都可用于啟動操作系統。不過由于微軟限制,UEFI下使用Windows安裝程序安裝操作系統是只能將系統安裝在GPT磁盤中。
再來說說傳統Legacy BIOS和新型UEFI BIOS引導方式的工作原理吧:

Legacy BIOS原理

LegacyBIOS----->MBR----->活動的主分區(一般的為C盤)→\bootmgr→\Boot\BCD→\Windows\system32\winload.exe

傳統Legacy BIOS引導windows操作系統時,是通過一個活動的主分區下的bootmgr(啟動管理器)文件導入根目錄下boot文件夾里的BCD(啟動設置數據)文件,然后BCD文件根據自身的配置內容加載系統啟動文件winload.exe(位置:根目錄\Windows\system32\winload.exe)來啟動系統。

一個BCD文件可以加載多個系統啟動文件從而實現引導多個系統的啟動通過EasyBCD工具看以看到BCD文件的內容,如下是我的win8.1和win10兩個系統的BCD內容:

當然要是Windows和ubantu的話就是如下樣子:反正都在活動區(一般的在c盤)

需要注意的是:MBR磁盤格式下,windows系統的啟動文件(bootmgr、BCD)必須存放在活動的主分區內,這樣才能正常引導系統啟動(MBR磁盤分區格式下,只允許有一個分區是活動的)。

如果是使用微軟原版操作系統按照windows安裝程序來進行系統安裝,系統會自動創建一個隱藏的活動主分區(win7貌似是100M,win8貌似是350M)用來存放啟動文件;
如果采用其他安裝方式來安裝系統,由于系統默認并不會自動創建這個活動的主分區,啟動文件將會存放我們的系統盤里,所以我們在采用其它安裝方式安裝第一個系統時,需要確保安裝系統的分區是活動的、而且是主分區,而安裝第二個、第三個…系統時,就不必要求必須是主分區了,邏輯分區也可以,因為安裝第二個、第三個…系統時,我們已經有了一個活動的主分區了(第一個系統所在的分區),這個活動的主分區下的BCD文件里已經包含了我們的第二個、第三個…系統的啟動信息用來啟動第二個、第三個…系統。(設置這些系統的時候可以用EasyBCD)

UEFI BIOS原理

  • esp引導分區中的文件結構
efi\boot\bootx64.efi
efi\microsoft\boot\bcd
  • efi啟動過程

uefi bios啟動時,自動查找硬盤下esp分區的bootx64.efi,然后由bootx64.efi引導
efi下的bcd文件,由bcd引導指定系統文件(一般為c:\windows\system32\winload.efi)

UEFIBIOS---->EFI系統分區(FAT格式的分區)---->\efi\boot\bootx64.efi---->\efi\Microsoft\boot\BCD---->\Windows\system32\winload.efi

UEFI BIOS引導windows系統時,是通過一個FAT格式分區下的bootmgfw.efi文件來導入BCD文件,然后BCD文件根據自身的配置內容加載系統引導文件winload.efi(對比legacy引導發現,UEFI的引導文件winload.efi,而Legacy的引導文件為winload.exe)

需要注意的是:GPT磁盤格式下,windows系統的啟動文件(bootmgfw.efi、BCD)是存放在一個FAT格式的分區里的,有些出廠預裝win8系統的電腦下將該FAT分區稱之為ESP分區或EFI分區

如下圖,ESP和EFI分區一般都是隱藏的FAT分區,可以通過DG分區工具來創建ESP分區,預裝系統的時候的MSR分區沒神馬用.不用管他

可見,UEFI+GPT模式引導windows系統時,并不需要MBR主分區來存儲主引導記錄,也不需要活動分區,只需要你一個存放了引導啟動文件的fat格式分區就可以了,這個Fat分區當然也可以是U盤等外接USB設備了。
就目前情況而言,GPT分區表磁盤不支持32位的win7以及win7之前的系統,支持64位的XP、win7、win8、win10和32位的win8、win10。一般地,GPT磁盤多與64位windows系統組合搭配。同時Ubantu16.04支持UEFI啟動.

引導修復教程

再來說說引導丟失、損壞導致系統無法正常進入情況下,如何通過修復引導來使系統正常啟動。

引導問題故障舉例:

常見的引導丟失、損壞情況說明如下:


上圖,Winload.exe文件有問題,可見是Legacy BIOS引導文件出錯;如果此處是winload.efi,則應推測是UEFI BIOS引導文件出錯。

上圖,NTLDR is missing,NTLDR文件丟失。推斷為:XP等NT5.x架構操作系統引導丟失。

NTLDR是如win 2000、XP、win2003等NT5.x架構操作系統的啟動管理器文件,與之對應的bootmgr則是如Vista、win7/8/9/2008/2012等NT6.x架構操作系統的啟動管理器,如下圖:

上圖,Bootmgr is missing,推斷為:win7、win8等NT6.x架構操作系統引導丟失。

引導修復工具

下面介紹的兩種方法所涉及到NABOOTAutofix、BOOTICE、DG等工具一般PE下都會集成的,這里就不給大家放單獨的下載鏈接了。PE制作及使用的話,請百度“電腦店”“大白菜”“老毛桃”等關鍵字。

使用NTBOOT AutoFix工具來修復引導

如果你的系統無法正常進入,那么請到PE下運行NTBOOT AutoFix進行修復;如果你是多系統,其中有一個系統可以正常進入,其它系統引導丟失,那么就可以在這個正常的系統下使用NTBOOT AutoFix進行修復,一般PE下都會集成這個軟件。
選擇你的系統盤符,如下圖

image.png

【注意】
使用該軟件進行UEFI+GPT模式系統引導修復時,需要建立ESP/EFI分區,可通過DG等工具為ESP/EFI分區并建立盤符,打開NTBOOT引導修復工具,在里面選擇ESP/EFI分區所在盤符,修復即可

使用BOOTICE工具來修復引導

此工具不是專門用來修復引導的,其功能很是強大,這里只講如何借助它修復引導

Legacy+MBR修復

運行BOOTICE后,切換到“BCD編輯”,然后“新建BCD”

新建BCD,文件名為:BCD

然后點擊“查看/修改”

點擊“添加”,選擇“windowsvista/7/2008”(這是NT6.x架構系統,當然win8/10也適用)

點擊“添加”后,如下圖為默認的初始BCD內容

UEFI+GPT修復

接下來,我們按照上面的方法再次添加win10的BCD信息,修改好之后,保存當前系統設置,win10的BCD信息就添加好了;然后再點擊“保存全局設置”,這樣,win8和win10的引導信息就會保存到我們創建的這個BCD文件中了,如下圖:

創建好BCD文件后,我們只需在PE下將這個BCD替換到相應的目錄下就可以完成引導修復了。

  • 如果是UEFI+GPT模式的,隨此處BCD替換文件的目錄為ESP/EFI這個Fat分區:efi\Microsoft\BCD(都是隱藏分區要在pe下查看)
  • 如果是Legacy+MBR模式,若磁盤有一個隱藏的活動主分區,我們需要先給這個隱藏的主分區添加盤符(PE下磁盤管理添加盤符或借助DG工具添加),然后將該BCD文件替換到這個活動主分區:\Boot\BCD(都是隱藏分區要在pe下查看)

命令行修復指定efi分區

如果誤刪EFI分區,在不用pe環境或者軟件的情況下

[圖片上傳失敗...(image-69d432-1517668526663)]

正常情況下是不能刪除的,不要手賤 不要手賤 不要手賤!

首先要有Windows的efi啟動環境

Windows安裝環境

還存在efi分區

  • 做完這個直接重啟選擇含有efi啟動的u盤
  • 進到安裝界面以后按Shift+F10打開一個命令行窗口
  • 如果你的EFI分區還在 只是被破壞需要修復的話,執行bcdboot c:\windows /l 即可,c是Windows安裝的盤符,不是的話自己改下盤符就可以

不存在efi分區

如果沒有EFI分區 執行以下命令

diskpart 
list disk 
select disk * (選擇你要重建EFI分區的盤的編號,以數字代替*)
list partition (如果有大于500MB的未分配空間,跳過下兩步)
select partition * (選擇你要減少500MB空間的分區的編號,以數字代替*)
shrink desired = 500 
create partition efi size = 500
format quick fs = fat32 
exit 

因為我硬盤上沒有未分配空間,上面的命令是從已經存在的分區分出500MB以便能創造新的EFI分區
然后執行執行bcdboot c:\windows /l c是Windows安裝盤符,這條命令是把系統盤的引導信息復制到EFI分區

PE環境下修復

用bootice自動修復

我們建議大家啟動64位win8PE,用它帶的bcdboot來修復。

  • 指定esp分區修復
    1.啟動64位win8PE,并用esp分區掛載器或diskgenuis掛載esp分區
    2.打開cmd命令行,輸入以下命令并運行
    bcdboot c:\windows /s o: /f uefi /l zh-cn
    其中:
    c:\windows 硬盤系統目錄,根據實際情況修改
    /s o: 指定esp分區所在磁盤,根據實際情況修改
    /f uefi 指定啟動方式為uefi
    /l zh-cn 指定uefi啟動界面語言為簡體中文
    注:64位win7PE不帶/s參數,故win7PE不支持bios啟動下修復

  • 不指定esp分區修復
    環境為64位win7或win8PE,只有uefi啟動進入PE才可以
    不用掛載esp分區,直接在cmd命令行下執行:
    bcdboot c:\windows /l zh-cn
    注意不指定esp分區的情況是已經存在了esp分區
    其中
    c:\windows 硬盤系統目錄,根據實際情況修改
    /l zh-cn 指定uefi啟動界面語言為簡體中文
    注:在8PE中,我們也可以在uefi啟動進入pe后,掛載esp分區用方法(一)修復

用bootice手動修復

從efi引導啟動過程來看,雖然它的文件很多,但主要用到的就是兩文件,我們完全可以在各pe下掛載esp分區,從硬盤系統中復制bootx64.efi文件,然后用用bootice制作好bcd,就完成efi引導修復。

  1. 啟動任一pe,用esp分區掛載器或diskgenuis掛載esp分區
  2. 查看esp分區是否可正常讀寫,如不正常可重新格式化為fat16或fat32分區格式。
  3. 在esp分區中建立如下空文件夾結構
\efi\boot\   (bootx64.efi等復制)
\efi\microsoft\boot\ (bcd等建立)
  1. 復制硬盤系統中的bootmgfw.efi(一般在c:\windows\boot\efi下)到esp分區的\efi\boot
    下,并重命名為bootx64.efi
    5.打開bootice軟件,有esp分區的\efi\microsoft\boot\下新建立一bcd文件,
    打開并編輯bcd文件,添加“windows vista\7\8啟動項(參考上面圖片)
    指定磁盤為硬盤系統盤在的盤,
    指定啟動分區為硬盤系統分區(一般為c:)
    指定啟動文件為:\Windows\system32\winload.efi, 是.efi,不是.exe,要手工改過來
    最后保存當前系統設置并退出。
    這樣子,精簡的UEFI引導就手工修復了,實機和虛擬機測試通過。

efi系統分區設定盤符

查看esp分區不一定在pe下,在正常的Windows下也可以

以管理員身份運行,輸入:

image.png
diskpart
list disk
select disk 0
list part
sel part x   (x為EFI分區分區號)
set id=ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
assign letter=y   (y為分配的盤符)

[圖片上傳失敗...(image-baed96-1517668526663)]

一步一步來! 每一行是一步!

安裝Ubuntu

在安裝前要介紹下ubuntu的各個目錄

ubuntu目錄介紹

  • / 根目錄,建議在根目錄下面只有目錄,不要直接有文件。

  • swap 交換空間,相當于Windows上的虛擬內存(一般和物理運存一樣就可以)。

  • /boot 包含了操作系統的內核和在啟動系統過程中所要用到的文件,目前可有可無

  • /home 用戶的home目錄所在地,這個分區的大小取決于有多少用戶。如果是多用戶共同使用一臺電腦的話,這個分區是完全有必要的,況且根用戶也可以很好地控制普通用戶使用計算機,如對用戶或者用戶組實行硬盤限量使用,限制普通用戶訪問哪些文件等。 以往Linux系統主要是提供服務器使用,所以/home這個目錄使用量并不高。但隨著Linux的桌面應用發展,不少人也拿來在日常上使用,這時/home就變成存儲媒體中,最占容量的目錄。假如你安裝Ubuntu主要是桌面應用,那你可能需要把最大的空間留給他。 額外分割出/home有個最大的好處,當你重新安裝系統時,你不需要特別去備份你的個人文件,只要在安裝時,選擇不要格式化這個分區,重新掛載為/home就不會丟失你的數據。 還有一個特別的應用:假如你會在你的計算機上,安裝兩個或更多的Linux系統,你可以共享/home這個分區。簡單地說,你的個人文件可以在切換到其它Linux系統時,仍正常使用

  • /tmp 用來存放臨時文件。這對于多用戶系統或者網絡服務器來說是有必要的。這樣即使程序運行時生成大量的臨時文件,或者用戶對系統進行了錯誤的操作,文件系統的其它部分仍然是安全的。因為文件系統的這一部分仍然還承受著讀寫操作,所以它通常會比其它的部分更快地發生問題。這個目錄是任何人都能訪問的,所以需要定期清理。

  • /usr Linux系統存放軟件的地方,如有可能應將最大空間分給它
    除了系統的基本程序外,其它所有的應用程序多放在這個目錄當中。除了/home,/var這種變動數據的存放目錄外,/usr大概是會是使用容量最大的目錄,不過一般Linux下的應用程序通常不大,所以大多數的桌面應用頂多 3~4GB 的空間就已經相當足夠了,若是服務器,多半也是 2~3GB 就足夠了。

  • /bin
    /usr/bin
    /usr/local/bin 存放標準系統實用程序。

  • /srv 一些服務啟動之后,這些服務所需要訪問的數據目錄,如WWW服務器需要的網頁數據就可以放在/srv/www中。

  • /etc 系統主要的設置文件幾乎都放在這個目錄內。

  • /lib
    /usr/lib
    /usr/local/lib 系統使用的函數庫的目錄。

  • /root 系統管理員的家目錄。

  • /lost+found 該目錄在大多數情況下都是空的,但當實然停電或者非正常關機后,有些文件臨時存入在此。

  • /dev 設備文件,在Linux系統上,任何設備都以文件類型存放在這個目錄中,如硬盤設備文件,軟驅、光驅設備文件等。

  • /mnt

  • /media 掛載目錄,用來臨時掛載別的文件系統或者別的硬件設備(如光驅、軟驅)。

  • /opt 用于存儲第三方軟件的目錄,不過我們還是習慣放在/usr/local下

  • /proc 此目錄信息是在內存中由系統自行產生的,存儲了一些當前的進程ID號和CPU、內存的映射等,因為這個目錄下的數據都在內存中,所以本身不占任何硬盤空間。

  • /sbin
    /usr/sbin
    /usr/local/sbin 存放一些系統管理員才會用到的執行命令。

  • /var 主要放置系統執行過程中經常變化的文件,例如緩存(cache)或者是隨時更改的登錄文件(log file)。
    假如你的計算機主要是提供網頁服務,或者是mysql數據庫,那/var會大量增加,你最好能夠把/var額外分割出來。與/home的概念類似,重新安裝時,不要格式化,仍可保留原來的數據。
    在服務器的應用時,數據的安全是相當重要的,額外分區對數據的安全也有所幫助。此外,/var/log是系統log檔保存的位置,養成有問題就去找log的好習慣,有助于解決問題。所以這也加強了額外分區的重要性。當一個服務器出現系統問題,甚至毀損時,除了你的數據外,之前的系統紀錄也相當重要,找出為什么系統會出問題,可以幫助管理器快速排除障礙。

  • /var/log 系統日志記錄分區,如果設立了這一單獨的分區,這樣即使系統的日志文件出現了問題,它們也不會影響到操作系統的主分區。

本人方案

由于采用了GPT模式的硬盤分區,所以接下來的分區都是主分區
分為3個區

  1. 掛載點/: 安裝系統和軟件;大小為60G;分區格式為ext4; 這個是用的固態硬盤某個分區,用固態是為了快
  2. 掛載點/home: 相當于“我的文檔”;大小100G; 分區格式ext4; 這個是用的機械硬盤某個分區
  3. swap: 充當虛擬內存;大小等于物理內存大小;分區格式為swap ,用的機械硬盤
  4. /boot:不用分配

多系統共用esp

如果電腦之前就有Windows10或者通過自己按照上面的方法安裝了Windows10,會存在一個幾百兆的esp分區,當安裝多個系統的時候可以將引導都安裝到這個分區上,接下來利用ubuntu官網介紹制作u盤efi啟動(自行谷歌),最后安裝ubuntu引導到esp分區上就可以了

修復ubuntu啟動

如果ubuntu的引導和Windows的引導在一個esp分區上那就需要修復下引導了

  • 啟動ubuntu安裝盤 用efi方式啟動然后選擇試用ubuntu 在命令行輸入
sudo add-apt-repository ppa:yannubuntu/boot-repair 
sudo apt-get update
sudo apt-get install -y boot-repair
boot-repair

修復后重啟就可以了

[圖片上傳失敗...(image-81ae04-1517668526663)]

EasyUEFI的軟件以及我自己的備份

自己電腦安裝:

宏碁E1-471g(我在家里開發用)

  • 這款電腦是老式電腦,采用的啟動是Legacy+MBR引導模式
  • 我的光驅位置換成了500G機械硬盤,主硬盤位置放上了固態,注意:固態最后放才能被識別
  • 安裝完了Ubuntu后直接進入的是Windows,采用easybcd設置啟動項

聯想Y700

  • 這款電腦是采用的UEFI+GPT啟動模式
  • 先在pe下的分區助手將硬盤轉化為GPT格式
  • 磁盤轉化完后,在分出一個500M的efi系統引導分區(FAT格式的),安裝Ubuntu的時候將引導放到efi分區上,這個分區存放這以后Windows和Ubuntu的引導文件

針對聯想Y700電腦還有一個毛病

就是無緣無故的鍵盤失靈,在這我升級了下BIOS,我測試過了(用了半個月)倒是沒有出現鍵盤失靈的情況,其實網上也有好多說直接弄個外接鍵盤,我只想說呵呵,那是在逃避問題并沒有解決問題,好了我就不廢話了直接上圖:
Y700-15ISK_bios cdcn53ww
查看BIOS版本:win+R 輸入msinfo32出廠的BIOS版本:

升級后:

參考

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,837評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,196評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,688評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,654評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,456評論 6 406
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,955評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,044評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,195評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,725評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,608評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,802評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,318評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,048評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,422評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,673評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,424評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,762評論 2 372

推薦閱讀更多精彩內容