KVM (Proxmox VE) で TPM 2.0 をエミュレートする環境を構築した- KVM (Proxmox VE) で TPM 2.0 をエミュレートしたVMを作り、Windows11を動かしてみた
Windows11のシステム要件
先日、Windows11がリリースされたが、その動作条件の厳しさに一部で話題になっている。
上記の Microsoft のWebサイトから一部引用すると以下の通り。
項目 | 要件 |
---|---|
CPU | 1GHz で 2コア以上 Intel なら Coffee Lake 以降 AMD なら Zen+ 以降 |
RAM | 4GB 以上 |
Storage | 64GB 以上 |
Firmware | UEFI / Secureboot 対応 |
TPM | 2.0 以降 |
CPUの世代は、KabyLake も Zen も 5年前 のものだし、Windows10も継続提供されるので、「新しいOSを使いたければ、新しいマシンを使ってください」という主張はまぁ良しとする。(なんだかんだで動くでしょうし)
ただ、TPM が必須となっている点はちょっと気になるところ。VMでTPMのエミュレーションって、可能だったかな。
VMでのTPMエミュレーション
ざっと調べてみただけでも、イマドキのハイパーバイザでは vTPM のサポートに特に問題はなさそう。
QEMU/KVM
QEMU/KVM では、swtpm というモジュールで vTPM をサポートしている。
Hyper-V
Hyper-V では、Windows Server 2016 以降で vTPM をサポートしている。
VMware vSphere
VMware vSphere では、vSphere 6.7 以降で vTPM をサポートしている。
検証
QEMU/KVM ( Proxmox VE ) でvTPM をエミュレートできる環境を構築して、Windows11 を動かしてみる。
…つもりだったのだけれども、モタモタしていたら、先日の ProxmoxVE のアップデートで vTPM が標準でサポートされてしまった。哀しみ。
手順
元々やろうとしていたこと
本来は以下のような手順で vTPM 環境を構築するつもりだった。
# swtpm socket --tpmstate dir=/var/run/tpm --tpm2 --ctrl type=unixio,path=/var/run/tpm/sock
... -bios ビルドしたUEFIファーム -chardev socket,id=tpmc,path=/var/run/tpm/sock -tpmdev emulator,id=tpm,chardev=tpmc -device tpm-tis,tpmdev=tpm ...
今やればいいこと
しかし、最近のProxmox VEのアップデートで、vTPMを追加するメニューが追加されたので、今ならここをポチーするだけで終了。ポコペン。
一応、注意点としては以下。
結果
とんだ肩透かしだったけど。まぁ、こんな感じ。