Arch Linux Boot

TPM NvPCR failed

$ systemctl --failed
  UNIT                             LOAD   ACTIVE SUB    DESCRIPTION
● systemd-pcrlogin@1000.service    loaded failed failed TPM NvPCR Measurement of User Record for UID 1000
● systemd-pcrlogin@956.service     loaded failed failed TPM NvPCR Measurement of User Record for UID 956
● systemd-pcrproduct.service       loaded failed failed TPM NvPCR Product ID Measurement
● systemd-tpm2-setup-early.service loaded failed failed Early TPM SRK Setup

After some research, it seems that Systemd now expects a UKI with signed PCR policies and a special "initrd" policy that is used to anchor the NvPCRs now. Doing a proper (and very complex) LUKUS2 + TPM + UKI configuration is hard and not really important for me.

Solution is to clear the broken anchors and mask the failing services to avoid those failures, and I unlock my lukus2 disk by manually typing the password anyway.

$ sudo rm -vf \
    /boot/EFI/systemd/credentials/nvpcr-anchor.*.cred \
    /efi/EFI/systemd/credentials/nvpcr-anchor.*.cred

$ sudo systemctl mask \
    systemd-tpm2-setup-early.service \
    systemd-pcrproduct.service \
    systemd-pcrlogin@1000.service \
    systemd-pcrlogin@956.service

Created symlink '/etc/systemd/system/systemd-tpm2-setup-early.service' → '/dev/null'.
Created symlink '/etc/systemd/system/systemd-pcrproduct.service' → '/dev/null'.
Created symlink '/etc/systemd/system/systemd-pcrlogin@1000.service' → '/dev/null'.
Created symlink '/etc/systemd/system/systemd-pcrlogin@956.service' → '/dev/null'.