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 をサポートしている。
https://docs.vmware.com/jp/VMware-vSphere/7.0/com.vmware.vsphere.vm_admin.doc/GUID-4DBF65A4-4BA0-4667-9725-AE9F047DE00A.htmldocs.vmware.com
検証
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を追加するメニューが追加されたので、今ならここをポチーするだけで終了。

一応、注意点としては以下。
結果


とんだ肩透かしだったけど。まぁ、こんな感じ。