- Proxmox Virtual Environment 8.3.0
- virtio-win-0.1.266
- Windows 11 Pro 24H2
気軽にProxmox Virtual Environmentに手を出したものの、Windows 11のインストールに大変難儀したので要点を掻い摘んで記録しておくものである。インストールにあたっては公式サイトが公開しているWindows 11をインストールする際のベストプラクティスに倣ったが、一部、従っていない。
仮想マシンの作成
まずは安定版のWindows VirtIOドライバを入手し、Proxmoxのストレージ上にアップロードしておく。
そうしたら仮想マシンの作成をはじめる。「OS」の項目ではゲストOSのバージョンは11/2022/2025
を選択する。そしてVirtIOドライバ用のドライブを追加して、予め準備しておいたWindows VirtIOドライバのISOをセットする。
「システム」の項目ではSCSIコントローラにVirtIO SCSI
選択し、「Qemuエージェント」にチェックを入れておく。
「ディスク」の項目では「バス/デバイス」をSCSI
にする。また、「キャッシュ」はWrite back
を選択する。「中止」にはチェックを入れておく。何が中止なのか判然としないけれども、未使用になったストレージ領域を再使用するのに良さそうな風情であった。英語表記ではDiscardとなっていたから「廃棄」と思えばしっくりくる。
あとディスクサイズはデフォルトで32GBであるが、此れはWindows11のシステム要件を満たさずインストールできない。システムドライブは52GB以上用意しろと言うのでおとなしく従うほかない。なお、素直に52GBきっかりのディスクでインストールに臨むと酷い目に遭うから53GB以上にするのが宜しい。
「ネットワーク」の項目ではモデルをVirtIO(準仮想化)
にする。これで仮想マシンの作成は終いである。
Windows 11のインストール
キーボードの種類がデフォルトで英語キーボードになっていたので日本語キーボードに変更する。
セットアップを進めてゆくと「Windows11をインストールする場所の選択」に行き当たる。ディスクがまったく認識されない。適切なドライバが無いためである。ここで「Load Driver」を選択してドライバをインストールする。
「参照」ボタンをクリックして、Windows VirtIOドライバがマウントされているドライブを選択し、vioscsi\w11\amd64を選択して「OK」をクリックするとRed Hat VirtIO SCSI pass-through controller
が表示される。此れを選択して「インストール」をクリックする。
これで仮想マシンのハードディスクが認識されるようになる。ベストプラクティスに記載の手引ではここで更にRedhat VirtIO Ethernet Adapter
とVirtIO Balloon Driver
も併せてインストールする手筈となっているが、OSインストール後にも導入できそうな気配であるからスキップした。あとは引き続きセットアップを実行して、とうとうWindows 11のインストールが完了する。
Qemu Geust Agent等のインストール
Windows 11のインストールが完了したら続いて以下の3つを導入する。
- 不足しているドライバとサービス
- Qemu Guest Agent
- VirtIO-win guest tools
不足しているドライバとサービス
Windows VirtIOドライバのISOがマウントされているドライブを開き、virtio-win-gt-x64.msi
を実行すれば宜しい。この際、OSインストール時にスキップしたドライバや、Qemu Guest Agentに必要なPCIシンプル通信コントローラー
のドライバも含め、不足しているドライバやサービスが一度にインストールされる。大変らくちんである。なお、virtio-win-0.1.173-2以降でないとこの恩恵には与れないと言う事であった。
また、仮想マシンのサマリーにある「メモリ使用状況」もインストール前はぜんぜん嘘っぱちの情報であったけれども、インストールが完了するやいなや正しく表示されるようになった。
Qemu Guest Agent / VirtIO-win guest tools
Qemu Guest Agentは
- ACPIコマンドやWindowsのポリシーを当てにすることなくゲストOSを適切にシャットダウン
- Proxmoxでバックアップやスナップショットを作成する際に、ゲストOSのファイルシステムを一時中断し一貫性を向上
- スナップショット後などで、ゲストOSが一時停止から再開する再にハイパーバイザと直ちに時刻同期
といった目的に使われるというようなことであった。単体でインストールするならWindows VirtIOドライバのISOがマウントされているドライブのguest-agentフォルダにあるqemu-ga-x86_64.msi
を実行すれば宜しい。然し乍ら、コンソール接続の際にSPICEを試してみたいのでSPICE Agentも併せて導入したいところである。
Qemu Guest AgentもSPICE Agentも一息にインストールする場合はvirtio-win-guest-tools.exe
を実行する。インストール後にOSの再起動をしたら完了である。
Qemu Geust Agentはサービスとして登録されているようで、PowerShellから起動状態を確認するにはGet-Service QEMU-GA
を実行する。RunningとなっていればQemu Guest Agentが起動している。
PS C:\Users\guro> Get-Service QEMU-GA
Status Name DisplayName
------ ---- -----------
Running QEMU-GA QEMU Guest Agent
また、ProxmoxのUnixソケット/var/run/qemu-server/[vmid].qga
を介してQemu Guest Agentと通信するということであった。[vmid]は仮想マシンのIDである。疎通確認をするにはqm agent [vmid] ping
を実行する。
# qm agent [vmid] ping
これでようやっとインストールが完了した。時折、仮想マシンが起動しないなどの不審な点はあるものの概ね快適である。