Windows
KVM
QEMU

無料のWindows仮想マシンをQEMUで動かす

MicrosoftはIEやEdgeのテスト、開発環境構築用に無料で使えるWindows仮想マシンを配布しています。

Free Virtual Machines from IE8 to MS Edge - Microsoft Edge Development

Windows 10 仮想マシンをダウンロードする - Windows アプリ開発

仮想マシンソフトウェアはVMWare, Hyper-V, VirtualBox, Parallelsに対応してるのですが、


  • VMWare : 無料で使えるのはWindowsにあるPlayerのみ

  • Hyper-V : WindowsのPro, Enterprise, Education, Serverのみ

  • VirtualBox : アップデートとかで頻繁に起動しなくなるから嫌い

  • Parallels : 有料。しかも毎年お金を払わないといけないアップデートを要求してくる。

というわけでMacとLinuxをメインで使ってる僕には非常に困ったラインナップなのです。

KVM使わせろや

というわけで、Microsoft配布の仮想マシンをQEMUで動かします。


環境

x86_64のQEMUが使えるパソコンであれば何でもいいです。

仮想マシンはサイズが大きいのでしっかりしたインターネット環境と十分なディスクの空き容量も必要でしょう。

QEMUはパッケージマネージャーから普通にインストールすればいいと思います。


仮想マシンのダウンロード

Free Virtual Machines from IE8 to MS Edge - Microsoft Edge Development

Windows 10 仮想マシンをダウンロードする - Windows アプリ開発

ここらからHyper-V用の仮想マシンをダウンロードしてください。

"Microsoft Edge Development"からダウンロードできる仮想マシンはIEとEdgeの動作確認用なので、Windowsの標準ソフトウェア以外は何も入ってません。ただWindows動かしたいだけならこっちでいいでしょう。

"Windows アプリ開発"からダウンロードできる仮想マシンには最初からVisual Studioとかの開発環境がインストールされています。でも、その代わりサイズがでかいです。

この記事では"MSEdge on Win10 (x64) Stable (17.17134)"を使ってます。

ちなみに、これらの仮想マシンには使用期限があります。使用期限を過ぎると、最初から仮想マシンを構築し直す必要があります。なので、常用には向きません。あくまでテスト用として割り切って使用してください。

edge.png

ダウンロードができたらzipファイルを展開しましょう。

それで、仮想マシンといっても重要なのはWindowsが入ってるディスクイメージだけです。仮想マシンの構成ファイルとかは何とでもなります。なので、ダウンロードした中で使うのは"Virtual Hard Disks"フォルダにあるvhdxファイルだけです。

僕がダウンロードした仮想マシンでは"MSEdge - Win10.vhdx"という名前でした。

そして、QEMUではHyper-V用のディスクイメージであるvhdxをそのまま読み込むことができます。

起動するときに使うので適当な作業ディレクトリにコピーしておいてください。


UEFIファームウェアを用意

配布されてる仮想マシンは、UEFI環境上にWindowsをインストールしたものになっています。なので、UEFIで起動する必要があるのですが、実はQEMUはそのままだと仮想マシンでUEFIを使えません。

そこで、QEMU上で動くUEFIを使えるファームウェアを用意します。

幸いGithubでビルド済みのファームウェアを配布してくれている人がいたので、ありがたく使わせてもらいます。

GitHub - BlankOn/ovmf-blobs: BIOS.bin for qemu to support UEFI

必要なのはbios64.binというファイルだけなので、これを先ほどのvhdxファイルと一緒の場所にコピーしてください。


起動

あとは、ターミナルでvhdxファイルとbios64.binのあるディレクトリに移動して

qemu-system-x86_64 -bios bios64.bin -m 4096 -smp 2 -hda MSEdge\ -\ Win10.vhdx 

で起動できるはずです。

"-m"はメモリサイズ、"-smp"はコア数なので、お使いのホストマシンのスペックによって適宜変えてください。

また、KVMの使える環境ならば"-enable-kvm"を付けるといいでしょう。速くなります。

画面共有ピクチャ2018年8月16日 15.24.58 JST.png

もちろんMacでも使えますが、KVMは使えないので遅いです。

Hypervisor.frameworkは使えるのかな?

使えたら別記事にしたいと思います。

スクリーンショット 2018-08-16 15.39.54.png