VirtualBoxを使ってMacOS Catalinaの仮想環境を構築する

## はじめに

（追記）
最新のMac OSがBig Surに変わったことでこの記事の方法では**Catalina.isoが作れなくなりました**。ただ、以下の文言のcatalinaをbig surに置き換えて同じように実行することで、**Big Surの仮想環境**が作れます。
（追記終わり 2021年1月22日）

macOS Catalinaのisoファイルを作成して、**VirtualBox上でCatalinaの仮想環境を立ち上げる**ところまでをまとめます。isoファイルが手に入れば簡単に作れるかと思いきや、**VirtualBox上での設定で意外と詰まった**のでメモしておきます。

多分Windowsでもこの方法でできますが、**ライセンス違反**にならないように注意してください。以下はmacOS Catalinaソフトウェアライセンス契約から抜粋したものです。

> (iii)お客様が所有または管理する各Macコンピュータの仮想オペレーティングシステム環境内で、Appleソフト ウェアの最大2つの追加コピーまたはインスタンスをインストールし、使用し、稼働させることができます。 これらは、(a)ソフトウェア開発、(b)ソフトウェア開発中の試験、(c) macOS Server の使用、または(d)個人的、非営利的使用を目的として行うことができます。

基本的には、**Macコンピュータの中に2台まで**仮想環境を作ってOKとのことです。

・使用環境
MacBook Pro (macOS Catalina 10.15.4)
VirtualBox 6.1.6

・参考リンク
https://techsviewer.com/install-macos-10-15-catalina-on-virtualbox-on-windows-pc/

## isoファイルの作成

Apple Storeからisoファイルを作成するためのアプリをインストールします。「catalina」で検索すれば「macOS Catalina」が出てくるので、こいつをインストールします。

<img width="697" alt="スクリーンショット 2020-04-25 18.48.35.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395943/9b5719e5-34a9-6fb6-20b5-1f153c86a422.png">

ダウンロードには少し時間がかかります。終わったらちゃんとダウンロードできているか確認しましょう。

<img width="1369" alt="スクリーンショット 2020-04-25 18.51.16.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395943/a60cd212-ce81-a2f4-2fbe-a81699f72671.png">

Launchpad上で、写真のようにアプリがあればOKです（起動する必要はありません）。

またターミナルでも確認しましょう。`ls /Applications/Install\ macOS\ Catalina.app`として、Contentsディレクトリが表示されれば問題ありません。

このファイルを使ってデスクトップ上にisoファイルを作成します。こいつらはmacOSのisoファイルを作成するのによく使われるコードです。

```.sh
# 仮想のディスクイメージを作成
hdiutil create -o /tmp/Catalina -size 8500m -volname Catalina -layout SPUD -fs HFS+J
# 作成したディスクイメージをマウント
hdiutil attach /tmp/Catalina.dmg -noverify -mountpoint /Volumes/Catalina
# createinstallmediaを使って、ディスクイメージを作成
sudo /Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia --volume /Volumes/Catalina --nointeraction
# アンマウントする
hdiutil detach /volumes/Install\ macOS\ Catalina
# dmgファイルをisoファイルに変換
hdiutil convert /tmp/Catalina.dmg -format UDTO -o ~/Desktop/Catalina.cdr
# 名前の変更
mv ~/Desktop/Catalina.cdr ~/Desktop/Catalina.iso
```

ちゃんと実行できていれば、デスクトップ上にisoファイルが作られているはずです。

<img width="111" alt="スクリーンショット 2020-04-25 23.27.56.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395943/5698114e-acda-6771-b2bf-e3530cab14a2.png">


## VirtualBoxのインストール（拡張パックも）

VirtualBoxをインストールします。元々入っている人は飛ばしてもらっても構いませんが、ver6.0系だと私の環境では**失敗しました**。2020年4月現在で最新版である**ver6.1.6では成功した**ことを確認しています。また拡張パックも必要なので、注意してください。

https://www.virtualbox.org/wiki/Downloads

<img width="824" alt="スクリーンショット 2020-04-25 19.07.22.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395943/019964b5-61e0-6f63-9d4a-63ad670ac4fe.png">


