M1 Mac+UTMでのWindows 10 ARMの構築
概要
Apple silicon (M1) 搭載のMacBook Air (M1, 2020) を2021年7月に購入し、初めてMacを使っている。
それまではUbuntuをメインに使っており、Windowsでの動作確認をVirtualBoxで行っていた。MacでもWindows環境が必要になり、VirtualBoxを試したが、そもそもVirtualBoxがApple silicon (ARM) のMacに対応していないようで、起動できなかった。
MacではUTMというQEMUベースのエミューレーターを使うことで、Mac上でWindowsを動作できるようだ。実際に、これでVirtualBoxのWindows (intel) を変換して起動できた。ただ、起動できたものの動作が遅すぎて常用するのは難しいと感じた。これは、ARM CPU上でIntel CPUをエミューレートするためであり、同じARM同士であれば余計なエミューレートがなくなり、性能が改善される。
そこで、現在評価版がMicorosoftから提供されているWindows 10 ARMをUTMで動作させた。いくつか注意点もあるので、手順を残す。
UTMの公式手順「Windows 10 | UTM」を参考にした。
MacBook Air (M1, 2020), macOS Big Sur (v11.5.1), UTM v2.1.2 (31), Windows10_InsiderPreview_Client_ARM64_en-us_21354.VHDXで確認した。
手順
まず、UTM、Windows for ARM、SPICE Guest Toolsをダウンロードする。Windows for ARMはWindows Insider Prevewのプログラムに参加する必要があり、Hyper-Vのイメージファイル9 GBをダウンロードする。
ダウンロードしたイメージファイルをそのまま使用すると、UTM v2.1.2だと起動に失敗した。そのため、これをQEMUの形式に変換しておく。新しいUTMのバージョンで問題ないならこの変換は不要になる。
Homebrewでqemu-imgをインストールして、このコマンドでqcow2に変換する。
brew install qemu
qemu-img convert -p -O qcow2 \
Windows10_InsiderPreview_Client_ARM64_en-us_21354.VHDX \
Windows10_InsiderPreview_Client_ARM64_en-us_21354.qcow2
次に、UTMでイメージを追加する。
[Information] タブで以下を選ぶ。
- [Name]: [Windows 10]
- [Style]: [Operating System]
[System] タブで以下を選ぶ。
- [Architecture]: [ARM64 (aarch64)
- [Memory]: [8192 MB]
[Drives] タブで以下を選ぶ。
- [Import Drive] を選び、事前にダウンロードしたWindows 10のVHDXファイルを選ぶ。そして、 [Interface]=[NVMe] を選ぶ。このNVMeの設定が重要となる。
- [New Drive]-[☑Removable]
[Sharing] タブで以下を選ぶ。
- [Shared Directory]-[☑Enable Directory Sharing]
設定が終わったら、メニューに戻って、以下の2点を設定する。
- [Shared Directory] を選んで、共有対象のディレクトリーを選ぶ。特にこだわりがなければ、[~/Public] が標準の共有ディレクトリーなのでこれを選ぶとよい。
- [CD/DVD]-[spice-guest-tools-0.164] を選んで、SPICE guest toolsのISOをマウントしておく。
イメージを起動してWindows 10の設定をウィザードに沿って行う。初期設定が完了したら、まずspice-guest-toolsをインストールする。
CD Drive (D:) に選択したISOファイルがマウントされており、ここに [spice-guest-tools-x.xxx] が存在する。これをダブルクリックでインストールして再起動する。
これをインストールしないと、インターネット接続やディレクトリー共有ができないので必須だろう。
再起動すると、Zドライブに [DavWWWRoot (\\localhost@9843)] がマウントされている。これが共有ディレクトリーだ。
インストール手順は以上となる。
対策
インストールはできたが、そのままではいろいろ問題がある。対応できている問題の対策と、対応できていないものについては不具合の情報を掲載する。
画面サイズ
まず、デフォルトだと表示されている画面は画面2となっている。この状態だと画面が小さい。これを解消するには、デスクトップで右クリック-[Display settings]-[Multiple displays]-[Show only on 1] を選んで再起動する。
ただし、これを選ぶと、画面解像度が上がって画面サイズを大きく拡大できるが、代わりにマウス統合がずれるようになる。これを回避するには、右上の [capture mouse] を選んでVMにマウスをキャプチャーさせる。マウスキャプチャーはcontrol+optionキーで解除できる。
そのほかに、なぜか2-3分おきくらいにIE Edgeが新しいタブを開くようになるほか、マウスポインターが見えないことが多くなる。画面サイズは大きくなるものの、逆に作業効率が落ちるように感じた。
そのため、画面サイズが小さいのを我慢して2の画面を使ったほうがよく感じた。
日本語対応
デフォルトだと英語版となっており、日本語を入力できない。そのため、日本語対応する必要がある。
これについては、「M1 MacでのWindows 10 ARMの日本語化方法 – senooken.jp」に記載しているのでこれを参考に設定する。
ディレクトリー共有のファイルサイズ上限拡大
ディレクトリー共有はWebDAVを経由して実現されている。Windowsのexplorer.exeはWebDAVに対応している。
ただし、標準で50 MBまでのファイルしか取り扱えない。設定で4 GBまで拡大できるので「WindowsのWebDAVでの大容量データの使用方法 – senooken.jp」を参考に設定する。
自動ログイン
UTMの設定とは直接関係ないが、VM上のWindowsを起動するたびにパスワードを入力するは手間だ。
そこで、「Windows 10の自動ログイン方法 – senooken.jp」を参考に自動ログインすると楽だろう。
マウスホイールとスクロールの方向
Mac側ではマウスホイールとスクロールの方向を設定できる (参考: Mac: マウスホイールのスクロール方向の変更 – senooken.jp)。
ただし、WindowsでのマウスホイールはMacの設定と関係なく、Macの現在のスクロール方向と逆方向になるようだ。おそらくUTMのバグだと思われる。バグと思って直るまで我慢する。
日本語キーボードでの入力不可キー
「Non-English keyboards are not mapped correctly on Macbook · Issue #2678 · utmapp/UTM」で報告されている通り、英語キーボード以外だとキー割り当てがおかしくて入力できない文字がある。
Twitter上でも同じ問題の報告が見つかった。
今更M1 iMacにHomebrewでUTMを入れ、Ubuntu Server 20.04+desktopを入れたがMagic keyboard(JIS)でバックスラッシュやらアンダースコアが入力出来ない… 助けて…
— Sabotenboy☆彡 (@Sabotenboy) July 21, 2021
日本語キーボードだと、バックスラッシュ、パイプ、アンダーバーあたりが直接入力できなかった。
しかたないので、Macホスト側で、これらの文字をコピーして、ペーストで入力する。
結論
M1 MacでのWindows 10 ARMのVMの構築方法を記した。
いろいろ問題があり、かなり苦労した。特に日本語化の方法に苦労した。
今回、Windows上で動作させたいソフトがあり、パフォーマンスの問題があったので、頑張って取り組んだ。できることならば、またUTMでのARM Windowsの使用は避けたほうが無難に感じる。
マウスやキーボードなどに相変わらず問題があるので、解決したら情報を更新したい。
“M1 Mac+UTMでのWindows 10 ARMの構築” に対して1件のコメントがあります。