即使電腦硬體不支援TPM2.0,也可以用模擬的跑需要TPM2.0的作業系統。
例如我的CPU是不支援TPM 2.0的i5-7400,但想在Linux系統裝Windows 11虛擬機,只要透過模擬TPM和自簽Secure Boot後,不用改登錄檔繞過也能正常安裝。
1. 安裝QEMU/KVM和TPM模擬套件
啟用KVM,安裝Libvirt、Virt Manager、QEMU、swtpm、ovmf。
swtpm是軟體模擬TPM的套件。OVMF則是給QEMU虛擬機使用的UEFI韌體,支援Secure Boot(安全開機)。
2 自簽Secure Boot金鑰
(此步驟非必須)
Secure Boot非必須,Windows 11只要BIOS有Secure Boot但不用開啟也能安裝。
參照Stack Exchange的作法,你得自簽一個Secure Boot金鑰給QEMU的UEFI使用。
- 生成platform key
|
|
- 下載Microsoft Corporation KEK CA 2011和Microsoft Windows Production CA 2011金鑰
|
|
- 製作含有金鑰的映像檔
|
|
3.安裝Windows 11虛擬機
有了Secure Boot和TPM,Windows 11虛擬機過程參考這篇:Linux安裝Windows 11虛擬機 (QEMU/KVM)
不過在開機進入Windows安裝程式前,需先啟用TPM 2.0和Secure Boot:
點選虛擬機的硬體列表,編輯硬體 → 新增TPM 2.0的模擬硬體
接著點選新增儲存→將含有Secure Boot金鑰的
keys.img
掛載。將虛擬機開機,滑鼠點一下讓QEMU吃到主機的滑鼠。按Esc進入BIOS,用鍵盤移動,進入Device Manager → Secure Boot Configuration
將其設定為Custom Mode
之後會多出管理keys的選項,進入後用鍵盤選取PK
選取keys.img映像檔的金鑰。
確認匯入。以此類推將KEK和DB的金鑰也跟著匯入。
Secure Boot會顯示
Enabled
,記得還要勾選Attempt Secure Boot
。
退出BIOS。這樣開機進入Windows 11安裝程式後,Windows 11就不會顯示電腦不支援了。
虛擬機開機後搜尋「系統資訊」,可以看到Secure Boot正常啟用。
按Windows + R,啟動tmp.msc
亦能見到TPM 2.0正常載入。
參考資料
How to install a windows guest in qemu/kvm with secure boot enabled