ARM版MacでUTMを使ってWindows環境を構築
Windowsじゃないと起きない不具合があったのでM2 Macでどうにかならないかやってみた
VirtualBOXが使えなかった
ARM版MacのVirtualBOXではWindowsのイメージが起動しない模様…。(apple silicon、Rosetteのx86の両方を試したり調べたがWindows10/11の起動は失敗するのが確定)
仕方がないのでUTMをインストールして試した。
UTMのインストール
$ brew install --cask utm
インストール時の注意点
Win11なのでUEFI起動は必須。
初回起動がものすごく遅いのでメモリの割当は8Gにしたほうが良さそう。
Mac側のメモリが足りなくなるので不要なアプリは消したほうが良い。
ネットワークモードは仮想VLANにして必要なportの穴あけをする。
エミュレーターモードだとM2 Macでも遅くて使い物にならないが、仮想化モードだとARM版Winodwsが必要になる。再現環境として適切か? →インストールが終わったらWinのメモリは4Gでも動きそう
ISOのダウンロードが終わった後にISOイメージの保存先の指定するダイアログを表示、その後ダウンロード画面にまた戻るので、ダウンロード完了したかが分かりづらいので注意。仮想環境の設定をした後にマウントしているDiskの順番をSSDを一番上に入れ替えないとbootしないっぽい。
Mac側の注意点
Macのメモリが足りなくなると、VM起動時にエラーになって、VM自体が壊れるらしい。
セットアップがある程度行ったところでVMの複製をしながら作業したほうが手戻りが少ない。
(Mac側の空き容量に注意)→マシンを再起動したら、VMが復活することもある?
IME、edgeの設定まで終わったら、VMのメモリは2Gでも大丈夫。
Mac側のいろんなアプリは可能な限り終了させてメモリを確保する必要あり。
UTM/Windowsのカスタマイズ
guest osからhost osをネットワークから見えるようにする
クライアントアプリがUTM上のWindows(ゲストOS)、サーバアプリ(RoRとか)はMac上で動かすことを想定していたのでこの設定が必要だった
UTMのゲストOSのネットワーク設定をブリッジ(詳細)にする(ゲストOSからホストOS側にアクセスするために必要)
ホストのMac側のIPアドレスをシステム設定から確認(マシン再起動、wifiネットワークの再接続ごとにIPアドレスは変わるはず)
ゲストOSのWindowsから確認したIPアドレスをpingして疎通確認
これでゲスト側からホスト側が立てたサーバなどが見える。
Discussion