「**OS X hosts**」をダウンロードしましょう。インストールに失敗する時は、「システム環境設定」から「セキュリティとプライバシー」を確認してみてください。参考リンクは[こちら](https://livethere.net/web_design/catalina-virtualbox-error)です。

また、あとでUSB3.0の設定時に必要になるので、**拡張パック（Oracle VM VirtualBox Extension Pack）** もダウンロードしてインストールしておきます。

<img width="908" alt="スクリーンショット 2020-04-25 22.32.08.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395943/4c500b78-545c-a717-7fa1-7777870c1ff2.png">


## VirtualBox上での仮想環境の設定

VirtualBoxで仮想環境を作ります。macOSはハードとの相性がキツく、ここの設定を適当にやってしまうとうまく起動しないことが多々ありました。注意してください。

まずは新規作成をクリックします。

<img width="502" alt="スクリーンショット 2020-04-25 19.11.52.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395943/1875c6f4-eae2-11a0-a2e1-ac39dc0c6bf5.png">

名前とOSの指定を行います。「名前」は好きなものを入力し、「マシンフォルダー」は仮想環境を保存したい好きな場所を選択してください。バージョンは「**macOS 10.13 HighSierra(64-bit)**」を選択します。


<img width="732" alt="スクリーンショット 2020-04-25 19.17.00.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395943/5f4907d4-d1e1-0780-a8ec-1200ffa7515b.png">


メモリは4GB以上あれば大丈夫だと思います。今回は8GB（**8192MB**）にしました。

<img width="732" alt="スクリーンショット 2020-04-25 19.20.25.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395943/73ef9543-3c41-ea13-d51b-43f93ec0cae1.png">

仮想ハードディスクを作成します。

<img width="732" alt="スクリーンショット 2020-04-25 19.21.26.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395943/3608b2b6-913f-9cc3-6393-0c0336da1ebf.png">

ここでは**VHD**に設定してください。私の環境ではVDIで作るとインストール時に止まってしまいました。ちなみにこれらの違いは[公式サイト](https://www.virtualbox.org/manual/UserManual.html#vdidetails)に書いてあります。

- VDI VirtualBoxで使われる仮想ハードディスクの形式。
- VHD VMwareなど他の仮想化システムでも使われる仮想ハードディスクの形式。
- VMDK Microsoftの仮想化システムHyper-Vで使われる仮想ハードディスクの形式。

<img width="695" alt="スクリーンショット 2020-04-25 19.25.54.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395943/1bb02065-2dd5-075a-4583-5d93a4a29bbc.png">

:::note info
この記事を書いた後、Mac OS Montereyで仮想環境を作りましたが、VDIでもうまく動きました。
この時VHDだけでうまく動いた理由は不明です。
:::


物理ハードディスクにあるストレージでは「**可変サイズ**」を選びます。仮想ハードディスクのサイズは、多めに**100GB**にしてください。デフォルトの**20GBではサイズが小さすぎて**インストールできませんでした。

<img width="695" alt="スクリーンショット 2020-04-25 22.18.36.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395943/7c63ce92-cbb6-558d-4993-4f155a83279b.png">

さらに詳細設定をしていきます。

<img width="626" alt="スクリーンショット 2020-04-25 22.23.30.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395943/3d83b1cb-9c22-50eb-a52e-12d707768f84.png">

「システム」の「マザーボード」の「チップセット」を**PIIX3**にします。ちなみに、PIIXとはマザーボード上のチップセット内でサウスブリッジとして使用されるインテルの集積回路の開発コードネームだそうです（[参考リンク](https://ja.wikipedia.org/wiki/PIIX)）。

<img width="782" alt="スクリーンショット 2020-04-25 22.24.50.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395943/1f18bb4b-8127-ff35-9961-98f9e50eece7.png">

:::note info
この記事を書いた後、Mac OS Montereyで仮想環境を作りましたが、ICH9でもうまく動きました。
:::

同じく「システム」の「プロセッサー」の「プロセッサー数」は**2**とします。

<img width="782" alt="スクリーンショット 2020-04-25 22.26.31.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395943/6b1a221c-8d6f-c1ba-4a4a-79abf589187b.png">

「ディスプレイ」の「スクリーン」の「ビデオメモリー」は**128MB**とします。なお画面が小さいと感じる人は、表示倍率もここで設定できるので、200％のように変更しておきましょう。

<img width="783" alt="スクリーンショット 2020-04-25 22.27.55.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395943/92fc0ed9-bd9b-d388-98a2-aede2525a210.png">

「ポート」の「USB」は「**USB3.0（xHCI）コントローラー**」を選択します。これが表示されていなくてUSB1.1だけの人は拡張パックをインストールしてないので、[上を見直してください](https://qiita.com/minnsou/items/54491c01ac95a245b010#virtualbox%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%8B%A1%E5%BC%B5%E3%83%91%E3%83%83%E3%82%AF%E3%82%82)。

<img width="783" alt="スクリーンショット 2020-04-25 22.30.11.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395943/cb48189d-1097-e344-e5da-e8f8bd4e76f1.png">

その他の設定はデフォルトのままとします。
これで設定は完了です。

## 仮想環境でのインストール

仮想環境を実行します。SATA1の光学ドライブには先ほど作ったCatalina.isoを入れておきます。

<img width="579" alt="スクリーンショット 2020-04-25 22.37.31.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395943/ef2b8ec6-f8bb-8de9-29ca-bf162d348ca1.png">

「ディスクユーティリティ」を選択します。

<img width="589" alt="スクリーンショット 2020-04-25 22.56.51.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395943/6381fb1f-35fd-8eb9-e01a-d41a696b9355.png">

仮想ハードディスクをフォーマットします。「VBOX HARDDISK Media」を選択して、「消去」を押します。フォーマットの設定はデフォルトで大丈夫です。名前も適当に決めてください。

<img width="731" alt="スクリーンショット 2020-04-25 22.45.41.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395943/b8d558e4-b4cd-85ce-11b1-a83d5c9ed333.png">

フォーマットが完了したら、「ディスクユーティティ」を閉じて「macOSインストール」を選択します。

<img width="589" alt="スクリーンショット 2020-04-25 22.56.51.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395943/b4ebe35d-f7bf-c6d4-bb13-429bfe2c8b45.png">

基本的に、後は指示通りに従っていけば大丈夫です。適当にユーザーを作って、インストールが完了するのを待ちます。

<img width="1019" alt="スクリーンショット 2020-04-25 23.15.15.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395943/22ca220e-4909-0218-3251-434384864cb8.png">


無事できました。

![desktop.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/395943/ba80c1bb-13f3-ebaa-6dc0-22b59fd74f75.png)


これでもう一台のMacが手に入ったようなもんです。自分のPCでは試したくないけど、実験したいこととかはここでできる（例えば`sudo rm -rf /`とか）ので、皆さんも仮想Macで色々試してみるのはいかがでしょうか。