1. 程式人生 > >UEFI安裝Win10/Ubuntu16.04雙系統記錄

UEFI安裝Win10/Ubuntu16.04雙系統記錄

本文基於以下硬體環境:
  主機板:華碩ROG B250G
  硬碟:浦科特M8PEG 256g(NVME M.2)

1. 作業系統相關科普

為安裝雙系統,我在網上查了許多資料,一些名詞似曾相識卻又不解其意,特在此總結下:

  • UEFI(Unified Extensible Firmware Interface):全稱“統一的可擴充套件韌體介面”,是EFI的升級版,用於取代傳統BIOS;
  • Legacy/CSM:大多數UEFI主機板為了相容,保留了傳統BIOS的啟動方式,開啟的相關選項為Legacy或CSM;
  • ESP(EFI System Partion):是EFI系統分割槽的簡稱,屬於隱藏分割槽;
  • GPT(GUID Partition Table):物理硬碟分割槽列表,支援無限個主分割槽,用於取代MBR。

以EFI模式啟動電腦的流程大致如下:
系統啟動流程
Bootloader(引導)程式碼及配置檔案存於系統盤的ESP中,其中Win10自帶的Bootloader為Windows Boot Manager,ubuntu16.04自帶的Bootloader為GRUB2
ESP
Microsoft封鎖了EFI模式Windows boot manager新增其他系統的入口,這就意味著在UFEI模式下如果以Windows boot manager作為主引導,將無法啟動ubuntu。
目前實現win10/ubuntu16.04雙系統有兩種方案:

  • 依然以Windows Boot Mananger為主引導,但需要關閉UEFI和Secure Boot、開啟Legacy/CSM,最後通過EasyBCD手動新增Ubuntu入口;
  • 以GRUB2作為主引導。

顯而易見,第二種方案更省時省力。

Tips:Ubuntu早已經購買了Microsoft的安全啟動金鑰,如果以GRUB2作為主引導,根本不需要關閉安全啟動

2. 安裝前的準備

2.1 為Ubuntu分割槽

為了兩個系統的檔案互不干擾,需要將Ubuntu安裝在另外一個分割槽中,這裡使用Win10自帶的磁碟管理為Ubuntu劃分一個60G左右的空間,注意新的分割槽要保持未分配狀態,操作步驟如下:
快捷鍵ctrl+x-》選擇磁碟管理-》右鍵點選C盤(win10系統盤)-》壓縮卷-》設定大小為60G
ubuntu分割槽

2.2 製作Ubuntu啟動盤

官網下載Ubuntu16.04映象檔案,然後使用UltraISO將映象檔案寫入U盤:
製作啟動U盤

3. 安裝ubuntu

電腦開機,按F8選擇帶UEFI標識的U盤為第一啟動項:
選擇啟動盤

然後進入ubuntu安裝介面,在安裝型別介面中選擇其他選項
安裝型別

接下來選擇剛才在win10中劃分出的60G空閒空間,為Ubuntu繼續細化分割槽,建議只分”/swap”、”/”、”/home”三個分割槽:

  • “/swap”,即虛擬記憶體,當實體記憶體不足時與其交換空間,分配太多swap空間浪費磁碟空間,太少則影響系統性能,建議等額實體記憶體大小,當然如果實體記憶體夠大,也可以不要虛擬記憶體;
  • “/”,根分割槽,ext4檔案系統,整個檔案系統的起始點,必不可少;
  • “/home“,使用者分割槽,ext4檔案系統,用於存放使用者資料,屬於可選項。

點選+號,選擇掛載點,分割槽型別一律選擇主分割槽(因為GPT硬碟支援無限個主分割槽),依次為三個分割槽分配合適大小的空間,下圖是我的分割槽情況,僅供參考:
分割槽表

最後安裝啟動引導器的裝置選擇整個硬碟/dev/nvme0n1,接下來GRUB2將會自動安裝到硬碟的ESP中,與Windows Boot Manager“比鄰而居”。

安裝Ubuntu完畢後,重啟按F2進入UEFI中設定第一啟動項為帶ubuntu標識的硬碟:
啟動項
設定完畢後重新啟動,接下來就可以看到紫色的GRUB2介面了,按上下鍵選擇啟動Ubuntu或是Windows。

4. 後續

4.1 雙系統時間不一致解決辦法

Windows以電腦硬體時間為本地時間;Ubuntu則以電腦硬體時間為UTC(全球統一時間),然後通過時區差計算再轉化為本地時間。因此解決辦法就是讓Windows也以電腦硬體時間為UTC處理,修改登錄檔即可:
在登錄檔HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation下新建QWORD值RealTimeIsUniversal,然後將其鍵值改為1。
登錄檔

4.2 調整GRUB2中預設啟動順序

GRUB2中預設啟動項為Ubuntu,若要換成Win10,只需調整GRUB2配置檔案/etc/default/grub即可:

GRUB_DEFAULT=0

改為(數字以GRUB2介面中Win10的實際排序為準)

GRUB_DEFAULT=2

最後執行以下命令更新GRUB2配置:

$ sudo update-grub2

參考: