Limine + LUKS2 + TPM2 Auto-Unlock Guide (CachyOS/Arch Linux) This article provides a step-by-step guide for configuring automatic LUKS2 root partition decryption using a TPM2 chip on Arch Linux or CachyOS systems using the Limine bootloader and dracut. The process involves installing necessary packages, configuring dracut modules and crypttab, switching kernel parameters from mkinitcpio to dracut syntax, and then enrolling a TPM2 key bound to PCRs 0 and 7 after verifying that password-based boot still works. The guide emphasizes verifying each configuration step and warns against proceeding with TPM enrollment if the system does not boot correctly with a password first. Working configuration for: - Limine bootloader - LUKS2 encrypted root partition - btrfs with Snapper snapshots - dracut required for btrfs snapshot boot - systemd-based initramfs - Secure Boot enabled - TPM2 auto-unlock using PCR 0+7 Verify your current setup: Verify LUKS2 not LUKS1 : sudo cryptsetup luksDump /dev/nvme1n1p2 | grep Version Expected output: Version: 2 Verify btrfs: df -Th / Expected output look for "btrfs" : Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/luks-3d2966af-234b-424e-a81d-570f9d2299ad btrfs 1.9T 606G 1.3T 33% / Verify snapper is configured: snapper list-configs Expected output: Config │ Subvolume ───────┼────────── root │ / Verify TPM2 is available: systemd-cryptenroll --tpm2-device=list Expected output: PATH DEVICE DRIVER /dev/tpmrm0 MSFT0101:00 tpm crb Install from official repos sudo pacman -S dracut tpm2-tss tpm2-tools Install from AUR paru -S limine-dracut-support sudo pacman -R limine-mkinitcpio-hook Note: limine-dracut-support and limine-mkinitcpio-hook conflict and cannot coexist. Create /etc/dracut.conf.d/tpm.conf : sudo nano /etc/dracut.conf.d/tpm.conf Add this line: add dracutmodules+=" tpm2-tss " Create /etc/dracut.conf.d/cryptsetup.conf : sudo nano /etc/dracut.conf.d/cryptsetup.conf Add this line fixes missing TPM2 token library : install items+=" /usr/lib/cryptsetup/libcryptsetup-token-systemd-tpm2.so " Verify the files: cat /etc/dracut.conf.d/tpm.conf cat /etc/dracut.conf.d/cryptsetup.conf Expected output: add dracutmodules+=" tpm2-tss " install items+=" /usr/lib/cryptsetup/libcryptsetup-token-systemd-tpm2.so " Edit /etc/crypttab : sudo nano /etc/crypttab Change from: luks-