<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Arch-Linux on DevOps OPf</title><link>https://buck.zone/tags/arch-linux/</link><description>Recent content in Arch-Linux on DevOps OPf</description><generator>Hugo -- gohugo.io</generator><language>de</language><copyright>Daniel 'Tealk' Buck</copyright><lastBuildDate>Tue, 05 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://buck.zone/tags/arch-linux/index.xml" rel="self" type="application/rss+xml"/><item><title>TPM2 Autodecrypt auf Arch Linux mit UKI und Secure Boot</title><link>https://buck.zone/p/arch-tpm2-autodecrypt/</link><pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate><guid>https://buck.zone/p/arch-tpm2-autodecrypt/</guid><description>&lt;h2 id="voraussetzungen"&gt;Voraussetzungen
&lt;/h2&gt;&lt;p&gt;Bevor wir starten, müssen folgende Bedingungen erfüllt sein:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Anforderung&lt;/th&gt;
&lt;th&gt;Prüfbefehl&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;LUKS2&lt;/strong&gt; (nicht LUKS1)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;cryptsetup luksDump /dev/nvme1n1p2 | grep &amp;quot;Version:&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;TPM2-Chip vorhanden&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;systemd-cryptenroll --tpm2-device=list&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Secure Boot aktiv&lt;/strong&gt; (User Mode)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;bootctl status | grep &amp;quot;Secure Boot&amp;quot;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;systemd-boot als Bootloader&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;bootctl status&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;UKI-basierter Boot&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ls /boot/EFI/Linux/*.efi&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;⚠️ &lt;strong&gt;Wichtig:&lt;/strong&gt; Diese Anleitung gilt speziell für Systeme, die &lt;strong&gt;Unified Kernel Images (UKI)&lt;/strong&gt; verwenden – also &lt;code&gt;.efi&lt;/code&gt;-Dateien unter &lt;code&gt;/boot/EFI/Linux/&lt;/code&gt; statt klassischer Loader-Entries unter &lt;code&gt;/boot/loader/entries/&lt;/code&gt;. Bei klassischen Setups mit Loader-Entries weicht das Vorgehen ab.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="hintergrund-warum-uki--sd-encrypt"&gt;Hintergrund: Warum UKI + sd-encrypt?
&lt;/h2&gt;&lt;p&gt;Ein &lt;strong&gt;Unified Kernel Image&lt;/strong&gt; bündelt Kernel, Initramfs, Microcode und Kernel-Cmdline in einer einzigen signierten &lt;code&gt;.efi&lt;/code&gt;-Datei. Zusammen mit Secure Boot entsteht so eine vollständige Vertrauenskette: Die Firmware prüft die Signatur des UKI, bevor der Kernel überhaupt startet.&lt;/p&gt;
&lt;p&gt;Der TPM2-Chip nutzt sogenannte &lt;strong&gt;PCR-Register&lt;/strong&gt; (Platform Configuration Registers), um den Systemzustand zu messen. Durch Bindung des LUKS-Keys an PCR 0 (Firmware-Integrität) und PCR 7 (Secure Boot State) wird der Schlüssel nur freigegeben, wenn das System im erwarteten Zustand bootet – also mit aktivem Secure Boot und unveränderter Firmware.&lt;/p&gt;
&lt;p&gt;Der klassische &lt;code&gt;encrypt&lt;/code&gt;-Hook in mkinitcpio unterstützt TPM2 &lt;strong&gt;nicht&lt;/strong&gt;. Dafür ist der &lt;code&gt;sd-encrypt&lt;/code&gt;-Hook nötig, der auf &lt;code&gt;systemd-cryptsetup&lt;/code&gt; basiert und &lt;code&gt;/etc/crypttab&lt;/code&gt; für seine Konfiguration nutzt.&lt;/p&gt;
&lt;h2 id="schritt-1-tpm2-key-enrollen"&gt;Schritt 1: TPM2-Key enrollen
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;systemd-cryptenroll&lt;/code&gt; schreibt einen TPM2-gebundenen Key direkt in den LUKS2-Header. Das bestehende Passwort bleibt als Fallback &lt;strong&gt;immer erhalten&lt;/strong&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo systemd-cryptenroll --tpm2-device&lt;span class="o"&gt;=&lt;/span&gt;auto --tpm2-pcrs&lt;span class="o"&gt;=&lt;/span&gt;0+7 /dev/nvme1n1p2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Enrollment prüfen:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo systemd-cryptenroll /dev/nvme1n1p2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Erwartete Ausgabe:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;SLOT TYPE
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 0 password
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 2 tpm2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="schritt-2-etccrypttab-befüllen"&gt;Schritt 2: &lt;code&gt;/etc/crypttab&lt;/code&gt; befüllen
&lt;/h2&gt;&lt;p&gt;Dies ist der &lt;strong&gt;häufigste Fehler&lt;/strong&gt; bei gescheiterten Setups: Der &lt;code&gt;sd-encrypt&lt;/code&gt;-Hook liest zwingend aus &lt;code&gt;/etc/crypttab&lt;/code&gt; – ist diese Datei leer, findet er die LUKS-Partition nicht und der Boot schlägt fehl.&lt;/p&gt;
&lt;p&gt;Zuerst die UUID der LUKS-Partition ermitteln:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo blkid -s UUID -o value /dev/nvme1n1p2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Dann in &lt;code&gt;/etc/crypttab&lt;/code&gt; eintragen:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo nano /etc/crypttab
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# &amp;lt;name&amp;gt; &amp;lt;device&amp;gt; &amp;lt;password&amp;gt; &amp;lt;options&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;root UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx - tpm2-device=auto
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;⚠️ Den &lt;code&gt;name&lt;/code&gt; (hier &lt;code&gt;root&lt;/code&gt;) genau so wählen, wie die LUKS-Partition aktuell gemappt ist – prüfbar mit &lt;code&gt;lsblk&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="schritt-3-kernel-cmdline-bereinigen"&gt;Schritt 3: Kernel-Cmdline bereinigen
&lt;/h2&gt;&lt;p&gt;Die Kernel-Parameter für UKIs werden aus &lt;code&gt;/etc/kernel/cmdline&lt;/code&gt; eingebettet. Der &lt;code&gt;cryptdevice=&lt;/code&gt;-Parameter gehört zum alten &lt;code&gt;encrypt&lt;/code&gt;-Hook und muss entfernt werden – &lt;code&gt;sd-encrypt&lt;/code&gt; kennt ihn nicht.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo nano /etc/kernel/cmdline
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Vorher:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cryptdevice=PARTUUID=xxxx:root root=/dev/mapper/root rootflags=subvol=@ rw rootfstype=btrfs
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Nachher:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;root=/dev/mapper/root rootflags=subvol=@ rw rootfstype=btrfs
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;⚠️ Alles muss in &lt;strong&gt;einer einzigen Zeile&lt;/strong&gt; stehen, kein abschließender Zeilenumbruch.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="schritt-4-mkinitcpio-hooks-anpassen"&gt;Schritt 4: mkinitcpio Hooks anpassen
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo nano /etc/mkinitcpio.conf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Vorher:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;HOOKS=(base udev autodetect microcode modconf kms keyboard keymap consolefont block encrypt filesystems fsck)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Nachher:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;HOOKS=(base systemd autodetect microcode modconf kms keyboard sd-vconsole block sd-encrypt filesystems fsck)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Die Änderungen im Überblick:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Alt&lt;/th&gt;
&lt;th&gt;Neu&lt;/th&gt;
&lt;th&gt;Grund&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;udev&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;systemd&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Basis für alle &lt;code&gt;sd-*&lt;/code&gt;-Hooks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;keymap consolefont&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sd-vconsole&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;systemd-äquivalent, liest aus &lt;code&gt;/etc/vconsole.conf&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;encrypt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sd-encrypt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;TPM2-Unterstützung via &lt;code&gt;systemd-cryptsetup&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="schritt-5-nur-das-haupt-uki-neu-bauen"&gt;Schritt 5: Nur das Haupt-UKI neu bauen
&lt;/h2&gt;&lt;p&gt;Wenn ein LTS-Kernel installiert ist, empfiehlt es sich, &lt;strong&gt;nur das Haupt-UKI&lt;/strong&gt; neu zu bauen und das LTS-UKI als Fallback zu behalten. So kann man bei Problemen mit dem LTS-Kernel und Passwort booten.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo mkinitcpio -p linux
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="schritt-6-uki-mit-sbctl-signieren"&gt;Schritt 6: UKI mit sbctl signieren
&lt;/h2&gt;&lt;p&gt;Da Secure Boot aktiv ist, muss das neu gebaute UKI signiert werden, bevor die Firmware es akzeptiert:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo sbctl sign /boot/EFI/Linux/arch-linux.efi
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo sbctl verify
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="schritt-7-neustart-und-test"&gt;Schritt 7: Neustart und Test
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo reboot
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Bei erfolgreichem Setup: &lt;strong&gt;kein Passwort-Prompt&lt;/strong&gt;, direktes Booten durch TPM2-Unlock.&lt;/p&gt;
&lt;p&gt;Falls doch ein Passwort abgefragt wird: Das ist der normale Fallback – der TPM hat den Key nicht freigegeben. Die häufigste Ursache ist ein falscher PCR-Zustand (z. B. Secure Boot deaktiviert oder Firmware-Update).&lt;/p&gt;
&lt;h2 id="schritt-8-nach-erfolgreichem-test-lts-uki-ebenfalls-aktualisieren"&gt;Schritt 8 (nach erfolgreichem Test): LTS-UKI ebenfalls aktualisieren
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo mkinitcpio -p linux-lts
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo sbctl sign /boot/EFI/Linux/arch-linux-lts.efi
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="fehlerbehebung"&gt;Fehlerbehebung
&lt;/h2&gt;&lt;h3 id="tpm-gibt-den-key-nicht-frei"&gt;TPM gibt den Key nicht frei
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Systemd-cryptsetup Log prüfen&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;journalctl -b -u systemd-cryptsetup@root
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Häufige Ursachen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;crypttab&lt;/code&gt; leer oder falsch konfiguriert&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cryptdevice=&lt;/code&gt; noch in der Kernel-Cmdline vorhanden&lt;/li&gt;
&lt;li&gt;Firmware-Update hat PCR 0 verändert → neues Enrollment nötig&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="enrollment-zurücksetzen-und-neu-machen"&gt;Enrollment zurücksetzen und neu machen
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;span class="lnt"&gt;8
&lt;/span&gt;&lt;span class="lnt"&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# TPM2-Slot entfernen&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo systemd-cryptenroll --wipe-slot&lt;span class="o"&gt;=&lt;/span&gt;tpm2 /dev/nvme1n1p2
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Neu enrollen&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo systemd-cryptenroll --tpm2-device&lt;span class="o"&gt;=&lt;/span&gt;auto --tpm2-pcrs&lt;span class="o"&gt;=&lt;/span&gt;0+7 /dev/nvme1n1p2
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# UKI neu bauen und signieren&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo mkinitcpio -p linux
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo sbctl sign /boot/EFI/Linux/arch-linux.efi
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Das war&amp;rsquo;s. Das System bootet nun ohne Passwortabfrage – solange Secure Boot aktiv ist und die Firmware unverändert bleibt. Das LUKS-Passwort ist jederzeit als Fallback nutzbar.&lt;/p&gt;</description></item></channel></rss>