BVM(Botspot Virtual Machine)について
今までもRaspberry PiでWindowsを動かすには、色々な方法がありましたが最近になってBVM(Botspot Virtual Machine)としてQEMUを使ってWindows 11を動かすことが出来るようになりました。
このBVMを使う場合には、GitHubからクローンして6つの手順を実行するだけで非常に簡単にWindows 11をダウンロードして実行することができるようになっています。また直接QEMUを使っていることもあり、速度もかなり早く感じています。
作者は学生で、GitHubのREADMEでは「シェルスクリプトしか知らない」と書いているのですが1,800行ほどの単一のシェルスクリプトでインストールから実行までが出来るようになっています。
さらには、スクリプト内でyad(Yet Another Dialog)を使うことでGUI操作も可能になっています。

(Raspberry Pi を解像度1920×1080で表示して、Windows11を1280×720で表示)
Windows11のインストール
最初にGitHubからBVMをクローンします。
$ git clone https://github.com/Botspot/bvm.git
次にクローンしたリポジトリーにあるbvm
スクリプトを実行してWindows11用のVM環境を設定します。
$ cd bvm
$ ./bvm new-vm ~/win11
ここでは、ホームディレクトリーにwin11
という名前のディレクトリーを作成しています。
この時点で、win11
ディレクトリーにコピーされている設定ファイルbvm-config
を編集します。また、~/.local/bin
ディレクトリーにはクローンしたリポジトリーにあるbvm
スクリプトへのシンボリックリンクが作成されていますから、次回ログイン以降では単にbvm
とタイプするだけでスクリプトを実行出来るようになっています。
bvm-config
では、次のような内容を編集しておきます。
vm_username
=”Win11ARM”vm_password
=”win11arm”download_language
=”Japanese”debloat
=truedisksize
=40
設定ファイルのコメントにあるように、これらの項目はインストール前に編集しておく必要があります。最初にWindows11で使用するユーザー名とパスワード、また言語環境としてオリジナルは英語になっていますが日本語にする場合には上記のように”Japanese”とします。既定値では、debloat
がtrue
になっていてMicrosoft bloatware、ads、Windows Defenderなどが初期起動時に削除される設定となっていますから、これらを残したい場合にはfalse
にしておきます。また、Windows11用のディスクサイズは40GBが既定値になっていますから、必要に応じて編集しておきます。
なお、言語については、設定可能なリストを表示することが出来ます。
$ bvm list-languages
この時点でGUIを使用することが出来ます。
$ bvm gui

GUIで操作する場合には、設定ファイルの編集までが終わっていますから3のダウンロードから順に実行していきます。この画面にもあるように、仮想イメージであるqcow2
を拡張したり、USBパススルーの設定が出来るようになっています。
ここではCLIとして次にダウンロードを実行しますが、各処理が終わった時点で次に実行する内容が表示されていますから非常に便利です。
$ bvm download ~/win11
暫くしてダウンロードが完了したら、インストールの準備を実行します。
$ bvm prepare ~/win11
これでWindows11をインストール出来るようになりました。もしssh
などで実行している場合にも、Windows11をインストールする際にはデスクトップが必要になりますからディスプレイ環境変数を設定しておく必要があります。
$ export DISPLAY=:0.0
もちろん、Raspberry Piのデスクトップを使用している場合には、この必要がありません。
$ bvm firstboot ~/win11
この場合には、通常の日本語Windows11のインストールと同様の画面が表示されて設定していきます。


すべてのインストールが終了すると、自動的にシャットダウンします。
Windows11の実行
無事にWindows11のインストールが終了したら、実行出来るようになります。BVMからの起動方法としてもいくつかあるのですが、ここでは推奨されているboot-nodisplay
で起動します。
$ bvm boot-nodisplay ~/win11
この状態では、画面がありませんからもう一つの端末画面からbvm
を実行してRDPで接続します。
$ bvm connect ~/win11
これでRDPの準備が整ったらWindows11に自動的にログインしてWindows11のデスクトップを使用できるようになります。この場合には、画面をマウスでドラッグしてリサイズすることも出来るようになっています。
あるいは、wlfreerdp
コマンドで画面サイズなどを指定することも出来ます。例えば、ローカルホストに1280×720で接続する場合には、次のようになります。
$ wlfreerdp /v:127.0.0.1 /size:1280x720
Windows Updateの実行と注意
Windows11を起動した直後には、恐らくWindows Updateを実行するかと思われます。ここで、更新が一旦終了した後にWindows11を再起動して更新が継続される場合があります。このような場合には、「電源を切らないで下さい」と表示されています。
BVMを使用している場合に、Windows11をシャットダウンしてしまうと電源を切った状態となって、更新が失敗して起動できなくなってしまう可能性があります。そのため「シャットダウン」ではなく、「再起動」を実行する必要がある点には注意が必要です。
リモートからの接続
BVMの環境は、ある意味クラウド上でWindows11を実行しているようなものと考えることが出来ます。そこで、セキュリティに注意した上であれば、リモート上の他のコンピューターからRDPクライアントで接続してWindows11を使用することも出来ます。
他のパソコンやMac、iPad、iPhoneなどからも接続して使用することが出来るようになります。
この場合には、bvm-config
のコメントに書かれているように接続用のネットワークアドレスを変更してから起動します。作者がコメントに書いているように、この設定を変更した場合の危険性を十分に考慮した上で実行する必要があります。
メモリー使用量
通常は、Raspberry Pi 5の8GBか16GBのモデルを使っているのですが、8GBでは6GB、16GBでは14GBがWindows11用に割り当てられています。
そこで、例えば16GBモデルでWindows11に8GBのメモリーを割り当てる場合には、bvm-config
を編集しておきます。
#vm_mem=4
vm_mem=8
既定値では、vm_mem=4
という行がコメントアウトされているのですが、vm_mem=8
の行を追加してから起動することでWindows11用のメモリーを8GBに設定することが出来ます。
手元ではRaspberry Pi 5の8GBと16GBのモデルでしか動かしていないのですが、メモリーを必要とする場合にはBVM
のREADMEにも記載されているようにZRAM
の使用を検討した方が良いかも知れません。
まとめ
最近に公開されたばかりのBVM
で、この3月4日にベータ版で無くなったばかりで精力的に開発が続けられている状態ですが、Raspberry Pi上で非常に簡単にWindows11を実行出来るようになっている素晴らしいもので今後の進展が楽しみです。
また背景としては、Raspberry Pi 5を使えるようになって、パフォーマンスが向上したこととM.2 SSDを使用できるようになったことが大きいと思われます。