開発環境をつくるとき、自分のMacに色々インストールしたくない、まっさらのMacの状態から構築したい、などの理由で、バーチャルマシン上にMacを作りたいことがあります。
この記事では、Catalinaで動作しているMac上に、VirtualBoxを使ってCatalinaで動作するMacのバーチャルマシンを構築する方法を紹介します。
前提
- App StoreでCatalinaを購入してダウンロードできる状態にあること。
- ホストのMacで、Catalinaが動作していること。64bitの環境を想定。
ライセンス違反なし!
今回の方法は、開発環境を構築する目的で、Catalinaが動作しているMac上で、そのCatalinaライセンスをバーチャルマシンに使うので、以下のライセンス規約に該当するため業務上の利用であってもライセンス違反はないと判断しています。Catalina以外は確認していません。
https://images.apple.com/legal/sla/docs/macOSCatalina.pdf
If you obtained a license for the Apple Software from the Mac App Store or through an automatic download, then subject to the terms and conditions of this License and as permitted by the Services and Content Usage Rules set forth in the Apple Media Services Terms and Conditions (https://www.apple.com/legal/internet-services/itunes/) (“Usage Rules”), you are granted a limited, non-transferable, non-exclusive license:
(中略)
(iii) to install, use and run up to two (2) additional copies or instances of the Apple Software within virtual operating system environments on each Mac Computer you own or control that is already running the Apple Software, for purposes of: (a) software development; (b) testing during software development; (c) using macOS Server; or (d) personal, non-commercial use.
1.Catalinaをダウンロードする
App Storeを開いて、Catalinaを検索し、ダウンロードします。
インストーラーが立ち上がったときは、キャンセルします。
App StoreでダウンロードしたMacOS Catalinaの実体ファイルは、以下のパスにあります。
/Applications/Install\ macOS\ Catalina.app
Catalinaのインストーラisoを作る
参考:https://www.geekrar.com/create-macos-catalina-iso-file/
ターミナルを起動し、以下のコマンドを1行ずつ順に実行していきます。(ターミナル起動は、ファインダー→アプリケーション→ユーティリティ→ターミナル)
DMG ディスクイメージの作成
hdiutil create -o /tmp/Catalina -size 8500m -volname Catalina -layout SPUD -fs HFS+J
これをホストOSにマウント
hdiutil attach /tmp/Catalina.dmg -noverify -mountpoint /Volumes/Catalina
macOS Catalina のインストーラーを作成
sudo /Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia --volume /Volumes/Catalina --nointeraction
Catalinaディスクをアンマウント
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
デスクトップにCatalina.isoができてたらOKです。
VirtualBoxをインストールする
https://www.virtualbox.org/wiki/Downloads
上記リンクから、OS X用のVertualBoxをダウンロードし、実行。
Double click on this icon をダブルクリックします。
インストールできるかどうかを判断するという確認画面で、「続ける」。
ようこそ画面で、「続ける」
インストール確認画面で、「インストール」
「拡張機能がブロックされました」と出るので、「”セキュリティ”環境設定を開く」
鍵をクリック→許可→閉じる
インストールが一旦失敗するので、閉じる。
”Oracle VM VirtualBox”のインストーラをゴミ箱に入れますか?は「残す」
もう一度Double click on this icon をダブルクリックする。
先ほどと同様にインストールまで進む。
今度は「インストールが完了しました。」となるので、閉じる。
(インストーラはゴミ箱に入れて良い)
Finderでアプリケーションの中にVirtualBoxがあればインストール成功。
バーチャルマシンを作る
VirtualBoxを起動。
新規をクリック。
バーチャルマシンに名前をつけて、タイプはMac OS X、バージョンはMac OS X (64-bit)
メモリは可能なら大きめに。4GB以上を推奨。
ハードディスク作成では、仮想ハードディスクを作成するを選択
ファイルタイプはVDIを選択。
物理ハードディスクにあるストレージは固定サイズを選択。
ファイルサイズは開発テスト環境として使うなら最低80GBくらいを推奨。XCodeを使うなら128GBでも足りなくなる事が多い。特にアップデート時に大きな容量を要求される。
バーチャルマシンができたら、設定を開く。
システム→マザーボード→フロッピーをオフ。
システム→マザーボード→チップセットをPIIX3に設定。
システム→プロセッサー→プロセッサー数を好きな個数に設定。開発テスト環境に使うなら2つ以上を推奨。
ディスプレイ→スクリーン→ビデオメモリーを 128MB に設定。
ディスプレイ→スクリーン→3Dアクセラレーションを有効化をオン。
OKで設定を確定する。
Catalinaをインストールする
バーチャルマシンを選んで、設定を開く。
ストレージ→ストレージデバイスで、空の光学ドライブアイコンを選択し、ドライブ指定の右にある光学ディスクアイコンをクリック、「ディスクファイルを選択」を選択。
デスクトップのCatalina.isoを選択。
空だったところにディスクがマウントされたら、OKで設定を確定。
バーチャルマシンを起動。
Please select a virtual optical disk file or a physical optical drive containing a disk to start your new virtual machine from.
と出るので、さっきのディスクイメージが選択されていることを確認して、Start
インストールが始まる。
言語選択画面が出てきたら、言語を選択して「→」
macOSユーティリティで「ディスクユーティリティ」を選択し、「続ける」
「VBOX HARDDISK Media」を選択し、「消去」
【注意】他のディスクを選ばないように十分注意してください
消去画面で、ディスクの名前をつけ、フォーマットをAPFSにして、方式をGUIDパーティションマップにして、「消去」。
消去が終わったら「完了」
作成したディスクを見るとこんな感じ。確認したら、ディスクユーティリティを閉じる。
macOSユーティリティで「macOSインストール」を選択し、「続ける」
タイトル画面が出るので、続ける。
使用許諾画面で同意。
もう一度同意確認が出るので、同意。
インストールするディスクの選択で、先程作ったディスクをクリックし、インストール。
かなり待ちます。。。
ようこそ画面が出たら、通常通りセットアップ。
デスクトップが表示されたらインストールは正常に完了です。
トラブルシュート
・ホストとゲストの間でコピペできないなど、使い勝手が悪い
VirtualBoxの便利ツール「Guest Additions」をインストールしてみましょう。
・Retinaディスプレイでバーチャルマシン画面が小さすぎる
なVirtualBoxの設定画面のディスプレイ設定で、表示倍率を150%、3Dアクセラレーションをオフにしてみましょう。