在 UEFI 模式下同時安裝 Windows 8.1 和 Ubuntu 14.04

By Shaform, Thu 19 June 2014, in category Notes

Ubuntu 14.04, UEFI, Windows 8, Windows 8.1

總是喜歡在自己的電腦上裝 Linux。小時候安裝還很麻煩,要燒光碟。後來研究了從硬碟安裝的方法,可又需要額外的磁區。一直到 USB 隨身碟普及了以後,重灌才成為一件比較方便的事。尤其 Ubuntu 的安裝界面做的還不錯,後來就一直用到今天。

雖然習慣使用 Linux,可是有時候還是會遇到要在 Windows 上才能寫的作業,所以每次都把電腦灌成雙系統,也慢慢熟悉了這個過程,一直以來不太有改變。不過最近拿到一台有 UEFI 開機的 Lenovo ThinkPad X1 Carbon 筆電,又想在啟用 Secure Boot 的情況下同時裝雙系統,設置上就比較麻煩了。本文就是記載這個過程。

安裝 Windows 8

原本如果是在正常的電腦上安裝 Windows 8,可以透過 Windows USB/DVD download tool 來製作安裝用隨身碟,但在 UEFI 啟用的情況下就不行了。這時參考〈How to create Windows 8 installation bootable USB for UEFI〉,首先在 Windows 環境下使用管理員權限執行 cmd.exe,用 diskpart.exe 找出隨身碟的代號:

diskpart.exe
list disk

再把隨身碟格式化成 FAT32,並設成可開機。注意,disk 1 的這個 1 要選擇隨身碟代號,否則可能會把其他硬碟的內容給刪除。partition 1 則指的是隨身碟上的第一個 partition:

select disk 1
clean
create partition primary
select partition 1
active
format quick fs=fat32
assign
exit

理論上用其他工具格式化隨身碟可能也可以,不過沒有嘗試過。

接下來,先 mount Windows 8 的安裝光碟,然後把內容全部拷貝到隨身碟上,比如說如果安裝光碟 mount 在 H:,而隨身碟在 F: 的話:

xcopy H:\* F:\ /s /e

然後先用 BIOS 停用 UEFI Secure Boot,才能用隨身碟開機。首先開始安裝 Windows 8。參考 〈The complete guide to a Windows 8 clean installation〉 進行安裝,但自行設定硬碟磁區大小,空出給 Ubuntu 的空間。此時安裝程式也會自動幫你建立 Recovery, System (Reserved), MSR (EFI 磁區) 等三個磁區,看起來很醜,不過可能有用,就保留吧。

裝完後不知為什麼時間設定有錯,而且也無法更新,於是參考〈Change Time Servers in Windows 8〉,將 time server 改成台大的 ntp2.ntu.edu.tw

最後重開機,在 BIOS 中啟用 UEFI Secure Boot 就大功告成了。

安裝 Windows 8.1

假設直接用 Windows 8.1 安裝光碟,到這裡就結束了。可是因為學校只有升級版的 Windows 8.1,所以緊接著馬上從 Windows 8 升級到 Windows 8.1。

首先用 Windows Update 更新系統,然後 mount Windows 8.1 光碟,並執行他。開始一步步安裝,安裝的選項跟 Windows 8 差不多,我選擇不要保留任何設定,把 Windows 8 的紀錄都洗掉。安裝完硬碟又會多一個 Recovery 磁區,雖然很醜,可是可能有用所以保留他。

安裝完後再重新設定一次 time server 就大功告成了!

安裝 Ubuntu 14.04 64-bit

只有 64-bit 版本對 UEFI 有較好的支援,所以首先參考〈How to create a bootable USB stick on Ubuntu〉製作一個 Ubuntu 14.04 安裝隨身碟,然後參考〈Ubuntu Community Wiki: UEFI〉來安裝,基本上安裝過程跟一般情形一樣,只是我選擇自訂磁碟分割,所以要自己找出 EFI 磁區,然後指定 mount 到 /boot/efi

最後裝完會遇到一個 bug:〈Unable to chainload Windows 8 with Secure Boot enabled 〉,使得無法直接用 grub2 來啟動 Windows 8.1,不過 ThinkPad X1 Carbon 可以透過 BIOS 來多重開機,因此還是可以使用,對於很少使用 Windows 8.1 的我來說並不造成困擾。