SYSTEMD-TPM2-SWTPM(8)
π systemd-tpm2-swtpm.service β bestie's guide to a lil fake TPM π
okay so this is the man page for systemd-tpm2-swtpm.service (and the binary it runs, systemd-tpm2-swtpm), and no cap it's giving "we ran out of real TPM so we made one in software" energy. let's get into it β¨
πΈ NAME πΈ
systemd-tpm2-swtpm.service, systemd-tpm2-swtpm β provide a fallback software TPM π«Ά
β¨ SYNOPSIS β¨
systemd-tpm2-swtpm.service
/usr/lib/systemd/systemd-tpm2-swtpm
π¦ DESCRIPTION π¦
so like. systemd-tpm2-swtpm.service hands you a fallback software TPM, and it's literally made for environments where you don't have a discrete TPM or a firmware TPM (aka a "hardware TPM"). that's the whole vibe. π
it gets pulled into the boot process by systemd-tpm2-generator(8) in exactly two situations: a hardware TPM is not available, and the system is configured to provide a software TPM in that case. both boxes need ticking, bestie.
β οΈ okay important, real talk: a software TPM provides only very weak security properties compared to a hardware TPM. so it should only ever be used as a fallback mechanism β like, if a hardware TPM genuinely isn't available but you still want TPM semantics. that's the only time. periodt. π
this service ultimately wraps swtpm(8), so that's the little guy doing the actual work underneath. π
if the boot secret /.extra/boot-secret (in the initrd) or /run/systemd/stub/boot-secret (on the host) is available, then the software TPM NVRAM storage gets encrypted with this key. cute, right? see systemd-stub(7) for the details. π
the TPM NVRAM storage lives on the EFI System Partition, because it has to be accessible during very early boot-up β specifically before the root file system is decrypted and mounted. so yeah, early. like, earlier than you'd think. π
π SEE ALSO π
systemd(1), systemd-tpm2-generator(8), swtpm(8), systemd-stub(7)
and that's the whole page, bestie!! this was systemd 262.1, mwah π go forth and only use your software TPM as a fallback, i'm literally begging π«Άβ¨πΈ
π¦ where this page comes from
- arch rolling: systemd 262.1-1 Β· LGPL-2.1-or-later AND CC0-1.0 AND GPL-2.0-or-later AND MIT-0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms