當你發現 Mac 分割區空間不夠了怎麼辦?
現在又沒有任何軟體能夠無損資料調整Mac分割區大小
那我如何調整容量呢?
答案是利用 Partition Magic、GHOST 以及 Mac 本身的指令 diskutil mergePartitions
以下提到的分割區都是主分割區(Primary)而不是邏輯分割區(Logic)
1. 首先先記住 Leopard 分割區的大小,例如 16389MB
2. 再利用 GHOST 把 Leopard 分割區 GHOST 下來
3. 然後利用 Partition Magic 重新分配分割區大小
必須要重新切一塊相同大小的分割區給 GHOST 還原原來的Leopard
這個分割區不可以比原來的容量大或小
並且在 Leopard 分割區的後面緊接著你想要擴充的分割區
4. 接下來就要用 diskutil mergePartitions 這個指令來合併分割區了
diskutil mergePartitions “磁碟格式” 新標籤 要合併的分割區1 被合併分割區2
EX: diskutil mergeParttitions “Journaled HFS+” Leopard disk0s1 disk0s2
EX: diskutil mergeParttitions “Journaled HFS+” Leopard disk0s1 disk0s2
這樣第一個分割區的資料會被保留
第二個分割區的資料會被合併到第一個分割區
不過在作 diskutil mergePartitions 的時候
除了要注意兩個分割區是相鄰的以外(這是官方說明文件上面提到的)
還要注意磁碟編號(這裡說明文件就沒有提到了)
另外如果第一個分割區的格式不支援 resize 的話
兩個分割區的資料都會被清除
舉我的例子來說
我的磁碟配置是這樣
SYSTEM 是 XP 所在分割區
DATA 是我放資料的
NEW 是要被合併的分割區
Leopard 是 Leopard 所在分割區
DATA 是我放資料的
NEW 是要被合併的分割區
Leopard 是 Leopard 所在分割區
我試了三種方法
第一種方法:
合併前:
disk0s1: SYSTEM
disk0s2: DATA
disk0s4: NEW
disk0s3: Leopard
指令: diskutil mergePartitions “Journaled HFS+” Leopard disk0s3 disk0s4
結果: 雖然指令看似正確,合併後 disk0s4 也會不見,但實際上 Leopard 分割區在 Finder 所顯示的容量還是不會變,也就是說你憑空損失了 NEW 分割區的容量。
disk0s1: SYSTEM
disk0s2: DATA
disk0s4: NEW
disk0s3: Leopard
指令: diskutil mergePartitions “Journaled HFS+” Leopard disk0s3 disk0s4
結果: 雖然指令看似正確,合併後 disk0s4 也會不見,但實際上 Leopard 分割區在 Finder 所顯示的容量還是不會變,也就是說你憑空損失了 NEW 分割區的容量。
第二種方法:
合併前:
disk0s1: SYSTEM
disk0s2: DATA
disk0s3: Leopard
disk0s4: NEW
指令: diskutil mergePartitions “Journaled HFS+” Leopard disk0s3 disk0s4
結果: 合併成功,顯示容量也正確,不過後來我再建立一個分割區,用 GHOST 還原資料到硬碟的新分割區 disk0s4 之後,disk0s3 Leopard 的容量又顯示不正確了。
disk0s1: SYSTEM
disk0s2: DATA
disk0s3: Leopard
disk0s4: NEW
指令: diskutil mergePartitions “Journaled HFS+” Leopard disk0s3 disk0s4
結果: 合併成功,顯示容量也正確,不過後來我再建立一個分割區,用 GHOST 還原資料到硬碟的新分割區 disk0s4 之後,disk0s3 Leopard 的容量又顯示不正確了。
第三種方法:
合併前:
disk0s1: SYSTEM
disk0s2: DATA
disk0s3: Leopard
disk0s4: NEW
指令: diskutil mergePartitions “Journaled HFS+” Leopard disk0s3 disk0s4
結果: 前面步驟跟第二種方法一樣,不過這次把 GHOST 的資料用複製的方式貼到 Leopard 的分割區,不用 GHOST 的方式寫入,這次就完全正常了。
disk0s1: SYSTEM
disk0s2: DATA
disk0s3: Leopard
disk0s4: NEW
指令: diskutil mergePartitions “Journaled HFS+” Leopard disk0s3 disk0s4
結果: 前面步驟跟第二種方法一樣,不過這次把 GHOST 的資料用複製的方式貼到 Leopard 的分割區,不用 GHOST 的方式寫入,這次就完全正常了。
由此可知 diskutil mergePartitions 並不是真正的把分割區合併,而是不知道做了什麼動作讓 disk0s3 以為自己跟 disk0s4 是連在一起的,所以當我還原GHOST到新建的 disk0s4 之後 disk0s3 容量又顯示錯誤了。
受教了 謝謝