目次
M1 Mac向けの仮想環境
M1チップ(通称Apple Silicon)を使用したMacでも開発に必要な環境がかなり整ってきました。私のiMacでもhomebrewパッケージマネージャによるソフトウェア導入、Docker Desktop for Macによるコンテナ実行環境などが実用的に動くようになってきました。
仮想環境についてはVirtualboxを入れてLinuxなどを動かそうかと思っていたのですが、当面DockerでLinuxを動かすことでことが足りそうなので一旦保留していました。そこにUTMという新しい仮想化ソフトウェアがmacOSの仮想化APIに対応して登場、というニュースを見つけました。
このニュースのヘッドラインからもわかるようにmacOS VMを作ることができる、というのが試してみようと思った動機です。自分の環境を汚さずに色々試せる環境が作れるわけです。python3のpip環境やnode.jsのためのnpm環境はいくつか異なった導入手段があります。これらをいきなりM1 iMacに入れるのではなく、事前に仮想環境で試して要求を満たすことを確認することができます。とても便利ですね。
UTMとは?
オープンソースの仮想化ソフトウェアです。ホストOSとしてはどうもmacOS 及び iOSのみをサポートしているようです。CPUアーキテクチャとしてはx86, ARM64, PowerPC, RISC-Vなどをサポートしています。CPUエミュレーションにはQEMUを使用しています。またゲストOSとしてはLinux各種ディストリビューション、Windows各種バージョンに加えて、macOSもゲストOSに使えます。macOSを仮想化する際にはAppleの仮想化フレームワークのAPIを使うことでARMインストラクションが直接M1チップで実行されるようです。
Githubで開発プロジェクトがホストされています。
機能的にはまだこれからの部分も多そうですが、基本的な仮想化は試した限り安定して動作しています。
UTMでのmacOS Monterey仮想化の手順
まずUTMをインストールする必要があります。3通りの方法があります。
- App Storeから購入
-
公式サイトUTM | Virtual machines for Macから無料ダウンロード
- homebrewから以下のコマンドで無料インストール
% brew install --cask UTM
App Storeから入手する場合のみ1220円の有償となりますが、これは作者を応援する際の手段として提供されています。無償で入手できるものと有償で入手できるものには差分はないそうです。
インストールが済んだら起動します。こんな画面が表示されます。
この中の右側の4つのボタンの中のCreate a New Virtual Machineを押せば新しい仮想環境の作成を開始することができます。以下画面キャプチャで手順を示します。
Virtualizeを選択しましょう。
macOS 12+を選択します。
初めてなら単にNextを押します。
メインメモリを6GBにしました。
SSDを64GBにしました。
内容を確認してNextを押します。
左側のペインの上から2つ目のところで、macOSのダウンロードが始まりその進捗バーが表示されています。私の環境ではダウンロードに20分ほどかかりました。ダウンロードが終了するとこんな画面が表示されます。ダウンロードが終了し下の画面が表示されたら無事に仮想環境が1つ作成されたことが分かります。
右向きの矢印をクリックすると仮想環境が起動します。まだOSがインストールされていないので、以下の確認画面が最初に表示されます。OKを押しましょう。
以下のような画面が表示されます。ウィンドウの上部のバーにOSインストールの進捗が表示されます。
この進捗が100%になると自動的に再起動がかかりインストールしたmacOSが起動します。helloという文字がオシャレに表示された後、ここからmacOSのイニシャルセットアップが始まります。
ここからは全く普通の工程となりますので省略します。
現状でのUTMの不具合
この記事を書いている時点でUTM3.0.4をインストールして使っています。残念ながら大きな不具合を見つけてしまいました。
キーボード配列がちゃんと認識されません。ホストOSではiMac用の日本語キーボード配列で認識されています。しかしゲストOSではASCII配列で認識されており、少し調べた限りでは正しく認識させることは出来ませんでした。そのためキーボード上の括弧の位置が右にひとつ分ずれていたり、各種記号が全く別の場所にマップされています。
いわゆる英語キーボードの使用経験がないと非常に使いづらいです。近いうちに直るといいのですが、、、