M1 MacやiOSでも動く高機能な仮想環境UTMを使ってみた

macOSで仮想化といえば、VMware FusionやParallels、変わり者としてはWineなどが使われてきています。しかし、これらはVirtualizationという括りになり、CPUエミュレーション等は行っていませんので、基本x86-x64の環境でなければ使う事が出来ません(最近、ようやく前者2つはM1 Macに対応した)

そうなると、他のアーキテクチャで動いてるOSを動かしたいとなると、専用のエミュレータを使うのが定石でした。しかし、Windows11の項目でちょいちょい話題になっていた「UTM」を使うと、様々なCPUをエミュレーションする事が可能で、しかもmacOSだけじゃなくiOSデバイスでも動かせるとか。ということで、今回はUTMを利用して、一通り使い方をまとめてみました。

目次

今回使用するアプリ等

今回はとりあえず、Macbook Pro 2016(Intel Mac)にて、Ubuntu LinuxのVirtualizeと、Mac OS 9.2.1のEmulatedを利用してみようと思います。ギャラリーにはそのOSを動かすための設定がいくつか既に用意されているので、面倒なセッティングの手間を省く事が可能です。時間があれば色々他のOSも試してみようと思います。

※現在、M1 Mac上でだけ、ゲストにmacOSをインストール可能になってるようです(v3.0以降)

M1 MacだとParagon VMDK Mounterが使えないので、qcow2ディスクイメージで受け渡しという手段を利用します。

UTMとは?

UTMとは、Qemuをベースに作成されている仮想環境を作るmacOSとiOS向けに作成されているオープンソースのソフトウェアです。CPUエミュレーションをしない「仮想化」と、CPUエミュレーションを行う「エミュレータ」の2つの顔を持っており、特に後者の機能により、全くCPUアーキテクチャが異なる環境上で、そのCPUを再現し、実現してくれるかなり凄いアプリが土台になっています。Qemuのフロントエンド的な役目を担っています。

結果、ARMなM1 Mac上でx64のWindows10等を動かしたり、x86な環境上にPowerPCで動くMac OS 9を動かしたりと、違う環境の垣根を超えてアプリケーションを動かせる為、ある意味ではVMware FusionやParallersを超えてる仮想環境です。

このサイトでも過去に純粋なQemuを使ってRaspberry PiのRaspbianを動かすといった事をチャレンジしています。最近のv3.0からはmacOSをゲストOSとしてサポートするなど、かなりのスピード感で進化しています。

macOSでQEMUを使ってRaspbianを起動する

macOSでUTMを使ってみる

UTMをインストールする

UTM(250MB程度)のインストールはとても簡単で、DMGファイルをダウンロードし、ダブルクリックでマウント⇒アプリケーションフォルダに入れるだけです。現在は、Mac App Storeでも配信されており、こちらは$10の有償となっているようです。

インターフェースはとっても、簡素なのですが、様々なアーキテクチャに対応する為に、個々の設定項目は非常に細かいシーンもあり、また、好き勝手にRAMやCPUを指定して動くわけではないので、この辺りが設定を行う上での大きな壁になります(例えば、Mac OS 9の環境はPowerPCを指定する必要があり、またその時のCPUのコア数やRAMには上限値がある)。

図:見た目はとってもシンプル

qcow2イメージを共有する

Windows11等はSPICE Guest ToolsでホストであるmacOSと直接やり取りが可能ですが、それが無いOSの場合、FTPやSamba等を介してやり取りをする必要があります。しかしもう1つ手段があり、UTMことQemuのディスクイメージであるqcow2イメージを利用してやり取りをする事も可能です。

以下の手順で受け渡し用のqcow2イメージを作成して、macOS側でマウントが可能です。ターミナルで作業をします。

  1. homebrewをインストールしておく
  2. 以下のコマンドでqemuを別途インストールする(qemu-imgコマンドが使えるようになります)
  3. 以下のコマンドで空のqcow2イメージを作成します

    これで、デスクトップに1GBの未フォーマットのqcow2ディスクイメージが出来ます。これをデスクトップにでも配置しておきます。
  4. 以下のコマンドでこのディスクイメージに接続します

    まだ、マウントは出来ません。diskutil listで調べると自分の場合、/dev/disk4として認識されました
  5. ディスクユーティリティを起動すると、空のディスクが認識されてるので、消去しexFAT等でフォーマットする
  6. 次回以降は、以下のコマンドでディスクユーティリティを起動せずに直接マウント出来ます
  7. マウントすると普通にmacOS上でqcow2イメージの読み書きが可能になるので、UTMのOS側に渡したいファイル類を入れてあげる
  8. アンマウント(取り出し)をして、UTMを起動する
  9. 仮想環境を右クリック⇒Editを開く
  10. New Driveをクリックして、NVMeのRaw Imageにチェックを入れてImportをクリック
  11. 作成したdata.qcow2を選ぶと「インポート」される
  12. 仮想マシンを起動するとHDDとして認識されてqcow2ファイルの中身を取り出す事が出来る

ゲストOSが認識できる形式でフォーマットしてあげる点が注意点です。また、接続というよりインポートという形になり、リムーバブルドライブでは認識されないので注意です。

図:qcow2ファイルがドライブとして認識されてる

図:Windows11にインポートしてみた

Ubuntu Linux 20.04

OSのインストール

Macbook Pro 2016はIntel CPUであり、またUbuntu Linux 20.04もx86用のOSであるため、UTMで利用する場合にはCPUのエミュレーションは不要故にかなり快適に動作します。また、仮想環境の構築も非常に楽ちんで、以下の手順で簡単に構築する事が可能です。

  1. UTMを起動し、Create a New Virtual Machineをクリックする
  2. Virtualizeを選択する
  3. OSでは、Linuxを選択する
  4. Boot ISO Imageでは予めダウンロードしておいたUbuntu Linuxのisoファイルを指定する
  5. RAMは4GB、Core数は4を指定。Storageでは100GB程度を割り当てました。
  6. Shared Directoryがホスト側と共有するフォルダの指定ですのでお好みで
  7. そのまま起動せず、左パネルに出来た項目を右クリック⇒Editで入ってみる
  8. 他にも色々と細かいセッティングがあり、USBについてホストと共有する項目や、ドライブの設定等があるのでお好みに応じて変更する
  9. 起動させる
  10. 普通にインストールが始まるでの、指示に従って進める
  11. インストールが完了し、無事にUbuntu Linuxが起動したら成功

