ことの発端
第一章 ESXi導入編
ぼく「ローカルマシンにWin10のVM立ててGPUパススルーするぞ」
後輩「ESXiオヌヌメ」
ぼく「よっしゃ立てたろ」
ESXiぼく「WebGUI使いやすい〜〜〜」
Win10「お前、TPM有効になってないからWin11に上がんねーぞ」
ぼく「ま?」
MVWare社「TPM使いたいならvSphere契約しろ」
ぼく「死んだわ」
後輩「草」
第二章 KVMを試す
ぼく「よーし、KVM使うで」
Ubuntuインストールぼく「とりあえずvirt-manager起動しようっと」
Ubuntu「CPUの仮想化がうまくいかへんねん」
ぼく「なんでや!Ryzenだからか??」
ぼく「WSL2も使えへんし。。。」
ぼく「なんか面倒なんでWindowsをクリーンするか」
第三章 Proxmoxとの出会い
後輩「まだVMと格闘してんすか」
ぼく「はい」
後輩「ぞい君さぁ〜〜〜。もうProxmoxしかないですね」
ぼく「なにそれ」
後輩「WSL2起動しましたよ」
ぼく「よし入れるわ」
ゴール
- Windows11が動くVMを立てる
- GPUパススルーする
- 仮想化をONにしてWSL2も動かす
ホストマシン構成
部品 | パーツ |
---|---|
CPU | Ryzen5 3600X |
M/B | ASRock X570 |
MEM | DDR4 32GB |
SSD | m.2 SSD 1TB |
GPU1 | GeForce 1080Ti |
GPU2 | Radeon RX470 |
POW | 850W |
後輩「なんでGeforceとRadeon混ぜてんすか」
ぼく「例のグラボ(※1)の使い道を探したかったんよ」
後輩「まーた変なことしてる」
※1・・・「例のグラボ」とは、2019年頃に流通した出力ポートのないRadeonのことである
Proxmoxのインストール
インストールメディアの作成
公式サイトからisoをダウンロードし、インストールUSBを作成
Proxmoxのインストール
ぼく「メディアをさして実行したら、全自動でやってくれたぞ」
後輩「なんならブート領域まで全部よしなにしてくれるから、データ残したい時は注意っすね」
Proxmoxの起動とアクセス
ぼく「``https://:8006```でアクセス、っと」
後輩「http's'にするのを忘れると死ぬんで気をつけてくださいね」
ぼく「(既にやらかしている)・・・当たり前やろ!」
後輩「(あー、これはやらかしてるな)」
ぼく「まずはログインして、っと。」
ぼく「パスワードは入れたんだけど、User Nameって何だ?」
ぼく「いいや、適当で。root
、っと」
ぼく「入れたわ」
VMを作成する
ぼく「とりあえずWin10のVM作ったろ」
isoイメージのアップロード
データセンター > ホスト名 > local > ISOイメージと選択し、「アップロード」を押すとisoをアップロードできます。
(画像は既にアップロードされているisoイメージ)
VMの作成
画面の右上から「VMを作成」を選択
OS欄タブでは、ゲストOSの種類に「Windows」を、バージョンが「10/2016/2019」であることを確認。
システム欄では、BIOS種別をUEFIにすることを忘れずに。
EFIディスクも足す必要があるので足しておく。(デフォルトのディスク指定でOK)
これを忘れると、後から変更した時にディスクを認識しなるので今のうちにやる必要あり。
CPUにマルチコアを与える場合、ソケット数の最大を2にする必要がある。
(なんでもWindows Clientは2ソケットしか認識しないらしい)
なお、内部でWSL2などの仮想化を使いたい場合には、種別を「host」にする必要があるとのこと。
(後からの変更も可能です)
ぼく「あとは適当に指定して作成っと」
一旦インストールを完了させる
ぼく「いつも通りにインストールして・・・。よし、完了や」
ProxmoxにvTPMを導入する
ぼく「ここからが本番やな」
ぼく「こちらのサイトを参考に進めるやで〜」
Proxmox機にSSHで入る
ssh root@<IP Address>
vTPMのインストールスクリプトの実行
下記のコマンドを実行する
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/garjones/gareth.com/master/vTPM-install.sh)"
途中で、次のような内容を聞かれるのでそのままEnter
する
The package documentation directory ./doc-pak does not exist.
Should I create a default set of package docs? [y]:
次に、インストールスクリプトの調整を行う必要があるらしいので、
次の画面になるまで待つ。
*****************************************
**** Debian package creation selected ***
*****************************************
This package will be built according to these values:
0 - Maintainer: [ root@vtpm ]
1 - Summary: [ TPM Emulator
Private libraries for swtpm TPM emulators
Include files for the TPM emulator's CUSE interface for usage by clients
Tools for the TPM emulator
Tools for creating a local CA based on a pkcs11 device ]
2 - Name: [ swtpm ]
3 - Version: [ 0.7.0 ]
4 - Release: [ 1%{?dist} ]
5 - License: [ GPL ]
6 - Group: [ checkinstall ]
7 - Architecture: [ amd64 ]
8 - Source location: [ swtpm ]
9 - Alternate source location: [ ]
10 - Requires: [ trousers >= 0.3.9 bash gnutls-utils
tpm2-pkcs11 tpm2-pkcs11-tools tpm2-tools tpm2-abrmd
expect gnutls-utils trousers >= 0.3.9 ]
11 - Recommends: [ ]
12 - Suggests: [ ]
13 - Provides: [ swtpm ]
14 - Conflicts: [ ]
15 - Replaces: [ ]
Enter a number to change any of them or press ENTER to continue:
そのまま実行するとエラーになるので、設定内容を調整する
Release Versionの調整
次のコマンドを順番に実行
4
-> Enter
-> Enter
Requires の文字列調整
10
-> Enter
-> Enter
※この辺りは暫定処置なので、脳死で本番環境に持っていかないでね(原文意訳)
最後に、Enter
を押下してインストールスクリプトの実行。
インストールが終了するまで待ちます。
vTPMの有効化
ここまで進んだら/root/vtpm
が作成されているハズので、次のコマンドを実行する
※一度WindowsVMを落としておくこと!!!
cd /root/vtpm
./vTPM-launch.sh <VID>
この状態で無事VMが起動すれば作業完了です。
システム設定から「デバイスセキュリティ」をたどり、TPM2.0が有効になっていることを確認しましょう。
Windows Update完了!
ぼく「よっしゃオラ!Windows11に上がったぞい!」
PCIをパススルーする
ぼく「ここからが本番や」
PCIデバイスを追加
VM > ハードウェア > 追加 > PCIデバイス と選択
一覧からGPUを選択してアタッチ
一覧にたされている事を確認し、マシンを再起動する
ちなみに、GPUをアタッチするとそっちに取られるのかコンソールにでなくなる場合があるので注意。
(あらかじめRDPの設定をしないと詰むので注意しましょう)
ぼく「よっしゃ認識した!!!」
TPMが認識しなくなった時は
マシンをシャットダウンして、もう一度vTPM-launch
を実行すると良いみたいです。
CPUが100%に張り付いて死んだ時は
強制終了して、もう一度vTPM-launch
を実行すると良いみたいです。
さいごに
この記事のWindows11はInsider Previewで取得したPreview版のWindows11を利用しています。
また、vTPMの利用は公式でサポートされているわけでもなければ、本番リリース時に正常に動作するという保証もありません。
この記事の内容はあくまでも実験的な物であり、本番環境での実行は推奨しませんのでご注意ください。
唐突にマシンが起動しなくなっても保証ができません。というか実際かなり不安定です。
Windows11を使いたい場合には、セキュリティを無視したインストールを実施するか、Proxmox公式の声明が発表されるまでもう少し待ったほうが賢明かもしれません。