M2 MacでUTM（仮想化ソフト）を使う。

# はじめに
普段、`M2`の`MacBook Air`を使っていますが、先日素の状態の`MacOS`の検証がしたく、EC2のMacインスタンスを使用しようかと考えていたところ、１日使っただけでも5,000円近く取られるとのことで、他の手段を調べたところ`M2 Mac`上で別の`M2 Mac`を動かしたり、`x86_64`の`Linux`サーバを動かすことができる`UTM`というフリーの仮想化ソフトがあることを知ったので、試してみようと思います。

# UTMとは
`UTM`というだけでは他にもセキュリティ系の技術用語もあるので分かりづらいですが、`ARM`系の`Mac`でも使える`VMware`や`VirtualBox`と同じような仮想化ソフトとなります。

同一のCPUアーキテクチャの仮想マシンを作成する「**仮想化**」以外に、`QEMU`を使用した「**エミュレート**」にも対応しているため、上述の通り`M2 Mac`上で`x86_64`の`Linux`サーバを動かすこともできます。

# UTMインストール
以下公式サイトからダウンロードできるので、公式サイトからダウンロード＆インストールします。

- [UTM公式サイト](https://mac.getutm.app/)

# M2 MacBook AirにMacOSをインストールする
`M2 Mac`に`MacOS`の仮想マシンを作成しようと思います。

UTMインストール後、起動すると、以下のような画面が開くため「**新規仮想マシンを作成**」を選択します。
※以下はすでに作成途中の画面となるので初回起動時は画面左の保留中画面は表示されません。

![Monosnap_20230223_161222.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569912/0ce570d8-b8c2-5d6d-8079-15045a892349.png)

「**仮想化**」、「**エミュレート**」選択画面が表示されるため、今回は仮想化を選択します。

![Monosnap_20230223_163222.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569912/57abd2d7-6ee3-4d5c-e655-5348c83cb291.png)

インストールするOSは今回は「**macOS 12以降**」を選択。

![Monosnap_20230223_163247.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569912/53196a10-3252-430c-9598-cb0b8589e8ec.png)

`IPSW`と呼ばれるOSインストールイメージを持っている場合はこちらで選択します。

持っていない場合はそのまま「**続ける**」とすることでダウンロードが始まるため、そのまま勧めます。

![Monosnap_20230223_163308.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569912/f868d878-8c42-35d9-d913-9cb66f08a28d.png)

`IPSW`のダウンロードが完了すると、以下確認画面が表示されるため、「**OK**」としてインストールします。

![Monosnap_20230223_161757.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569912/d9877420-b864-9201-96dd-da83d83dbcc6.png)

インストールが終われば以下のようにUTMウィンドウ内で作成したMacOSが操作できます。

![Monosnap_20230223_162506.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569912/b5012db8-448d-0096-77f3-100f6d7a126c.png)

ちなみにUTMの設定を見ると、ホスト側からディレクトリを共有することもできるようです。

ただし、残念ながら`VirtualBox`等でできるスナップショットの作成のようなことはできないようです。

![Monosnap_20230223_162809.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569912/fc8825fb-9861-4bc5-7129-da8130b35f43.png)

# M2 MacBook Airにx86_64のUbuntuをインストールする
あまりチューニングしなかったこともあり、私の環境では操作ができる状態までいかなかったのでインストール手順のみ紹介しておきます。

インストール方法としては最初の「**始める**」画面で「**エミュレート**」を選択して進めていくだけなので難しいことはありませんが、`MacOS`をインストールする場合と異なり、OSインストール用のISOイメージが必要となるため、事前に準備して以下画面から選択します。

![Monosnap_20230223_165303.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569912/278116ff-b9f9-462b-a7da-98f383cee3f6.png)

「**エミュレート**」では、以下のようなハードウェアの設定画面が表示されるため、インストールしたいイメージに合わせて指定します。

「**システム**」はデフォルトのままで問題ないかと思います。

![Monosnap_20230223_165436.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569912/9e616f2a-937a-e9c9-2454-d308e9470cd1.png)

通常の`Linux`インストールが始まるため、そのまま進めます。

ただし、私の環境では以下画面が表示された後、インストール画面と思われる黒いウィンドウが立ち上がって先に進まなくなってしまったため、今回はここまでで終了としました。
※グラフィック関連の設定などいじれば改善するかも。

![Monosnap_20230223_175604.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569912/94298fc4-6965-545c-d5f0-4ae32299295f.png)

# おわりに
今回はコマンドなどの確認用として`MacOS`が欲しかっただけなので「**エミュレート**」の問題解決までは行いませんでしたが、問題解決できれば手軽に`x86_64`のマシンも準備できるので、たまに使いたくなる場合に便利だと感じました。

ただ、「**エミュレート**」で仮想マシンを動かしていると、大分ホストマシンが熱くなったのでGUI環境を無効化した仮想マシンを動かす程度にしたほうが良いと思います。

「**仮想化**」については「**エミュレート**」と仕組みが異なることから、エミュレートほど熱くなることもなく、画面の応答も思っていたよりは良かったので、ちょっとしたテスト目的であれば問題なく使えると思いました。