64bit環境でインストールしてるので、UEFIブートで尚且Apple Virtualizationが利用可能です。M1 Macではギャラリーにインストール法が記載されているので、ARM版 Ubuntuを利用すれば同様にインストールが可能です。

図:セッティング項目は豊富

図:無事にインストールして動作するようになった

SPICE Guest Tools

WindowsおよびLinuxに用意されている、VMwareで言うところのVMware Toolsと同じ役目を果たしてる、追加のプログラムです。フォルダの共有やクリップボード共有、画面サイズの動的可変対応、各種ドライバ等が入っており、WindowsやUbuntu等では必ず入れるようにしましょう。

Ubuntuの場合はターミナルを起動して、以下のコマンドを実行するだけです

Windowsをインストールした場合には、サポートページにあるGuest ToolsのISOをダウンロードして、仮想環境内で中に入ってるインストーラを実行する必要があります。

Mac OS 9.2.1

これまで、PPCなMac OSについては、SheepShaverを使い、68KなMac OSについては、BasiliskIIという専用のエミュレータを使うのが定石でした。長く開発されていて完成度が高く、驚くべき事にまだ開発は続いています。しかし、ことPowerPCのエミュレーションについては、SheepShaverが対応しているのは仕様上Mac OS 9.0.4まで、それ以降の9.2.1やPowerPCのMac OS Xなどは対応しておらず、PearPC等がありましたが、随分前に開発停止の状態です。

そこで、今回はUTMを利用して、Mac OS 9.2.1日本語版をインストールしてみようと思います。予め、インストールディスクはISO形式で抽出してファイルにしてあります。アップデータで9.2.2にすることも可能です。

OSのインストール

