macOSのインストールディスクイメージを作成する

macOSは通常リカバリーモードから起動、またはストアからアップデート用のアプリケーションをダウンロードして実行することでインストールを行います。しかし、VirtualBoxなどの仮想マシンにmacOSをインストールすることもあるかもしれません。
そのような場合に使用できるインストールメディアのディスクイメージの作成方法を説明していきます。

(仮想マシンにmacOSをインストールする手順は[こちら](https://qiita.com/ykgeek/items/3098074c91da6943ef00))

**2022/10/11 更新**
一部パスや説明が間違っていたり、レイアウトが崩れていたりした箇所を修正しました。
@masaru21 さん、ご指摘ありがとうございました。



# TL;DR
``` bash
hdiutil create -o catalina -size 9G -layout SPUD -fs HFS+J -type SPARSE
hdiutil attach catalina.sparseimage -noverify -mountpoint /Volumes/catalinaimg
sudo /Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia --volume /Volumes/catalinaimg
hdiutil detach /Volumes/catalinaimg
hdiutil convert catalina.sparseimage -format UDTO -o catalina.iso
mv catalina.iso.cdr catalina.iso
```

# 何をしているのか
一見すると複雑なコマンドが続いているように見えますが、実際は

- ディスクイメージを作成
- マウント
- インストーラーをコピー
- アンマウント
- ディスクイメージを変換
- ファイル名を変更
といったことをしているだけです。

仮想のUSBメモリをツールを使ってmacOSのインストーラにしてそれをDVDに変えるといったところです。

詳しく説明すると以下のようになります。

``` bash
# 指定した容量(8GB)、パーティション、ファイルシステム、ディスクイメージのタイプを指定してディスクイメージを作成
hdiutil create -o catalina -size 9G -layout SPUD -fs HFS+J -type SPARSE

# 作成したディスクイメージを指定したディレクトリにマウント
hdiutil attach catalina.sparseimage -noverify -mountpoint /Volumes/catalinaimg

# macOSのインストーラーに入っているディスクイメージ作成ツールを使ってインストーラーをコピー
sudo /Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia --volume /Volumes/catalinaimg

# ディスクイメージをアンマウント
hdiutil detach /Volumes/catalinaimg

# ディスクイメージをisoイメージに変換
hdiutil convert catalina.sparseimage -format UDTO -o catalina.iso

# 余計についた拡張子を削除する
mv catalina.iso.cdr catalina.iso
```

# ディスクユーティリティを使う
上記の方法はすでにネットでも多く出回っているのですぐに見つけることができると思います。
そこでさらに応用としてディスクイメージの作成をディスクユーティリティを使ってやってみたいと思います。

## ディスクユーティリティを起動する
Launchpadを開いてディスクユーティリティを起動してください。通常はその他のフォルダーに入っていると思います。
<img width="133" alt="Screen Shot 2019-11-23 at 11.21.13 PM.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155364/a7b918ec-ab3c-e028-58cb-7844bd815188.png">

## 空のイメージを作成する
ディスクユーティリティを起動したら上のメニューから新規イメージ、空のイメージを作成を選択してください。
<img width="743" alt="スクリーンショット 2019-11-23 午後11.25.00.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155364/0a9999c0-3577-e474-327c-53dbd533d81b.png">

その後出てくる画面で次のように設定してください。

- 名前:catalina(なんでも構いません)
- サイズ:9GB(以上にしてください)
- フォーマット:Mac OS拡張(ジャーナル)
- 暗号化:なし
- パーティション:単一パーティション-Appleパーティションマップ
- フォーマット:スパース・ディスクイメージ

<img width="463" alt="スクリーンショット 2019-11-23 午後11.28.07.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155364/370d4f3a-d2aa-7e0d-e7b2-cd306e2fa8c8.png">

その後保存をクリックするとディスクイメージが作成されると同時にマウントされます。

## インストーラをコピーする
ここはコマンドに頼ることになるので大人しく
```
sudo /Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia --volume /Volumes/catalina
```

を実行しましょう。
`--volume /Volumes/catalina`の部分はディスクイメージの名前などによって変わります。

## アンマウントしてイメージを変換する
インストーラのコピーが終わったらUSBメモリを抜くのと同じ手順でアンマウントします。
アンマウントしたらもう一度ディスクユーティリティに戻り、上のメニューからイメージ、変換を選択します。
<img width="585" alt="スクリーンショット 2019-11-23 午後11.37.33.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155364/2c28ba70-759b-b511-b152-1956198ead84.png">
最初に先程作成したイメージを選択し、次に出てくる画面で次のように設定してください。

- 暗号化:なし
- イメージフォーマット:DVD/CDマスター

<img width="461" alt="スクリーンショット 2019-11-23 午後11.39.24.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155364/bc1d8ae6-c871-c58a-bc7d-33b09e22593e.png">

最後にファイルの後ろについているcdrをisoに変更すればインストールディスクイメージの完成です。

# あとがき
今回はmacOSのインストールディスクイメージの作成方法を紹介しました。
コマンドの理解を深めるためにもディスクユーティリティを使った方法も紹介しています。
もし間違いなどがあればご指摘いただければ幸いです。

# Reference
- https://scrapbox.io/itiya/MacOSのインストーラからisoファイルを生成する
- https://support.apple.com/ja-jp/HT201372
- https://tobiwashere.de/2017/10/virtualbox-how-to-create-a-macos-high-sierra-vm-to-run-on-a-mac-host-system/
- `man hdiutil`