Contents ...
udn網路城邦
想安裝雙作業系統且可開機做切換,卻發現 Ubuntu 找不到 Windows 10 partition! 如何解決?
2025/06/14 14:41
瀏覽233
迴響0
推薦8
引用0

這個禮拜 (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!




















有誰推薦more