MacBook 安裝 Ubuntu 後 macOS 的分割磁區不見了怎麼辦?macOS partition lost on Ubuntu installed on MacBook

程式設計

在「舊 MacBook Air 2012 安裝 Ubuntu」的文章中,我們分享了一步一步在 MacBook 上安裝 Ubuntu Linux 與驅動程式的方法。為了讓 Ubuntu 的使用空間多一點,我們在安裝雙系統之後於 macOS 中增加了 Ubuntu 的硬碟磁區,然後重開機後 macOS 的選項就在 Boot Menu 中消失了 (OMG…..)。

不過使用 GParted 開機確認了一下,分割區與資料都還好好地存在於硬碟中,這麼說應該是分割表出問題吧。稍微查了一下,原來問題就出在 macOS 的 Disk Utility 工具,寫在調整分割區後就把 macOS 用的 APFS 代碼改寫了,導致自已找不到……。復原方式只要把 APFS 的代碼寫回來即可,步驟如下。

Adsense

步驟 0:完整備份 (optional) 

切記備份。請先用 Time Machine 或者可自行開機的 macOS clone(像 Carbon Copy Cloner) 軟體備份整個硬碟。如有意外,這是能救回系統的唯一手段。 但我們本身是沒有執行這個步驟。

步驟 2:查看 GPT 分割代碼

若 macOS 在開機選單(按住 Option 開機時)看不到,表示那個區塊的 GPT 編碼被改掉了,所以 EFI 開機程序 (Boot Loader) 找不到可以開機的 macOS 磁區,只有 Ubuntu。其實利用 Ubuntu LiveUSB 就可以復原它。 通常 MacBook 只會有一顆硬碟,假設是 sda

sudo apt update 
sudo apt install gdisk 
sudo gdisk /dev/sda    # sda 改成正確的 diskX 

接著會進入 gdisk 的程式之中,按 p 列出該硬碟 sda 的分割表。你應該會看到類似下方的表示

id Partition  Label     hexCode  Format
1  /dev/sda1                                       EFI
2 /dev/sda2 macOS  FFFF        APFS
3 /dev/sda3 Ubuntu  8300       Ext4

步驟 2:修正 GPT 分割代碼

找到屬於 macOS 的那個分割區(通常是 APFS )。假設它是第 2 區。此時按 t 再按 2 表示要修改該磁區的 hex 編碼。請輸入 MacBook 用的 APFS 代碼: AF0A,再按 p 確認後,最後輸入 w 寫入磁區。

小結  

這樣會把原本無法辨識的代碼 FFFF 改成 Apple_APFS Container,讓 macOS firmware 在開機選單中再次認得此區分割,並恢復開機選項辨識。請務必確定GPT代碼輸入無誤,否則有喪失資料風險。 

Comments

標題和URL已復制