いきさつ
Macをクリーンインストールしようと思って,ゴミパーティションをGUIで結合しようしたけど,エラーが出て消せなかったので.
ちなみにそのゴミパーティションとは,昔Ubuntuをデュアルブートでいれていたときの名残で,LinuxSwapが1GBほど,メイン領域が100GBほどありました.
一応,パーティションを生のコマンドで操作するので,実行は 自己責任でお願いします.
方法
タイトルの通り,diskutil
コマンドを使います.
diskutil
コマンドとは,ローカルディスク構造を操作できるコマンドです(man diskutil
より)
使用する verbと手順
list
eraseVolume
mergePartitions
list
diskutil list
で現在のローカルディクス構造が確認できます.
$ diskutil list
/dev/disk0 (internal, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *750.2 GB disk0
1: EFI EFI 209.7 MB disk0s1
2: Apple_CoreStorage Macintosh HD 648.1 GB disk0s2
3: Apple_Boot Recovery HD 650.0 MB disk0s6
4: Linux Swap 1.1 GB disk0s4
5: Microsoft Basic Data 100.1 GB disk0s5
/dev/disk1 (internal, virtual):
#: TYPE NAME SIZE IDENTIFIER
0: Apple_HFS Macintosh HD +647.7 GB disk1
Logical Volume on disk0s2
30649FB4-18AD-47BB-880F-454CE3E36A8D
Unencrypted
今回消したいのは, /dev/disk0の Linux Swapと Microsoft Basic Dataパーティションです(ほんとはUbuntuが入っているのだけれど).
eraseVolume
やmergePartitions
するときに与えるパーティション名は一番右側の IDENTIFIERというのを使用します.今回の例で言えば disk0s4と disk0s5になります.
eraseVolume
パーティションをフォーマットします.書式は次の通り.
eraseVolume format name device
formatはフォーマット形式, nameはフォーマット後のパーティション名, deviceはフォーマットしたいパーティション名を指定します.
今回は, disk0s4および disk0s5を **Mac OS拡張(ジャーナル)**形式でフォーマットしたいので,以下のコマンドを順に実行しました.
$ diskutil eraseVolume JHFS+ new disk0s5
Started erase on disk0s5
Unmounting disk
Erasing
Initialized /dev/rdisk0s5 as a 93 GB case-insensitive HFS Plus volume with a 8192k journal
Mounting disk
Finished erase on disk0s5 new
$ diskutil eraseVolume JHFS+ new2 disk0s4
Started erase on disk0s4
Unmounting disk
Erasing
Initialized /dev/rdisk0s4 as a 1023 MB case-insensitive HFS Plus volume with a 8192k journal
Mounting disk
Finished erase on disk0s4 new2
実行後の状態は次の通りです.
$ diskutil list
/dev/disk0 (internal, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *750.2 GB disk0
1: EFI EFI 209.7 MB disk0s1
2: Apple_CoreStorage Macintosh HD 648.1 GB disk0s2
3: Apple_Boot Recovery HD 650.0 MB disk0s6
4: Apple_HFS new2 1.1 GB disk0s4
5: Apple_HFS new 100.0 GB disk0s5
/dev/disk1 (internal, virtual):
#: TYPE NAME SIZE IDENTIFIER
0: Apple_HFS Macintosh HD +647.7 GB disk1
Logical Volume on disk0s2
30649FB4-18AD-47BB-880F-454CE3E36A8D
Unencrypted
mergePartisions
パーティション同士を結合します.書式は次の通り.
mergePartitions [force] format name fromDevice toDevice
fromDeviceと toDeviceに結合したい2つのパーティションを指定します.このとき forceオプションをつけると,結合後のパーティションはフォーマットされ,既存のデータの保持はできません.
今回は既にeraseVolume
でフォーマット済みですが, 念のため forceを指定しました(今回の場合多分 forceはいらないかも).
$ diskutil mergePartitions force JHFS+ new3 disk0s4 disk0s5
Format disk-node disk0s4 (/Volumes/new2)? (y/N) y
Merging partitions into a new partition
Start partition: disk0s4 new2
Finish partition: disk0s5 new
Started partitioning on disk0
Merging partitions
Waiting for the disks to reappear
Formatting disk0s4 as Mac OS Extended (Journaled) with name new3
Initialized /dev/rdisk0s4 as a 94 GB case-insensitive HFS Plus volume with a 8192k journal
Mounting disk
Finished partitioning on disk0
/dev/disk0 (internal, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *750.2 GB disk0
1: EFI EFI 209.7 MB disk0s1
2: Apple_CoreStorage Macintosh HD 648.1 GB disk0s2
3: Apple_Boot Recovery HD 650.0 MB disk0s6
4: Apple_HFS new3 101.1 GB disk0s4
これで晴れてGUIのDisk Utilityでは結合できなかったパーティションを結合できました.