在 2016 年,Heresy 曾經寫過一篇《將安裝好的 Windows 改成 UEFI 開機》,記錄了一下怎麼把已經裝好的 Windows 10 電腦,從傳統 BIOS 開機轉換成用新的 UEFI 開機。
不過當時的步驟相當地繁瑣,還需要自己去調整磁碟分割,就算是 Heresy 自己也覺得很麻煩。
而最近由於想把幾台舊電腦升級到 Windows 11,所以就又開始碰到這樣轉換的問題了。
在稍微找了一下資訊後,發現現在要做這樣的轉換算是簡單不少了!因為微軟在 2017 年的 Windows 10 Creators Update 1703 中,開始提供了一個叫做「MBR2GPT」的小工具(官方文件),透過這個程式,就可以把瑣碎的過程一次解決了!
要透過 MBR2GPT 來將既有的作業系統轉換成 UEFI 開機,這邊建議:
- 使用 Windows 10 1703 以後的光碟/USB 開機。
個人建議在操作前,讓系統只接上要處理的系統磁碟機,以減少可能的問題。
- 先選擇要使用的語言
- 點左下角的「修復您的電腦」
- 然後在「選擇選項」中,選取「疑難排解」
- 選「命令提示字元」
- 在這邊輸入「mbr2gpt /convert」,進行轉換。
如果輸出的文字有出現「MBR2GPT: Conversion completed successfully」就是成功了。
- 重開機,進入 BIOS 中將開機設定切換為 UEFI 開機。
- 以華碩的主機板來說,要把 CMS(Compatibility Support Module)的功能關閉。流程是:在 BIOS 裡面按 F7 進入進階模式,然後在「Boot」裡面找到「CMS (Compatibility Support Module)」;進去後將「Launch CSM」改成「Disabled」
- 要安裝 Windows 11 的話,還要開啟 TPM 和安全開機
- 這邊以華碩的 Intel 架構主機板來舉例,設定都是在是在 BIOS 的進階模式中
- 要開啟 TPM 的功能,切換到「Advanced」、在「PCH-FW Configuration」中將「PTT」設定為「Enable」。
- 要開啟安全開機的話,切換到「Boot」,在「Secure Boot」中將「OS Type」設定成「Windows UEFI mode」。
這樣應該就大功告成了!之後就可以用 UEFI 模式開開機了~
用這個工具來處理、和之前還要自己調整分割區比起來,真的方便很多。
不過這邊也要提一下,MBR2GPT 不見得都可以直接正確地執行。
像是 Heresy 是透過 Samsung 提供的「Data Migration」(網頁)把作業系統從硬碟複製到 SSD 上的;但是在執行「mbr2gpt /validate /allowFullOS」進行轉換前的驗證的時候,他會出現「Disk layout validation failed for disk 0」的錯誤;這也會讓它沒辦法正確地進行轉換。
這個問題應該是由於這個工具對於磁碟內的配置有一些要求的關係(官方文件)。
而根據《How to Convert Legacy BIOS to UEFI in Windows 10 and 11》的說法,比較常見的原因是:
- 硬碟上的分割區超過三個
- 請先將資料備份後,刪除不必要的分割區
- 硬碟上沒有足夠的空間可以用來進行轉換
- 可以透過內建的「磁碟管理工具」所提供的「壓縮磁碟區」(Shrink Volume)來釋出一些空間以進行轉換。
在 Heresy 這邊由於 SSD 上只有兩個分割區,所以初步判斷是沒有空間可以讓他做後續操作的關係;所以後來是透過「壓縮磁碟區」的功能、將本來的 C:\ 釋出了 2GB 的空間,讓他可以進行轉換。
這邊的操作方法大致上如下:
- 透過「Win + X」叫出開始的快捷選單,然後透過「K」呼叫「磁碟管理」工具。
- 找到系統磁碟機,並在要釋出空間的磁碟分割區上,按右鍵選取「壓縮磁碟區」。
(下圖識別台電腦的示意圖)
- 他會花一段時間分析磁碟區的內容,然後會跳出來一個視窗,詢問要釋出多大的空間。
- 這邊是輸入 2048(MB,實際上似乎可以更小一點?),按下「壓縮」後等他完成就可以了。
話說,感覺上中文版這邊用「壓縮」這個詞來代表 Shrink 其實意義不太一樣啊…
總之,等到釋出分割區空間之後,就可以正確完成 MBR2GPT 的流程了~
謝謝分享。
我是弄雙系統,但發現 grub 偵測不到 Windows 這邊。
一開始在 validate 的時候也遇到 “Disk layout validation failed for disk 0” 的錯誤,用磁碟工具看了一下發現我有四個磁區,先刪掉修復磁區(應該是 Windows 備份復原用的)就可以了