[Sierra] 論理ボリュームを結合する

背景

MacにOSが二つ(10.10/10.12)入っていたのですが、
10.10をフォーマットして、新しくOS(10.13)を入れ直したい。

↓

フォーマットしたいパーティション(10.10) / 未使用 / 使用中(10.12)

↓

フォーマットしたいパーティションと未使用をくっつけたいが、
ディスクユーティリティで別物として扱われてしまっているため、できない!!

※ 作業開始前のスクリーンショットを取っていなかったため、あとからのやっつけ仕事な参考画像です

環境

macOS Sierra 10.12.6

基礎知識

Mac のディスクユーティリティについて
「ディスクユーティリティ」を使って、ディスクの検証と修復、ディスクの消去などを実行できます。

ディスクユーティリティを使用した時、
左側に表示されている名前たちがボリュームだとすると、
上部にあるパーティションボタンはそのボリューム内の容量に対してしか使えないので、
OSXだと、ボリューム内で、パーティションを切る??の???
この辺の用語がいまいち不明。

作業内容メモ

まず、diskutil listで現状把握。

$ diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *251.0 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                 Apple_APFS                         35.0 GB    disk0s2
   3:                 Apple_APFS                         16.0 GB    disk0s3
   4:                  Apple_HFS 名称未設定              74.9 GB    disk0s4
   5:          Apple_CoreStorage OSX10.11                124.0 GB   disk0s5
   6:                 Apple_Boot Recovery HD             650.0 MB   disk0s6

/dev/disk1 (internal, virtual):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS OSX1012                +123.7 GB   disk1
                                 Logical Volume on disk0s5
                                 1997DB70-5C09-4067-B232-C6595CA1C47A
                                 Unencrypted

/dev/disk2 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *16.0 GB    disk2
   1:                        EFI EFI                     314.6 MB   disk2s1
   2:                  Apple_HFS 名称未設定              15.6 GB    disk2s2

/dev/disk3 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *35.0 GB    disk3
   1:                        EFI EFI                     314.6 MB   disk3s1
   2:                  Apple_HFS 名称未設定              34.6 GB    disk3s2

/dev/disk4 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        +9.3 GB     disk4
   1:                        EFI EFI                     209.7 MB   disk4s1
   2:                  Apple_HFS InstallESD              9.0 GB     disk4s2

いろいろ試行錯誤したからか、なんかたくさんある。

用語の定義がわかっていませんが、とりあえず、

  • ボリューム
    • /dev/disk* (internal, physical)
  • パーティション
    • 各ボリューム内の、0: ,1: ,2: …
      IDENTIFIER : disk*s*は、パーティションの識別子

として話を進めます。

1. 各ボリューム内のパーティションをくっつける

$ diskutil eraseVolume Free\ Space not disk2s2
Started erase on disk2s2 名称未設定
Unmounting disk
Finished erase on disk2

diskutil eraseVolume Free\ Space not <IDENTIFIER>
コマンドを利用して、不要なパーティションたちをくっつける。

$ diskutil eraseVolume Free\ Space not disk2s2
Started erase on disk2s2 名称未設定
Unmounting disk
Finished erase on disk2
$ diskutil eraseVolume Free\ Space not disk2s1
Started erase on disk2s1 EFI
Unmounting disk
Finished erase on disk2
$ diskutil eraseVolume Free\ Space not disk3s2
Started erase on disk3s2 名称未設定
Unmounting disk
Finished erase on disk3
$ diskutil eraseVolume Free\ Space not disk3s1
Started erase on disk3s1 EFI
Unmounting disk
Finished erase on disk3
$ diskutil eraseVolume Free\ Space not disk0s1
Started erase on disk0s1 EFI
Unmounting disk
Finished erase on disk0

結果、

/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *251.0 GB   disk0
   1:                 Apple_APFS                         35.0 GB    disk0s2
   2:                 Apple_APFS                         16.0 GB    disk0s3
   3:                  Apple_HFS 名称未設定              74.9 GB    disk0s4
   4:          Apple_CoreStorage OSX10.11                124.0 GB   disk0s5
   5:                 Apple_Boot Recovery HD             650.0 MB   disk0s6

/dev/disk1 (internal, virtual):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS OSX1012                +123.7 GB   disk1
                                 Logical Volume on disk0s5
                                 1997DB70-5C09-4067-B232-C6595CA1C47A
                                 Unencrypted