Mac OS 9については、ギャラリーに既に設定用のファイルが用意されており、これを使ってセットアップを行います。

  1. 設定用ファイルのページのOpen in UTMをクリックする
  2. 設定がインポートされるので、仮想環境を右クリックして、Editで設定に入る
  3. PowerPCの場合、RAMは最大1GBまで指定は出来るのですが、指定すると音が出なくなるバグが存在するので、512MBまでにしておきます
  4. NetworkがEmulated VLANのままだと、ホストと通信が出来ないのでBridge(Advanced)に変更する
  5. IDEデバイスのCD-ROMにMac OS 9.2.1のISOファイルを指定し、順番をIDEのディスクよりも上にしておく(起動順番を変える為
  6. 仮想環境を起動する。OSの起動は結構時間が掛かりますし、よくフリーズします(これはOSそのものが不安定であるため)
  7. 起動が完了したら、5.の中にMac OS 9のインストーラがあるので、実行してインストールを完了させます。
  8. 一旦シャットダウンする
  9. 5.の設定に於いて、IDEの起動順番をCD-ROMをIDEディスクよりも下げておく(これでCDから起動しなくなります)
  10. 再度起動して、🍎をクリック⇒コントロールパネル⇒モニタに於いて、画面解像度を大きくしておきましょう。

Mac OS 9用のSPICE Guest Toolsは無い為、クリップボード共有やフォルダの共有、画面のサイズの動的変更などは出来ません。この辺りはSheepShaverは対応しているので、さすが専用エミュレータです。しかし、サウンドとネットワークに関しては既に使えるようになっています。IE5で阿部寛氏のホームページを開いてみたら開けました(他のhttpsなページは流石に全滅ですが)

なお、日本語UIMのことえりは、Commandキー+Spaceキーでオンオフしますので注意。

図:メモリは最大512MBまでにしておく

図:インストール中の様子

図:画面解像度はモニタ設定から行う

ゲストから抜ける設定キー

WindowsやUbuntuはGuest Toolsのおかげでいちいち意識せずに仮想環境とホストをマウスで行き来出来ますが、それが無いMac OS 9の場合は、いちいちゲストから抜ける場合にはゲストから抜けるキーを使ったり、また入る場合には右上のCapture Mouse Cursorのボタンをクリックしないと、マウスカーソルが動きませんし、出られません。

UTMのメニューにあるPreferencesにはこのキーを「OptionキーとCommandキーの組み合わせ」に変更する設定があるので、自分はこれをオンにしています(VMware Fusionも同じ設定な為)

図:ゲストから抜けるキーの設定

図:ゲストに入る為のボタンはコレ

ホストとの共有手段

これが一番苦労します。既に現在のmacOSはAFPが利用出来ないので、Mac OS 9で標準のプロトコルでの通信に未対応です(BigSurで廃止されちゃった)。また、Web共有でゲスト内のファイルをホスト側が見たり手に入れる事は出来ても、送ることが出来ない。かといって、Sambaに簡単にアクセス出来るわけじゃない。この辺りもSheepShaverは対応していて、ホスト側の環境は見えるように仕組んでくれています(Unixというドライブとしてボリュームが見える)。

UTMではどうやってやり取りをするかを考えると

  1. FTP対応のルーターを用意する(例:ASUS TUF AX3000は対応しています)。Mac OS 9側にFTPクライアントを入れて受け渡しを行う
  2. 空のVMDKファイル(FAT32でフォーマット済み)を用意。macOS側はParagon VMDK Mounterで読み書きし、UTM側はこれをドライブとして接続可能です。リアルタイムのやり取りは出来ないですが、1.用のアプリやStuffit Expanderなど必要なものを予め詰めて渡してあげる
  3. USBメモリ機能がUTMにはあるものの、手元のUSBメモリを接続してみても、OS9では認識しませんでした(FAT32なんだけれど・・・)
  4. afpプロトコルを使える別のマシンを用意する

UTM側の設定で、IDEのディスクイメージをRemovableとして追加し、メイン画面下にあるRemovableをクリックして、Browseで空のVMDKを指定すれば、Mac OS 9側ではボリュームとして中を見ることが可能です。一度渡してあとは、FTP経由でやり取り出来るようにすれば問題ないと思います。ウェブブラウザはもうまともに動くものが無いと思うので、そちらは諦める・・・

また、試しにVMware Fusionで過去のMac OS Xでafp経由で直接接続した所、UTM内の共有フォルダが見えました。ただとても手間が掛かるものなので、常用するにはちょっと不便ではないかと。

過去の資産などを動かすのには使えるかもしれませんね。Mac OS 9だけじゃなく、Mac OS X 10.xのPowerPC版も動かせるようなので。

図:VMDK内のファイルが見られた

図:VMDKを読み込ませる設定

図:afp経由でやり取りは可能だけれど

図:FTPでAsus TUF AX3000に接続してみた

Chrome OS Flex

OSのインストール

2022年2月にリリースされたばかりのChrome OS Flex。VMwareやVirtualBoxでは利用出来なかったのですが、Qemuでは動くという事を耳にしたので、色々試してみた所、以下の手順でUTMにて動かす事が出来ました。インストールはまだ試していないので、イメージファイルからのブートだけです。

  1. このURLからChrome OS Flexのディスクイメージを直接ダウンロードする
  2. 1.を解凍するとbinファイルが手に入るので、拡張子をqcow2に変更する
  3. UTMでまず適当にVirtualizeで仮想マシンを作る。ISOは一時的に2.を指定する
  4. Finderで3.の仮想マシンを探しだし、パッケージの中身を表示⇒imagesに入る
  5. 2.のファイル名をdata.qcow2に変更する
  6. 4.の中のdata.qcows2と5.のdata.qcows2を差し替える
  7. UTMのIDEデバイスでCD-ROMが存在するので、それは削除してしまう

つまり、Chrome OS FlexのディスクイメージってQemuベースという事なので差し替えてしまうわけです。

UTMの設定を変更

次に以下のように仮想マシンの設定を変更します。色々試してみたのですが、キーボード入力できなかったり、ロゴで止まったりした中で、以下の設定はきちんと入力も出来たのでベストなのではないかと。

  • Architecture : x86_64
  • System : Standard PC (Q35+ ICH9, 2009)(alias of pc-q35-6.2)(q35)
  • UEFIやRNG Bootのチェックは外す
  • CPU : Default もしくは Haswell
  • Core : 4
  • RAM : 4096MB
  • Use Hypervisorにチェックを入れる(ホストがM1の場合出てこない)
  • Display : virtio-vga
    但し、GPU Supportedがないものだと、描画がものすごく遅いが、セットアップ時はこの設定じゃないとキーボードが入力出来ない。
  • Input : Legacy PS/2 Modeにチェックを入れる
  • Network : Bridgeにて、virtio-net-pciを指定
  • Sound : Intel HD Audio Controller (ich6) (intel-hda)

インストール時のアカウントとパスワード入力がかなり遅いが、インストールが完了したらDisplayをvirtio-gpu-gl-pci(GPU Supported)に変更すれば、あとは問題なく利用出来ます。

図:アップデートも出来ます

トラブルシューティング

USキーボード配列になってしまう点がちょっと気になる。+キーはShift+〜キーで、@はShift+2キーとなる感じ。これを変更する場合は以下の通り。

  1. 設定アプリを開く
  2. 詳細設定以下にある「言語と入力方法」を開く
  3. 右パネルの「入力とキーボード」を開く
  4. 入力方法は、英数字(日本語)キーボードと、日本語のみの状態にする
  5. これで、日本語キーボードに対応したキーアサインに変わる

図:JPキーボードに変更しておく

Linux仮想環境についてはインストールしてみましたが、表示は出てこず。ファイル共有に関しては、Google DriveやSambaが使えるのでダイレクトではないものの、他と違って困る事は無いのではないかと。

Youtubeの動画を見ると画像が乱れる。音はきちんと出ますが。。。ちょっと違うパターンで正しく再生できるものを見つける必要有り。

ちなみに日本語入力はOptionキー+Spaceでオンオフとなります。

図:バッチリ動いてしまった

Windows98 Second Edition

古い16bitアプリやゲームをやる手段としてこれまでは、Wineという選択肢もCatalina前まではあったのですが、Catalina以降はさすがのCrossOver Macでも16bitは動かなくなってしまったので、仮想環境が必要です。VMware FusionでもWindows98 SEは動作するので通常はその選択肢は正しいのですが、M1 MacではWindows9x系は動かせないので、そこで使うのがUTM。

図:ここにたどり着くのが大変

OSのインストール

Windows98 SEのインストール自体はUTMのハードウェア構成だけきちんと指定すればそこまで難しくありません。予め、Windows98のディスクはISO化しておきましょう。

  1. UTMにてCreate New Virtual MachineのVirtualizeで新規作成する
  2. 仮想マシンの設定は以下のようにする
  3. ISOから起動する
  4. あとは指示にしたがって普通にインストールを進める
  5. 無事に起動したらオッケー(この時点でサウンドは有効になっています)

Windows98用のSPICE Guest Toolsなど無いので、ホスト側とのファイル共有やゲスト解像度の自動伸縮などは使えない。サウンドカードやグラフィックカード、ネットワークカードはエミュレートされてるので実際のドライバがそのまま利用可能。ゲストから抜けるキーの設定は前述のMac OS 9の場合と同じ。(SPICE Guest Toolsが有効なのは、XP以降になります)

一部難しいのは古いOSのなので、インストール冒頭でFDISKでのパーティション切りだけは指示にしたがって進めれば良いだけとは言え、コンソールな画面なので、注意が必要です。

※無印のWindows98は挑戦してみましたが、どうしても最終セットアップ後にハングアップ(プラグアンドプレイBIOSでの変更の結果)で起動しなくなりましたので、Win98SEを使うようにしましょう。

※Windows98 SE用大容量USBメモリ用のドライバはこちらにありますが、割と不安定なのでバックアップを取ってから試すようにしましょう。

図:インストール自体はそこまで難しく無い

図:無事に起動しました

不具合の修正

前項でドライバ変更は出来たけれど、画面がおかしい。デバイスマネージャを見ると他にも「!」のついたオカシナ項目があるので直していきます。この時点で問題があるのはネットワークカード、プラグアンドプレイBIOS等。以下の手順で順番にドライバを当てていくのですが、しくじるとOSインストールからやりなおしになったりするので、結構シビアです(なので、仮想環境のバックアップを取ってから行いましょう)

  1. こちらのサイトのISOファイル(Win98tools.iso)をダウンロードして、UTMにてドライブを追加し、読み込むように設定する
  2. 1.の中身をデスクトップにコピーしておく
  3. Windows98のISOに入れ替える
  4. デバイスマネージャをもう一回開く
  5. プラグアンドプレイBIOSを開き、ドライバ更新にて、PCIバスに変更する(追加でドライバが割り当てられる)
  6. ここで一旦再起動をする
  7. 色々と追加でデバイスが認識されるようになる
  8. Intel 82441 FXについてはISOにドライバが入ってるのでコレを指定してインストールする
  9. ほかも同じようにドライバインストール(同じく再起動は行いません
  10. PCI Ethernet Controllerのドライバを要求してきたら、2.の中から指定する(RealtekRTL8193がソレ)。ne2k-pciならばWindows98のCD-ROMから
  11. 引き続きドライバをインストール(再起動は行わない
  12. デスクトップにまでたどりついたら、ここで、Windows98SEを再度起動する
  13. ここからはかなり長い時間起動まで黒い画面のまま。辛抱して待ちます
  14. 引き続き、IDEコントローラなどのドライバ組み込みが続きます
  15. 再度、RealTekのドライバ要求が出るので、10.と同じものを指定します。

ここまでやってようやく、トラブル無くドライバの組み込みが成功すると思います。少しでもしくじるとDLLエラーやら起動しないでBSODになったりと、9x系は非常に不安定なOSなので、UTMで動かすのはVMware Fusionよりも大変です。

図:プラグアンドプレイBIOSをまず何とかする

モニタ解像度の変更

インストール直後だと16色でモニタサイズが標準VGAのままで、680x480のままです。これでは色が出ず、また解像度を変更出来ないので以下の手順で変更します。前述のドライバ組み込みでVGAドライバは組み込まれているので以下の手順で解像度変更を行います。

  1. 再起動したら、デスクトップ上で右クリック⇒プロパティ⇒設定を開く
  2. 色を16bit True Colorにして、800x600に変更して再起動

但し、この設定には問題があって、1024x768だと画面がオカシナ表示になります。ということで、win98toolsに入ってるドライバに入れ替えてみます。

  1. UTMのDisplayをSpice QXL (primary, vga, compatible)(qxl-vga)に変更する
  2. Windows98SEを起動する
  3. デスクトップにwic98toolsでコピーしておいたものを指定するのに、「特定の場所の・・・」を選んで進める
  4. ディスクを使用をクリックして、デスクトップにあるVESA Spice QXL Driverを指定する
  5. VBE – Miniport Standard PCI Graphic Adapterが選ばれるので進める
  6. 再起動すると、競合してると出てるのでデバイスマネージャを開く
  7. Cirrius Logicを削除して再起動する
  8. 再起動して、色を32bit True Color – 1280x720に変更してもバッチリ動作する

図:この手間がこの時代の普通でした

図:高解像度になった

ネットに接続する

ネットワークドライバを組み込んでもまだ、LANには接続出来ません。以下の手順でEthernetで接続する設定を行います。

  1. スタート⇒設定⇒コントロールパネルを開く
  2. インターネットオプションを開く
  3. 接続タブの接続をクリック
  4. インターネット接続ウィザードが出るので、3つ目のLANを使って接続にチェックを入れて進める
  5. ローカルエリアネットワークを選んで進める
  6. プロキシーの設定は無視して進める
  7. メールアカウント設定はしないで進める
  8. これで、インターネットに繋がるが、IEは古すぎてもう、阿部寛氏のページくらいしか繋がらない

図:ネット接続もちょっとだけ手間がある

ファイル共有

Mac OS 9の時同様に、ファイル共有手段が限られています。Sambaも使えません。但し、Windows98SEの場合は

  • USBサポートされているのでそちら経由で渡せる(ffftpなどのプログラムをコレで渡す)
  • FTPクライアントを使って、FTPサーバがあればそちらをNAS代わりに出来る

自分の場合、自宅のAsus TUF AX3000がFTPサーバになれるので、ffftp1.92を入れて、クイック接続を使って必要なファイルのやり取りをしています。

図:FTPがあれば何とかなる

トラブルがある

使っていて気がついたトラブルとしては

  • 再起動をすると黒い画面のまま止まるので必ずシャットダウンして、再度起動する必要がある
  • コマンドプロンプトを起動するとオカシナ表示になるので、Optionキー + Enterキーを2回叩くと正常になる
  • Sambaに接続しようとしても接続出来ない(Pingは通るけれど)
  • macOSの場合、キーボードに半角/全角キーが無いので、キーサイン変更のアプリをWin98側に入れてIMEオンオフを実現しなければならない

実用するにはファイルの共有がMac OS 9と同様にファイルの共有とウェブブラウザが無いのが辛い所。但し、USB接続が出来るっぽいので、それを経由してファイルの受け渡しで必要なものを調達することはできそうな点があるだけマシな感じです。

WindowsXP

いわずとしれた、非常に長い間サポートされていたx86系Windowsの完成形の1つがこのWindowsXP。今となっては古臭く実用的ではないですが、多くの9x系やNT系のゲームを動作する事が出来た現在のWindowsのご先祖様。PPC Mac OS 9上でConnectix VirtualPCを動かしていた時代を思い出します。

公式にはWindowsXP SP3まで提供されていました。今回はこのWindowsXPをインストールして動かしてみます。

図:M1 Macでも快適に動作します

OSのインストール

インストール作業

手元に残っていた、Windows XP SP1aのインストールディスクを元にインストールを行います。この作業自体は非常に簡単。特に障害もなくインストールが可能です。UTMのサイトにあるWindowsXPの仮想マシンテンプレートを利用してインストールします。RAMは512MB程度。

何度か、再起動は必要であるものの、ユーザアカウントの作成やタイムゾーンの選択くらいで、非常にシンプルにインストールは完了します。但し、Ethernetのドライバが入っていないので、この時点ではプロダクトアクティベーションは出来ませんが、もともと既にもうインターネット経由でのアクティベーションはサポート外なので、スキップして問題ありません。

図:懐かしいセットアップ画面

プロダクトアクティベーション

既にサポート対象外OSではあるのですが、インターネット経由ではなく、電話でのアクティベーションが出来るかどうか?やってみました。過去にこちらのサイトで2020年にプロダクトアクティベーションを電話で行って成功している方がいました。

尚、アクティベーション情報のバックアップ方法については、こちらのサイトに記載があるので、認証が完了したら行っておくと良いでしょう。プロダクトキーの変更に関してはこちらに情報があります。

  1. スタート⇒アクセサリ⇒システム・ツール⇒Windowsのライセンス認証を開く
  2. インターネット経由ではなく、電話での認証を選ぶ
  3. 0120-801-734に電話を掛けてガイダンスに従って進む(基本全て音声案内になりますので人が介在しません)
  4. ステップ1は日本を選択
  5. step3の番号を指示に従ってブロック毎にスマフォで入力して送信
  6. 無事に通ると相手から今度は逆にブロック毎に数値案内されるのでウィザードに入力
  7. 次へを進めると認証完了となる

今でも、WindowsXPのライセンス認証が電話認証ながら出来ることに驚き!!

SPICE Guest Tools

WindowsXPはSPICE Guest Toolsが利用は出来ますが、いくつか利用できないものもあります。

  1. こちらのサイトにゆき、SPICE Guest Tools and QEMU Drivers (Windows)のDownloadをクリックして、ISOファイルを手に入れる
  2. UTM上のWindows11の仮想マシンのメイン画面下にある「CD/DVD」をクリックして、Browse。1.のISOファイルを読み込ませる
  3. 仮想マシン内でISOファイルが読み込まれるので、中に入ってるspice-guest-tools-x.xxx.exeを実行してインストール
  4. シャットダウンし再度、起動するとドライバが適用されて十分なスピードで動くようになります。

途中色々と聞かれますが基本的には続行をクリックして進めるだけ。但し、クリップボード共有やホストとのフォルダ共有が機能しません。フォルダ共有は別の手段で解決できるようですが、実際に2.2のファイルで試してみましたが失敗しました。

グラフィックドライバ(Red Hat QXL GPUというドライバになる)は適用は出来ますが、なぜか解像度が640x480の4ビットカラーになってしまうので、認識済みのVGAのままで十分。32bitカラーでフル解像度が利用可能です。こちらの最新のGuest Toolsの場合、問題なく適用できます。解像度の変更はウィンドウサイズではなく、画面のプロパティのディスプレイから変更をする必要があります。

また、ネットワークドライバもここで導入されるので、インターネット接続は可能です。サウンドが認識されていない(デフォルトではsb16)ので、設定からAC97に変更させています。

欠点はシャットダウンが妙に遅い。フリーズしてるのかと思うほど。ゲームもなんとか動かせます。

図:いくつか認識されていないものの問題なく使える

図:画面解像度の変更はこちらから

SP3のインストール

WindowsXP SP1aであれば、SP2を飛ばしてSP3をインストールしてアップデートする事が可能です。肝心のSP3ですがまだ、Microsoft Catalogに残っているので、今のうちに入手しておきましょう。また、Internet Archiveにも残っているので、SP2, SP3は手元に入手してキープしておくと良いでしょう。

また有志による非公式のSP4なるものが出回っていますが、Unofficialであるため基本自己責任となります。

図:無事にSP3までアップデート出来た

ファイル共有

USBデバイスおよびSambaによるファイル共有は可能であるので、ファイルの受け渡しに関してはこの2つを利用して渡せば良いでしょう。ホストとのフォルダ共有機能が動作しない。

直接的なやり取りが出来ないものの、他の環境からすれば十分な受け渡しは可能であるため、苦労することはないでしょう。

図:NASには問題なく接続可能

ネット接続

ネット接続が可能になっても、標準で搭載されてるウェブブラウザは使い物になりません。WindowsXPで利用できるブラウザでまともに利用できる唯一のものとしてはFirefox 52.9.0 ESRのみ。但し、SP3以上にしておく必要があるので、SP1aのままだとインストールが出来ません。

無事にインストールできれば、2022年現在でも何とかウェブブラウジング出来る貴重なアプリです。

図:一通りサービスはまだ利用可能

設定変更

シングルコアで動かしていたので、もっさりしていたものを、CPUを2コア Force Multicoreにチェックを入れ、RAMを2048MBに指定し直して再起動してみました。一応マルチコア認識(SP3から最適化されたらしい)され、若干改善したかなという感じ。また、System項目のJIT Cacheの値を512MB追加で設定すると、モッサリ感が大分解消されます。

もともとエミュレーションで動かしてるものなので、オーバーヘッドがある為、x86な昔のゲームを動かすにはどうかなという具合です。また、ネットワークがSharedになってるので、これをBridgeに直しておくのも重要です。

図:4コアでも動いた

Windows11 ARM版

すでにParallels17等では以前から話題になっていた、ARM版のWindows11ですが、UTMを利用してM1 Macにインストールし利用することが可能です。すでにディスクイメージも配布されているので(VHDX形式)、これを利用して構築することが可能です。ただしデフォルトが英語版なので、いくつかインストール後に修正が必要です。2022年5月14日時点でBuild 22589がダウンロード可能です。

以下は、M1 Macにインストールする手順です。

事前準備

  1. 予め前述のVHDXファイルをダウンロードしておく
  2. UTMを起動して、Create a New Virtual Machineをクリックする
  3. 今回はVirtualizeを選択する
  4. 次の画面では、Windowsを選択します
  5. Import VHDX Imageにチェックを入れて、Browse Boot VHDX Imageにて、1.のVHDXファイルを指定する
  6. UEFI Bootはチェックを入れておく
  7. 次の画面ではメモリとCPU Coreの数を指定しますが、4096MBの4コアで指定しました。
  8. Storageはデフォルトの64GBで指定
  9. Shared Directoryはデスクトップを指定しました。
  10. レジストリの「AllowUpgradesWithUnsupportedTPMOrCPU」ははじめから値が1で有効になってるようです。

これで準備OK。VHDXはqcow2ファイルに変換されて取り込まれるので、捨てても構いません。いざ、準備が終わったらブートしてみます。英語版のセットアップ画面が起動するはずです。

図:インポート設定画面

インストール作業

Build 22579までは、普通にセットアップ出来たのですが、Build 22598では、ネット接続要求がスキップ出来ない問題が発動してしまったので、以下の手順でセットアップを続行する必要があります。デフォルトのネットワークカードのドライバが無いので、ネットワークに接続せずにローカルアカウントを作成して進める必要があります。

  1. 普通にまずはセットアップを続けます。
  2. Country RegionではJapaneseを選択
  3. Keyboard Layout Input Methodでは、Japaneseを選択
  4. Want to add Second Keyboard Layoutの画面で、右下のキーボードアイコンをクリックして、MSIMEを選ぶ
  5. キーボードレイアウトでは、Add Layoutを選び、Japaneseを選んだ後に、MSIMEを選択。この画面ではSKIPを選択
  6. ここでネット接続が出来ないで先に進めないので、Shift+F10キーを押す
  7. OOBE\BYPASSNRO」を入力して、Enterを押して回避が可能なのだけれど、バックスラッシュの入力は、macOS日本語キーレイアウトの場合は「む」のキーを押すと入力出来る(5.でMSIMEを選んでいなとこれが出来ない)
  8. リセットが掛かって、5.までをもう一度繰り返す
  9. 今度は、6.の場面でI don’t have internetと出るのでこれをクリック
  10. Continue with limited setupをクリックする
  11. ローカルアカウントでのセットアップが始まるので後は、指示に従って進める

また、手順7.ではローカルアカウントで進める為にOOBE\BYPASSNROを利用していますが、Microsoft Accountで良いのであれば、以下のコマンドの実行で進める事も可能です。但し、セットアップが終わったら、「bcdedit /debug off」にてオフにして、SPICE Guest Toolsのドライバでネットワーク接続出来るようにしましょう。

図:MSIMEの選択が重要です

図:MSIMEにしておかないと先に進めない

図:ネットが無いと先に進めないので裏技を使う

インストール後の修正

インストール後起動すると、英語のUIに英語のキーボード(101USキーボードになってる)ので、これを修正します。

  1. 設定アプリを起動する
  2. 左サイドのTime & Languageをクリックし、右パネルのLanguage & Regionを開く
  3. add languageで日本語を追加し、英語については削除してしまう。ダウンロードが始まる。
  4. Window Display Languageが日本語に変わる。
  5. 一旦シャットダウンして、再起動すると日本語のインターフェースになる
  6. 再度、設定アプリを開き、左サイドバーの時刻と言語を開きます。
  7. 言語と地域をクリックする
  8. 同じ設定パネルの下にある「管理用の言語の設定」を開く
  9. システムロケールの変更をクリックし、日本語を指定します。(再起動はしない)
  10. 同じ言語と地域の設定にて、優先する言語の下に日本語があり、「…」をクリックし、言語のオプションをクリック
  11. キーボードの項目のレイアウト変更をクリック
  12. ハードウェアキーボードのレイアウト変更にて、日本語106/109キーボードを選択
  13. シャットダウンして、再度起動する。
  14. 設定アプリを開き、検索窓から「ime」と入れて、「日本語IME設定」を開きます

これで、日本語UIとキーボードレイアウトになり、MSIMEも使えます。ただ、一部が日本語になっていない箇所も無いわけじゃないですが、実用上困りません。

図:設定関係も日本語表示になった

図:ここも日本語にしておく必要がある

図:キーボードレイアウト変更

日本語入力キーをカスタマイズ

デフォルトでは、JIS配列ならば「英数キー」が日本語入力キーのON/OFFになるのですが、UTMではこれは使えません。また、日本語IMEの設定からCtrl+Spaceを日本語オンオフにすることは可能ですが、macOS側のキーとバッティングしてしまいます。そこで使うのが「秀Caps」というツールです。

  1. 秀Capsをインストールし、再起動する
  2. 秀Capsをタスクバーより、設定を起動する
  3. 日本語キーにて、「無変換キーで漢字ON、英数キー2回で漢字OFF」をチェックする
  4. 左Altを漢字にする(左Optionキーがソレになります)
  5. 適用ボタンを押す

これで、「左Alt」で日本語入力のオンオフが半角/全角と同じ挙動になります。

図:秀Capsの設定項目

Ctrlキーをカスタマイズ

ショートカットキーなどで良く利用するCtrlキーですが、デフォルトではcontrolキーがそれに該当しています。しかし、非常に押しにくい位置にあるキーなので、このままだとExcelなどでの操作で支障が出ます。OSXと同じく、commandキーをCtrlキーにしたい所です。これを実現するためのツールが、Keyswapです。割りと古いツールなので、起動するためには、「管理者権限」を付与して起動します。

起動したら、入れ替えたいキー設定を作成して保存をします。

  1. キー名のセルを触って、左commandキーを押します。
  2. 変換キー名は、右側のキーボードの図より、変換したいキーを押して決定します。ここでは、左Ctrlキーを割り当てました。
  3. ファイルへ保存をクリックして適当に名前を付ける
  4. 終了する

再起動すると、そのキーアサインが変更されます。これで、左commandキーでCtrlキーとなり、ゲストOS上でのショートカットキーの活用が便利になります。

※VMware自体のMacホストショートカットキーでは、Windowsキーは右コマンドキーに割り当てておくと良いです。

図:keyswapで設定中の画面

SPICE Guest Tools

Windows用のSPICE Guest Toolsを入れることで、ネットワークカード、GPUドライバ、ホストとのShared Directory機能、ウィンドウサイズの動的変更等が有効化されます。以下の手順でインストールをしておきましょう。

  1. こちらのサイトにゆき、SPICE Guest Tools and QEMU Drivers (Windows)のDownloadをクリックして、ISOファイルを手に入れる
  2. UTM上のWindows11の仮想マシンのメイン画面下にある「CD/DVD」をクリックして、Browse。1.のISOファイルを読み込ませる
  3. 仮想マシン内でISOファイルが読み込まれるので、中に入ってるspice-guest-tools-x.xxx.exeを実行してインストール
  4. ここで再起動せずにシャットダウン
  5. UTM上のWindows11の設定において、ネットワークはBridged(Advanced)に変更
  6. 同じくグラフィックに関しては、virtio-ramfb-gl(GPU Supported)に変更
  7. InputのInvert Mouse Scrollにチェックを入れる
  8. 再度、起動するとドライバが適用されて十分なスピードで動くようになります。

いちおう、Windows11 Proの正規のライセンスキーで認証することが可能になっていますが、仮想TPM等が無い状態なので、おすすめしません。仮想マシンでは、ARM、x86、x64のバイナリを実行可能です。

また、気になる点としてシャットダウンは正常に行われるのですが、再起動だとエラーが出て落ちる点があります(UTM側のバグだと思います)。

※UTMというより、M1チップの制限でNested Virtualizationに非対応なので、WSAやWSL2などは動作しません

図:無事にWindows11 ARMが起動した

図:但し、Insiderは制限有りとなる

図:3タイプのバイナリが起動可能

Shared Directoryの制限

UTMのホストとのファイル共有は、ネットワークドライブとしてマウントされるのですが、デフォルトでは50MBを超えるファイルをコピーしようとすると、「ファイルサイズが、許可された制限を超過しているため、保存できません」とエラーが出ます

このトラブルはレジストリエディタを使って修正することが可能です。

  1. レジストリエディタを起動する
  2. 以下のレジストリエントリを開く
  3. 右のパネルの中にある「FileSizeLimitInBytes」を削除する
  4. 新たに同じ名前のDWARD 64bitを追加する(32bitだと1GBなどの指定が既定値を超えてしまうため)
  5. 10進数では50MBに相当する「バイト」単位で数値が指定されています。これを1GBにするには、8590000000を指定してOKする(10進数)
  6. 再起動するとコピーできるようになる

図:結構古くからあるネットワークドライブの制限のようで

Microsoft Storeのインストール

通常のWindows11の場合、インストール直後からMicrosoft Storeが入っていますが、macOSのParallelsやUTM等の仮想環境で利用する「ARM版 Windows11」は最初からMicrosoft Storeが入っていなかったりします。

そこで、PowerShellを使った方法を試してみたものの、何もインストールされず。調べてみるとParallelsのサイトに記載がありました。以下の手順で簡単にMicrosoft StoreをARM版Windows11にインストール可能です。

  1. PowerShellを管理者権限で起動する
  2. wsreset.exe -i を実行する
  3. 結構、インストールには時間が掛かる(通知欄にその状況が出てる)
  4. 途中、Microsoft Store エクスペリエンスホストがインストールされたと出るがそのまま無視する
  5. Microsoft Storeをダウンロードしていますと出ているので、終わるまでとにかく待つ。
  6. インストールされた旨のメッセージが出たら完了

この方法でなかなかインストールがなされない場合には、PowerShellで以下のコマンドを実行するとインストールされます。

図:普通にインストール可能

図:ストアアプリもx64エミュレーションでバッチリ動く

16bitアプリは動かない

Windows11では標準で16bitアプリが動きません。しかし、Intelの場合にはwinevdm on 64-bit Windowsを使うことによって、64bit環境であったとしても、16bitのアプリを動かす事が出来ていました。

しかし、Windows11 ARMの場合は、winevdm自体が動作しないので、16bitアプリを動かそうとしてもエラーとなって動きません。よって、本来のWindows11と同じく、16bitアプリはどう頑張っても動作しません。

Windows10 32bit以前のOSの実行環境に於けるNTVDMが使える環境を使いましょう。

図:Windows9xの環境ならバッチリ動く

設定は自動で作成される

VHDXのインポートの場合、ARMでは自動で作成されました。以下のような形で作成されています。いつかは変更を加えています。

  • Architecture : ARM64(aarch64)
  • System : QEMU 6.2 ARM Virtual Machine (alias virt-6.2)(virt)
  • CPU : Default 4コア
  • QEMU : UEFI, RNG Device, User Hypervisor, Use Local Time Base Clockはすべてオン
  • Display : virtio-ramfb-gl(GPU Supported)
  • Network : Bridged, virtio-net-pci
  • Sound : Intel HD Audio Controller(ich6)(intel-hda)

ドライブ構成は

  1. NVMe : Windows11のメインのドライブ(qcow2ファイル)
  2. USB Drive : CD/DVD ISO Image
  3. EFI Variable : efi_vars.fd

ひょっとしたら、Intel Macでも同じ構成ならば、Emulatedで動作するのかもしれませんが、エミュレーションなので非常に遅いと思います。ARM上でARMのデバイスを動かす場合は、Virtualizationになるので、ここまで快適に動作するというわけです。

Mac OS X Marvericks

macOSの仮想環境も作れるというのですが、Mojaveではスピード面で全く実用に向かないという事だったので、それよりも前のMarvericks(10.9)を仮想化出来ないか?ということで作ってみることにしました。Catalinaから32bitアプリが動かなくなったmacOSですが、10.9であればリソース面や32bitアプリが動くという観点から利点があるのではないかと。

但し通常の手段では作れないのでちょっと手間が多いです。今回はオフラインインストーラからのインストールになります。

事前準備

今回のMarvericksの仮想環境を作るにはいくつかの事前準備が必要です。そこで準備したファイルを利用して構築する事になるので、ここが最も手間が掛かると言えます。

図:セットアップ用ファイルを用意する

ファイルの入手

まずはいくつかのファイルをダウンロードします。必要なものは以下の数点

  1. OVMF Binary
  2. OpenCore Image (EFI-Legacy) 
  3. Mac OS X 10.9 インストーラ

問題は現在ページでは、10.10のYosemiteか、10.7, 10.8のLionシリーズしか入手出来ないので、手元にMarvericksがない人はYosemiteで代用すると良いでしょう。これらのファイルは、デスクトップにtestというフォルダを作って入れておきます。

InstallESD.dmgの取り出し

10.9インストーラから今回利用するISOイメージを作る元になるInstallESD.dmgを取り出します。

  1. インストーラを右クリック⇒パッケージの内容を開く
  2. Contents/SharedSupportの中にInstallESD.dmgが入ってるのでこれを取り出す
  3. デスクトップにMarvericksというフォルダを作成して2.をコピーする
OVMF.binを生成する

OVMF BinaryからOVMF.binを生成します。ターミナルを起動して、以下のコマンドを実行すると生成されます。

ISOイメージを作る

InstallESD.dmgのままだと使えないので、これからISOイメージを生成します。こちらのサイトにあるコマンドを利用して、作ることになります。

仮想環境を作成する

UTMを起動してEmulatedで作成します。ちょっと特殊な構造の環境になります。以下のような設定になります。

System
  • Architecture : x86-x64
  • System : Standard PC (Q35 + ICH9, 2009)(alias of pc-q35-6.2)(q35)
  • Memory : 4096MB
  • CPU Count : 4
  • Force Multi Coreにチェックを入れておく

図:4コアでも遅い・・・

Qemu

追加オプションとして、以下の2つを追加する

Network
  • Networkmode : Shared Network
  • Emulated Network : usb-net

Bridgeだと何故か繋がらなかった

Drives

既存のドライブは全部削除して、以下の4つを順番に追加する

  • PC System Flush : OVMF.binをインポート⇒image typeをBIOSに変更
  • PC System Flush : EFI-Legacyをインポート⇒Image typeをDisk Imageに変更、InterfaceをUSBに変更
  • IDE Removable : DVD-CD-ROMとして追加⇒ISOにMarvericks.isoを指定
  • IDE : 空のディスクイメージを作成(32GBで今回作成しました)

図:OpenCoreのEFIで起動させる

インストール

これで準備が整いました。OpenCore Bootloaderを使ったインストールによって、macOSをUTM上で構築出来ます。早速電源を入れてブートしてみます。

  1. OpenCoreのブートローダが起動する
  2. Mac OS Base Systemを選択してEnterを実行
  3. completedの文字が出て色々読み込まれますが、その後インストーラが起動するまで相当時間が掛かるのでとにかく待つ
  4. インストーラがHDDを認識しないので、まずメニューからディスクユーティリティを起動して、IDE 32GBのHDDをHFS+でフォーマットする
  5. 再度インストール画面に戻って続行すると認識されるので、4.を選んで進める
  6. 完了して自動で再起動すると、セットアップの続きが始まります
  7. ネットワークの接続は失敗するのでそのままスルーする
  8. データの移行, アカウント作成画面と進んで完了するまで進める
  9. 再起動するとログイン画面が出て、デスクトップが表示される
  10. ソフトウェア・アップデートをすると、10.9.5の統合アップデートが降ってくるので入れておく。

使ってみた感想ですが、10.9であってもかなり遅く、GPUが効いていないのでとにかく遅い。また、Safariを起動するだけでクラッシュしたりと色々と問題が沢山。将来的にもっと楽にゲストとして動かせてSPICE Guest Toolsが出たら良いなと思う。

ただAFPやSambaへの接続は容易にできるので、ホストとのファイル交換は簡単なので、NAS経由で色々引っ張ってこれると思います。

キーボードは変更時にZキーと「め」のキーを押して認識させれば、JISに変更できるので、日本語キーボードを使ってる場合は変更しておきましょう。

図:無事にインストーラが起動した

図:10.9の初期画面

図:ネットとSambaに接続してみた

図:まだアプデが降ってくることに驚き

iOSでUTMを使ってみる

PC版とは異なり、iOS版のUTMはインストール方法がかなり複雑です。脱獄不要ではあるのですが、それが故にややこしい手順を踏まないとインストールが出来ないのが難点なだけでなく、iOSのスペック特にiPadの場合はiPad Air(第4世代)以降のメモリとCPUが無いとなかなか厳しいのではないかと。

今回使用するiPadは2017年の第5世代なので、2GBしかメモリが無いのでちょっと厳しい

Mac OS X on the iPad Pro (2020)
元サイトで動画を視聴: YouTube.

AltStoreをインストールする

UTMは当然、App Storeでリリースされてるわけではないのでちょっと難しいです。今回はmacOSで作業をしています。

  1. AltStoreのサイトからAltServerをダウンロードしてmacOSにインストールし、起動する
  2. 起動すると、メニューにアイコンが出てきて、クリックしたら必須ということなので、Install Mail Pluginを実行
  3. Mailアプリを起動して、環境設定⇒プラグイン管理⇒Altplugin.mailbundleを有効化する
  4. iPadとmacOSをケーブルで接続する(iPad側で信頼するをタップする)
  5. AltServerのメニューからInstall AltStore⇒自分のiPadを選び実行すると、iPad内にAltStoreがサイドロードされる
  6. iPad側設定⇒一般⇒VPNとデバイス管理を開き、デベロッパAPPに自分のメアドがあるのでタップする
  7. 信頼するをタップすると、Altstoreが起動出来るようになる

これで、UTMのアプリをサイドロードする準備が整いました。ちなみにサイドロードしたアプリは、最大7日しか使えず、AltStoreでRefreshをすると、7日延長されるという仕組みになっています。

図:AltStoreアプリを押し込む様子

図:アプリに対して信頼しないと起動出来ない

UTMをインストールする

次に、仮想環境であるUTM自体をインストールします。

  1. UTMのGithub Releaseページの中にあるAssetに、UTM.SE.ipaというファイルがあるでの、これをiPadでダウンロードする
  2. iPad内のAltStoreを起動して、MyAppを開く
  3. 左上の+ボタンをタップして、先程ダウンロードした8.のipaファイルを探し出して選ぶ
  4. 無事にインストールが完了するとMyAppsにUTM SEが登場する
  5. UTM SEがサイドロード出来た

これで、1から仮想マシンを作成しても良いですし、ギャラリーからOpen UTMにて設定を取ってきても良いのですが、スペックの低い場合は動かない事がほとんどなので、設定を見直す必要があります。

図:UTMがインストール出来た

Android x86

  1. 今回はこちらのサイトで公開されてるAndroid x86のAndroid 4.4のUTMをiPadでダウンロード
  2. ダウンロードが完了したらタップして、解凍する
  3. 解凍したAndroidのUTMをタップすると、UTM SEで開かれてインポートされる
  4. 仮想マシンを長押ししてEditで入り、2コア、512MBのメモリ設定に変更して、SAVEする
  5. 仮想マシンを起動すると、Android x86が起動する!?といいんだけれど。

マシンスペックが低すぎて、2コア512MBのメモリでは、Androidのメイン画面まで辿り着けず。macOSでテストした時は、2GBメモリと4コア指定ではなんとか動いていたので、今どきのiOSデバイスのスペックなら行けるんじゃないかなと。

図:ブート画面までは行けた・・・

図:macOS上では動くのだけれど

関連リンク

共有してみる:

M1 MacやiOSでも動く高機能な仮想環境UTMを使ってみた” に対して1件のコメントがあります。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください