czwartek, 2 kwietnia 2026

QEMU/KVM: Instalacja Windowsa bez TPM

Cześć!

Ostatnio "walczyłem" z emulacją TPM dla VM'ek qemu/kvm. Teraz pokażę 2 sposoby, jak zainstalować Windowsa bez emulacji TPMa.

Pierwszym z nich jest edycja rejestru w "locie", tzn w trakcie instalacji systemu. Na pierwszym ekranie korzystamy ze skrótu:
Shift + F10
W ten sposób uruchomimy cmd.exe (wiersz poleceń). Wpisujemy:
regedit
Przechodzimy do:
HKEY_LOCAL_MACHINE\SYSTEM\Setup
Tworzymy nowy klucz o następującej nazwie:
LabConfig
I tworzymy nowe wpisy DWORD 32.
BypassTPMCheck
BypassSecureBootCheck
BypassRAMCheck
Każdy kolejny wpis musi mieć wartość 1. I to wszystko.

Drugim sposobem jest edycja obrazu iso. Najpierw dociągamy (w Debianie) następujące paczki:
apt install wimtools chntpw xorriso
Obraz iso teoretycznie możemy zamontować z opcją loop, ale domyślnie zamontuje się w trybie tylko do odczytu. Ja, zamiast montowania, traktuję iso po prostu jak archiwum i rozpakowuję jakimkolwiek archiwerem (np 7zip).
Tworzymy dwa foldery:
mkdir obraz wim
Do folderu obraz należy wypakować iso. Do katalogu wim montujemy boot.wim:
wimlib-imagex mountrw obraz/sources/boot.wim 2 wim
"2" oznacza Microsoft Windows Setup. Zapraszam do manuala wimlib-imagex.
Następnie wykonujemy polecenie:
chntpw -e /dev/shm/win11vm.wim/Windows/System32/config/SYSTEM
Teraz kolejno wpisujemy poniższe polecenia (każde kolejne zatwierdzamy enterem):
cd Setup
nk LabConfig
cd LabConfig
nv 4 BypassTPMCheck
nv 4 BypassSecureBootCheck
nv 4 BypassRAMCheck
ed BypassTPMCheck
1
ed BypassSecureBootCheck
1
ed BypassRAMCheck
1
q
y
Zapisujemy zmiany:
wimlib-imagex unmount wim --commit
W celu utworzeniu obrazu wykonujemy:
xorriso \
 -as mkisofs \
 -iso-level 3 \
 -o obraz.bez.tpm.iso \
 -full-iso9660-filenames \
 -volid "obraz.bez.tpm" \
 -eltorito-boot boot/etfsboot.com \
 -no-emul-boot \
 -boot-load-size 8 \
 -boot-info-table \
 -eltorito-alt-boot \
 -e efi/microsoft/boot/efisys.bin \
 -no-emul-boot \
 -isohybrid-gpt-basdat obraz
I to wszystko.
Windows Server 2025 na dzień 2 kwietnia 2026 nie wymaga TPMa do działania (o ile nie potrzebujemy szyfrowania itd).