/dev/disk2 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *16.0 GB    disk2

/dev/disk3 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *35.0 GB    disk3

/dev/disk4 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        +9.3 GB     disk4
   1:                        EFI EFI                     209.7 MB   disk4s1
   2:                  Apple_HFS InstallESD              9.0 GB     disk4s2

こうなった。

disk0s2のような、Apple_APFSでフォーマットされたものには、eraseVolume コマンドは使えないようなので、次ステップ。

mack2k:~ appletaro$ diskutil eraseVolume Free\ Space not disk0s2
The target disk is in use by APFS as a Physical Store; use diskutil apfs deleteContainer

2. APFSのパーティションを削除

$ diskutil apfs deleteContainer disk0s3
Started APFS operation
Deleting APFS Container with all of its APFS Volumes
Assuming that the APFS Container is damaged; any additional Physical Store disks which define the Container can't be found for reformatting and must be handled separately
Deleting Container
Switching content types
Reformatting former APFS disk
Initialized /dev/rdisk0s3 as a 85 GB case-insensitive HFS Plus volume with a 8192k journal
Mounting disk
Finished APFS operation

$ diskutil apfs deleteContainer <IDENTIFIER>
APFS形式のパーティションは、このコマンドで削除。

該当するパーティションをばしばし削除してみます。

$ diskutil apfs deleteContainer disk0s2
Started APFS operation
Deleting APFS Container with all of its APFS Volumes
Assuming that the APFS Container is damaged; any additional Physical Store disks which define the Container can't be found for reformatting and must be handled separately
Deleting Container
Switching content types
Reformatting former APFS disk
Initialized /dev/rdisk0s2 as a 32 GB case-insensitive HFS Plus volume with a 8192k journal
Mounting disk
Finished APFS operation
$ diskutil apfs deleteContainer disk0s3
Started APFS operation
Deleting APFS Container with all of its APFS Volumes
Assuming that the APFS Container is damaged; any additional Physical Store disks which define the Container can't be found for reformatting and must be handled separately
Deleting Container
Switching content types
Reformatting former APFS disk
Initialized /dev/rdisk0s3 as a 85 GB case-insensitive HFS Plus volume with a 8192k journal
Mounting disk
Finished APFS operation

すると…

$ diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *251.0 GB   disk0
   1:                  Apple_HFS Untitled                34.9 GB    disk0s2
   2:                  Apple_HFS Untitled                91.0 GB    disk0s3
   3:          Apple_CoreStorage OSX10.11                124.0 GB   disk0s5
   4:                 Apple_Boot Recovery HD             650.0 MB   disk0s6

/dev/disk1 (internal, virtual):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS OSX1012                +123.7 GB   disk1
                                 Logical Volume on disk0s5
                                 1997DB70-5C09-4067-B232-C6595CA1C47A
                                 Unencrypted

こうなった。

disk2とdisk3が消えたし、
disk0s4もなくなった!、どこいった?!

よくわからない!!!

とりあえず理想の形にはなったけど!!!なんだこれ!!!

推察

疑問1 パーティションをdeleteContainerしたのに、ボリュームがなくなった

容量と、フォーマット形式から考えると、
もともと、

  • /dev/disk3 = /dev/disk0/disk0s2
  • /dev/disk2 = /dev/disk0/disk0s3

だった?

実態は/dev/disk0内のパーティションだったけど、
仮想ボリュームとして割り当てられていた?

疑問2 パーティションの容量が増えた

disk0s3の容量が、deleteContainerの前後で75G増えています。

deleteContainerコマンドで下のようなメッセージがでたことから考えると、

Initialized /dev/rdisk0s3 as a 85 GB case-insensitive HFS Plus volume with a 8192k journal
Mounting disk

/dev/disk0/disk0s3の16Gと、/dev/disk0/disk0s4の75Gが結合して、91Gのパーティションができた?

だめだ、全然わからない。
PCのこともっと勉強しなきゃダメだなぁ…
(エンベディッドシステムスペシャリスト勉強中なのにこの知識量は、我ながらひどい)

結果

とりあえず、最後にディスクユーティリティでパーティションをくっつけて、完成。

参考

https://www.macobserver.com/tips/deep-dive/macos-sierra-delete-apfs-partition-right-way/

https://news.mynavi.jp/article/osxhack-129/