這個禮拜 (2025 年 6 月 8 日 ~ 14),筆者對「一台已經使用了將近 10 年的個人電腦」安裝 Ubuntu LTS 22 (最新的版本是 Ubuntu 24),安裝過程中,它告訴筆者找不到 Windows 10 partition,但實際上就在 disk 0 當中;一開始,筆者以為是自己安裝的 Ubuntu 版本太新,於是改為安裝 Ubuntu LTS 20, 結果它還是一樣找不到 Windows 10 partition;於是乎,筆者上網查詢相關資訊,最後終於找到癥結所在:
由於是 10 年前的電腦,所以那時候系統廠商在安裝 Windows 10 時,開機的 BIOS 是舊版的 firmware ,而它只支援 MBR Disk,所以 active partition 在開機時的啟動格式是 MBR format,但由於筆者曾經更新過主機板的 BIOS,將它升級為新版的 firmware -- UEFI,因此 Ubuntu 在安裝時,會透過 UEFI 去搜尋 bootable partition,而跟 UEFI 相互搭配的 bootable partition 是 GPT Disk,不是 MBR Disk,所以才會發生找不到的情況。
MBR (Master Boot Record)
MBR 位於磁碟機 (disk) 的第一個扇區 (sector),通常大小為 512 bytes;當開機的韌體執行完各項硬體測試之後,會將控制權轉交給位於 MBR 的程式碼,而 MBR 的程式碼會去掃描 partition table,找出哪一個 partition 是 active or bootable,再將控制權轉交給安裝在 active partition 的作業系統。
GPT (GUID Partition Table)
GPT 是最新一代的「磁碟分割表」標準,支援超過 2TB 的磁碟與 128 個 primary partition; GUID 是由 Globally Unique Identifiers 所組成的縮略字。
UEFI (Unified Extensible Firmware Interface)
UEFI 是新一代的「開機韌體」標準,而 GPT 是它所訂定標準裡的部分內容;簡單地說,UEFI 只找得到 GPT Disk,找不到 MBR Disk。
上述的 MBR、UEFI、GPT、GUID、UUID 等電腦術語,詳細內容請自己去詢問 AI answer engine, 因為今天本篇文章的重點在於「如何解決」。
如何解決?
市面上有一些付費的軟體工具,可以將 MBR Disk 轉成 GPT Disk,但一定會有人問道:
有沒有免費的軟體工具,可以將 MBR Disk 轉成 GPT Disk?
答案是:有!而且是 Windows 10 就有支援的轉換程式,叫做 mbr2gpt.exe。
話不多說,以下就是如何解決的步驟:
Step 0: 請先確認你的電腦是透過 MBR 開機。
請將系統的「磁碟管理」(Disk Management) 程式叫出來,然後點選「磁碟區」(Volumes),在這個頁面有一項欄位叫做「磁碟分割樣式」(Partition Style),它會顯示 MBR or GPT。
Step 1: 請將開機的韌體更新為 UEFI。
Step 2: 確認你的 active partition 是安裝在哪一顆硬碟上,例如 disk 0 或 disk 1;
Step 3: 令 Windows 10 以 Windows Recovery Environment 模式重新開機;
(a) 點選「設定」--> 更新與安全性 --> 復原 --> 進階啟動,點選「立即重新開機」
(b) 當 PC 以 Windows RE 模式開機後,點選「疑難排解」--> 進階選項 --> 命令提示字元;
這個動作是要開出一個 command mode 的視窗。
Step 4: 先確認你的硬碟能不能從 MBR Disk 轉換成 GPT Disk。
在 command mode 下鍵入下列指令:
mbr2gpt /validate /disk:0 或 mbr2gpt /validate /disk:1
如果你的 active partition 是安裝在 disk 2 上,你就得鍵入
mbr2gpt /validate /disk:2
若不知道 active partition 是安裝在哪一顆硬碟上,則最好還是要查清楚再執行。
筆者因為很清楚自己的 active partition 是安裝在 disk 0,所以在下命令時沒有指明是
哪一顆,如果它抓錯了,應該是會秀出錯誤訊息。
這個命令只是在做檢查,照理說不會執行任何 write 的動作;
據此,就算寫錯 disk number,正常情況下是不會造成任何危害。
以下是筆者電腦的畫面截圖:
當 mbr2gpt /validate 做完並秀出「執行成功」的訊息,再做下一步的轉換步驟;若「沒有執行成功」,請不要執行下一步的轉換步驟。
如果你的磁碟經過檢查,確認無法轉換成 GPT Disk,則可能的解法之一是:
去買一顆目前當期的硬碟,再上網購買可以做 clone disk 的軟體或硬體工具,把作業系統從舊的硬碟整份拷貝到新的硬碟,然後再做一次 mbr2gpt /validate。
Step 5: 將 MBR Disk 轉換成 GPT Disk。
在 command mode 之下,鍵入下列指令:
mbr2gpt /convert /disk:0 或 mbr2gpt /convert /disk:1
(是 0 或是 1,就看你的 active partition 是安裝在哪一顆硬碟)
以下是筆者電腦的畫面截圖:
轉換成功後,將電腦重新開機,並進入「開機韌體」設定模式。
Step 6: 更改「開機韌體」中的 BIOS 設定。
將「開機韌體」當中的 BIOS 設定,由 Legacy BISO 或 CSM (Compatibility Support Module) 改為 UEFI,並儲存最新設定後跳出設定模式。
Step 7: 測試開機是否能找到已經轉換成功的 GPT Disk。
若開機成功,則安裝 Ubuntu 必能找到 Windows 10 partition。
Step 8: Inaccessible Boot Device (How to fix it)
可以自己問一下 AI answer engine; 這問題筆者有些經驗,快速分享如下(詳情請自己做查詢學習):
example:
把 clone disk 掛到一台 PC 上(接 SATA 或 USB 都可以)
cmd (以系統管理者身分執行)
diskpart
list disk
select disk #
list partition
select partition # (The Windows OS partition)
assign letter=W
select partition # (the EFI partition)
assign letter=Z
bcdboot W:\Windows /s Z: /f UEFI
執行成功時,系統會秀出「開機檔案已順利建立」。
最後,在本文結束之前,筆者順便分享一下 GParted 這個軟體工具,它可以用來更改已分割磁碟區域的大小,如果你不想花錢購買其他類似的軟體工具,則 GParted 還蠻好用的,不過它得透過類似 balenaEtcher 軟體將 GParted.iso 燒在 USB Flash Drive 之上,而且開機設定必須將 Legacy BIOS 或 CSM 打開,否則會找不到。
好了,今天的功德就做到這裡! Have a nice day!