<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Linux on DevOps OPf</title><link>https://buck.zone/categories/linux/</link><description>Recent content in 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/categories/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><item><title>Systemd-Timer einrichten</title><link>https://buck.zone/p/systemd-timer-einrichten/</link><pubDate>Sat, 10 May 2025 00:00:00 +0000</pubDate><guid>https://buck.zone/p/systemd-timer-einrichten/</guid><description>&lt;p&gt;&lt;strong&gt;Systemd-Timer&lt;/strong&gt; sind eine leistungsstarke Alternative zu Cronjobs, um Aufgaben zeitgesteuert auszuführen. Sie bieten mehr Flexibilität und bessere Integration in das Systemd-Ökosystem. In diesem Artikel zeige ich dir, wie du systemd-Timer einrichtest und verwendest.&lt;/p&gt;
&lt;h2 id="was-ist-ein-systemd-timer"&gt;&lt;strong&gt;Was ist ein systemd-Timer?&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;Ein systemd-Timer ist eine systemd-Einheit (Unit), die zeitgesteuert einen anderen Dienst (Service) ausführt. Timer ersetzen Cronjobs und bieten Vorteile wie:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bessere Protokollierung über &lt;code&gt;journalctl&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Abhängigkeiten und Startbedingungen können definiert werden.&lt;/li&gt;
&lt;li&gt;Präzisere Steuerung der Ausführungszeit.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="grundlegender-aufbau"&gt;&lt;strong&gt;Grundlegender Aufbau&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;Ein systemd-Timer besteht aus zwei Dateien:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Service-Datei&lt;/strong&gt;: Definiert, was ausgeführt werden soll.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Timer-Datei&lt;/strong&gt;: Definiert, wann der Service ausgeführt wird.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Beide Dateien werden im Verzeichnis &lt;code&gt;/etc/systemd/system/&lt;/code&gt; gespeichert.&lt;/p&gt;
&lt;h2 id="schritt-1-erstelle-die-service-datei"&gt;&lt;strong&gt;Schritt 1: Erstelle die Service-Datei&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;Die Service-Datei beschreibt die Aktion, die ausgeführt werden soll. Beispiel: Wir möchten ein Skript &lt;code&gt;/usr/local/bin/backup.sh&lt;/code&gt; ausführen.&lt;/p&gt;
&lt;p&gt;Erstelle eine Datei namens &lt;code&gt;backup.service&lt;/code&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;nano /etc/systemd/system/backup.service
&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;Inhalt der Datei:&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;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;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-ini" data-lang="ini"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;[Unit]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;Description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;Backup Script&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;After&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;network.target&lt;/span&gt;
&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="k"&gt;[Service]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;Type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;oneshot&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;ExecStart&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;/usr/local/bin/backup.sh&lt;/span&gt;
&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;Erklärung:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[Unit]&lt;/code&gt;: Beschreibt die Einheit. &lt;code&gt;Description&lt;/code&gt; gibt eine kurze Beschreibung, und &lt;code&gt;After=network.target&lt;/code&gt; stellt sicher, dass das Netzwerk verfügbar ist, bevor der Service startet.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[Service]&lt;/code&gt;: Definiert den Service. &lt;code&gt;Type=oneshot&lt;/code&gt; bedeutet, dass der Service eine einmalige Aktion ausführt. &lt;code&gt;ExecStart&lt;/code&gt; gibt den Befehl oder das Skript an, das ausgeführt werden soll.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="schritt-2-erstelle-die-timer-datei"&gt;&lt;strong&gt;Schritt 2: Erstelle die Timer-Datei&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;Die Timer-Datei definiert, wann der Service ausgeführt wird. Erstelle eine Datei namens &lt;code&gt;backup.timer&lt;/code&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;nano /etc/systemd/system/backup.timer
&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;Inhalt der Datei:&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;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-ini" data-lang="ini"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;[Unit]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;Description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;Run Backup Script Daily&lt;/span&gt;
&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="k"&gt;[Timer]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;OnCalendar&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;daily&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;Persistent&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;true&lt;/span&gt;
&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="k"&gt;[Install]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;WantedBy&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;timers.target&lt;/span&gt;
&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;Erklärung:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;[Unit]&lt;/code&gt;: Wie bei der Service-Datei, eine kurze Beschreibung.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[Timer]&lt;/code&gt;: Hier wird die Zeitsteuerung definiert.
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;OnCalendar=daily&lt;/code&gt;: Führt den Service täglich um Mitternacht aus. Du kannst auch andere Zeitangaben verwenden (siehe unten).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Persistent=true&lt;/code&gt;: Stellt sicher, dass der Timer nach einem Neustart ausgeführt wird, falls er während des Ausfalls verpasst wurde.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[Install]&lt;/code&gt;: &lt;code&gt;WantedBy=timers.target&lt;/code&gt; sorgt dafür, dass der Timer beim Systemstart aktiviert wird.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="zeitangaben-für-systemd-timer"&gt;&lt;strong&gt;Zeitangaben für systemd-Timer&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;Die Zeitangabe für einen systemd-Timer wird in der Timer-Datei mit der Option &lt;code&gt;OnCalendar&lt;/code&gt; definiert. Systemd unterstützt dabei ein flexibles und mächtiges Zeitformat, das sowohl einfache als auch komplexe Zeitpläne ermöglicht. Hier sind einige Beispiele und Erklärungen:&lt;/p&gt;
&lt;h4 id="grundlegendes-format"&gt;&lt;strong&gt;Grundlegendes Format&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;Das allgemeine Format für &lt;code&gt;OnCalendar&lt;/code&gt; lautet:&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-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;OnCalendar=YYYY-MM-DD HH:MM:SS
&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;ul&gt;
&lt;li&gt;&lt;strong&gt;YYYY&lt;/strong&gt;: Jahr (z. B. 2025)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MM&lt;/strong&gt;: Monat (01 bis 12)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DD&lt;/strong&gt;: Tag (01 bis 31)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HH&lt;/strong&gt;: Stunde (00 bis 23)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MM&lt;/strong&gt;: Minute (00 bis 59)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SS&lt;/strong&gt;: Sekunde (00 bis 59)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Du kannst Platzhalter (&lt;code&gt;*&lt;/code&gt;) verwenden, um bestimmte Teile flexibel zu halten.&lt;/p&gt;
&lt;h4 id="häufige-zeitangaben"&gt;&lt;strong&gt;Häufige Zeitangaben&lt;/strong&gt;
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Stündlich (jede volle Stunde):&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-ini" data-lang="ini"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;OnCalendar&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;hourly&lt;/span&gt;
&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;Entspricht: &lt;code&gt;*-*-* *:00:00&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Täglich um Mitternacht:&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-ini" data-lang="ini"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;OnCalendar&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;daily&lt;/span&gt;
&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;Entspricht: &lt;code&gt;*-*-* 00:00:00&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Wöchentlich (Sonntag um Mitternacht):&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-ini" data-lang="ini"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;OnCalendar&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;weekly&lt;/span&gt;
&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;Entspricht: &lt;code&gt;Sun *-*-* 00:00:00&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Monatlich (1. Tag des Monats um Mitternacht):&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-ini" data-lang="ini"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;OnCalendar&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;monthly&lt;/span&gt;
&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;Entspricht: &lt;code&gt;*-*-01 00:00:00&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Jährlich (1. Januar um Mitternacht):&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-ini" data-lang="ini"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;OnCalendar&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;yearly&lt;/span&gt;
&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;Entspricht: &lt;code&gt;*-01-01 00:00:00&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="benutzerdefinierte-zeitangaben"&gt;&lt;strong&gt;Benutzerdefinierte Zeitangaben&lt;/strong&gt;
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Jeden Tag um 15:30 Uhr:&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-ini" data-lang="ini"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;OnCalendar&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;*-*-* 15:30:00&lt;/span&gt;
&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;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Jeden Montag um 08:00 Uhr:&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-ini" data-lang="ini"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;OnCalendar&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;Mon *-*-* 08:00:00&lt;/span&gt;
&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;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Jeden ersten Tag eines Monats um 12:00 Uhr:&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-ini" data-lang="ini"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;OnCalendar&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;*-*-01 12:00:00&lt;/span&gt;
&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;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Jeden letzten Tag eines Monats um 23:59 Uhr:&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-ini" data-lang="ini"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;OnCalendar&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;*-*-28..31 23:59:00&lt;/span&gt;
&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;(Systemd erkennt automatisch den letzten Tag eines Monats, z. B. 28, 30 oder 31.)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Jeden zweiten Tag um 06:00 Uhr:&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-ini" data-lang="ini"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;OnCalendar&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;*-*-1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31 06:00:00&lt;/span&gt;
&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;/li&gt;
&lt;/ol&gt;
&lt;h4 id="wiederholungen-und-intervalle"&gt;&lt;strong&gt;Wiederholungen und Intervalle&lt;/strong&gt;
&lt;/h4&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Alle 5 Minuten:&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-ini" data-lang="ini"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;OnCalendar&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;*:0/5&lt;/span&gt;
&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;(Wird bei Minute 0, 5, 10, 15 usw. jeder Stunde ausgeführt.)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Alle 2 Stunden:&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-ini" data-lang="ini"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;OnCalendar&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;*-*-* 0/2:00:00&lt;/span&gt;
&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;(Wird um 00:00, 02:00, 04:00 usw. ausgeführt.)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Alle 15 Minuten:&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-ini" data-lang="ini"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;OnCalendar&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;*:0/15&lt;/span&gt;
&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 Minuten werden in 15-Minuten-Schritten ausgeführt: 00, 15, 30, 45.)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Alle 10 Tage:&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-ini" data-lang="ini"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;OnCalendar&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;*-*-01,11,21 00:00:00&lt;/span&gt;
&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;/li&gt;
&lt;/ol&gt;
&lt;h2 id="schritt-3-systemd-neu-laden"&gt;&lt;strong&gt;Schritt 3: Systemd neu laden&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;Nachdem die Dateien erstellt wurden, lade die systemd-Konfiguration neu:&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;systemctl daemon-reload
&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-4-timer-aktivieren-und-starten"&gt;&lt;strong&gt;Schritt 4: Timer aktivieren und starten&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;Aktiviere den Timer, damit er beim Systemstart automatisch gestartet wird:&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;systemctl &lt;span class="nb"&gt;enable&lt;/span&gt; backup.timer
&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;Falls ihr ihn manuell starten wollt:&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;systemctl start backup.service
&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-5-überprüfe-den-timer"&gt;&lt;strong&gt;Schritt 5: Überprüfe den Timer&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;Um sicherzustellen, dass der Timer korrekt eingerichtet ist, kannst du ihn dir anzeigen lassen:&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;systemctl status backup.timer
&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;Und den Service könnt ihr folgendermaßen kontrollieren:&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;systemctl status backup.service
&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="optionale-befehle-und-tipps"&gt;&lt;strong&gt;Optionale Befehle und Tipps&lt;/strong&gt;
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Alle Timer überprüfen:&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;systemctl list-timers --all
&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 Ausgabe zeigt alle aktiven und inaktiven Timer, einschließlich der nächsten und letzten Ausführungszeit.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Service-Status überprüfen:&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;systemctl status backup.service
&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;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Logs des Services anzeigen:&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;journalctl -u backup.service
&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;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Timer stoppen oder deaktivieren:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Timer stoppen:
&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;systemctl stop backup.timer
&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;/li&gt;
&lt;li&gt;Timer deaktivieren:
&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;systemctl disable backup.timer
&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;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="fazit"&gt;&lt;strong&gt;Fazit&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;Systemd-Timer sind eine moderne und leistungsstarke Alternative zu Cronjobs. Sie bieten präzise Steuerungsmöglichkeiten, bessere Protokollierung und nahtlose Integration in das System. Mit den oben beschriebenen Schritten kannst du ganz einfach eigene Timer einrichten und verwalten.&lt;/p&gt;</description></item><item><title>Autostart einrichten</title><link>https://buck.zone/p/autostart-einrichten/</link><pubDate>Thu, 20 Mar 2025 00:00:00 +0000</pubDate><guid>https://buck.zone/p/autostart-einrichten/</guid><description>&lt;p&gt;GNOME verwendet sogenannte &lt;strong&gt;&lt;code&gt;.desktop&lt;/code&gt;-Dateien&lt;/strong&gt;, um Anwendungen zu starten. Wenn du möchtest, dass eine Anwendung automatisch beim Systemstart gestartet wird, musst du eine entsprechende &lt;strong&gt;&lt;code&gt;.desktop&lt;/code&gt;-Datei&lt;/strong&gt; in das Verzeichnis &lt;code&gt;~/.config/autostart/&lt;/code&gt; legen. Hier ist eine Schritt-für-Schritt-Anleitung:&lt;/p&gt;
&lt;h2 id="verzeichnis-erstellen-falls-nicht-vorhanden"&gt;Verzeichnis erstellen (falls nicht vorhanden)
&lt;/h2&gt;&lt;p&gt;Das Verzeichnis &lt;code&gt;~/.config/autostart/&lt;/code&gt; ist der Ort, an dem GNOME nach Autostart-Dateien sucht. Falls dieses Verzeichnis noch nicht existiert, kannst du es mit folgendem Befehl erstellen:&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;mkdir -p ~/.config/autostart
&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;Der Parameter &lt;code&gt;-p&lt;/code&gt; stellt sicher, dass das Verzeichnis erstellt wird, auch wenn übergeordnete Verzeichnisse fehlen.&lt;/p&gt;
&lt;h2 id="desktop-datei-kopieren"&gt;&lt;code&gt;.desktop&lt;/code&gt;-Datei kopieren
&lt;/h2&gt;&lt;p&gt;Viele Anwendungen bringen bereits &lt;code&gt;.desktop&lt;/code&gt;-Dateien mit, die sich im Verzeichnis &lt;code&gt;/usr/share/applications/&lt;/code&gt; befinden. Diese Dateien enthalten alle notwendigen Informationen, um die Anwendung zu starten. Du kannst die &lt;code&gt;.desktop&lt;/code&gt;-Datei der gewünschten Anwendung in das Autostart-Verzeichnis kopieren:&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;cp /usr/share/applications/&amp;lt;anwendung&amp;gt;.desktop ~/.config/autostart/
&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;Ersetze &lt;code&gt;&amp;lt;anwendung&amp;gt;&lt;/code&gt; durch den Namen der gewünschten Anwendung. Zum Beispiel, um Firefox beim Systemstart zu starten, würdest du Folgendes eingeben:&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;cp /usr/share/applications/firefox.desktop ~/.config/autostart/
&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="desktop-datei-bearbeiten-optional"&gt;&lt;code&gt;.desktop&lt;/code&gt;-Datei bearbeiten (optional)
&lt;/h2&gt;&lt;p&gt;Falls du die Startparameter der Anwendung anpassen möchtest, kannst du die kopierte &lt;code&gt;.desktop&lt;/code&gt;-Datei mit einem Texteditor bearbeiten. Öffne die Datei zum Beispiel mit &lt;code&gt;nano&lt;/code&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;nano ~/.config/autostart/&amp;lt;anwendung&amp;gt;.desktop
&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;Hier kannst du Änderungen vornehmen, wie z. B. zusätzliche Startoptionen hinzufügen oder den Autostart für bestimmte Bedingungen konfigurieren. Achte darauf, die Datei nach der Bearbeitung zu speichern.&lt;/p&gt;
&lt;h2 id="autostart-testen"&gt;Autostart testen
&lt;/h2&gt;&lt;p&gt;Um zu überprüfen, ob die Anwendung beim nächsten Systemstart automatisch gestartet wird, kannst du dich abmelden und wieder anmelden oder das System neu starten. Die Anwendung sollte nun automatisch gestartet werden.&lt;/p&gt;</description></item><item><title>rpm-ostree Befehle</title><link>https://buck.zone/p/rpm-ostree-befehle/</link><pubDate>Thu, 20 Mar 2025 00:00:00 +0000</pubDate><guid>https://buck.zone/p/rpm-ostree-befehle/</guid><description>&lt;h2 id="systempaket-entfernen"&gt;Systempaket entfernen
&lt;/h2&gt;&lt;p&gt;Um ein Systempaket aus dem System zu entfernen, kannst du den folgenden Befehl verwenden. In diesem Beispiel wird Firefox und das zugehörige Sprachpaket entfernt:&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;rpm-ostree override remove firefox-langpacks-136.0.1-1.fc41.x86_64 firefox
&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="systempaket-wiederherstellen"&gt;Systempaket wiederherstellen
&lt;/h2&gt;&lt;p&gt;Falls du ein zuvor entferntes Paket wiederherstellen möchtest, nutze den folgenden Befehl. Hier wird Firefox und das Sprachpaket zurückgesetzt:&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;rpm-ostree override reset firefox-langpacks-136.0.1-1.fc41.x86_64 firefox
&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;&lt;strong&gt;Hinweis:&lt;/strong&gt; Mit dem Befehl &lt;code&gt;rpm-ostree override reset&lt;/code&gt; kannst du &lt;strong&gt;alle Overrides&lt;/strong&gt; rückgängig machen und das System in den ursprünglichen Zustand zurückversetzen.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="kernel-ersetzen-oder-downgraden"&gt;Kernel ersetzen oder downgraden
&lt;/h2&gt;&lt;p&gt;Eine Alternative zum Standard-Updateprozess ist das &lt;strong&gt;Ersetzen oder Downgraden des Kernels&lt;/strong&gt; mit dem Befehl:&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 rpm-ostree override replace &amp;lt;http- oder lokaler Dateipfad zu Kernel-Paketen&amp;gt;
&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;Beispielsweise kannst du einen Kernel von einem bestimmten Build-Server wie folgt ersetzen:&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 rpm-ostree override replace https://koji.fedoraproject.org/koji/buildinfo?buildID&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;2667987&lt;/span&gt;
&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;hr&gt;
&lt;h2 id="override-zurücksetzen"&gt;Override zurücksetzen
&lt;/h2&gt;&lt;p&gt;Sobald die benötigte Korrektur im offiziellen Repository verfügbar ist, kannst du die Änderungen am Kernel mit folgendem Befehl zurücksetzen:&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 rpm-ostree override reset &amp;lt;Kernel-Pakete, die überschrieben wurden&amp;gt;
&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;hr&gt;
&lt;h2 id="beispiel-kernel-downgrade"&gt;Beispiel: Kernel-Downgrade
&lt;/h2&gt;&lt;p&gt;In diesem Beispiel wurde der Kernel von Version &lt;strong&gt;6.13.8-200.fc41&lt;/strong&gt; auf &lt;strong&gt;6.13.5-200.fc41&lt;/strong&gt; heruntergestuft. Die betroffenen Pakete sind:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;kernel&lt;/li&gt;
&lt;li&gt;kernel-core&lt;/li&gt;
&lt;li&gt;kernel-modules&lt;/li&gt;
&lt;li&gt;kernel-modules-core&lt;/li&gt;
&lt;li&gt;kernel-modules-extra&lt;/li&gt;
&lt;li&gt;kernel-tools&lt;/li&gt;
&lt;li&gt;kernel-tools-libs&lt;/li&gt;
&lt;li&gt;python3-perf&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Verwendeter Befehl:&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 rpm-ostree override replace https://koji.fedoraproject.org/koji/buildinfo?buildID&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;2693823&lt;/span&gt;
&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;Um alle Änderungen rückgängig zu machen, kannst du den folgenden Befehl verwenden:&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 rpm-ostree override reset
&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="nützliche-hinweise"&gt;Nützliche Hinweise
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Rollback:&lt;/strong&gt; Wenn ein vorheriges Deployment korrekt funktioniert hat, kannst du das System einfach auf diesen Zustand zurücksetzen, ohne Pakete manuell zu ändern.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Overrides zurücksetzen:&lt;/strong&gt; Der Befehl &lt;code&gt;rpm-ostree override reset&lt;/code&gt; setzt alle Änderungen an den Systempaketen zurück. Dies ist hilfreich, um das System in einen sauberen Zustand zu bringen.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Swapfile anlegen</title><link>https://buck.zone/p/swapfile-anlegen/</link><pubDate>Sat, 24 Feb 2024 00:00:00 +0000</pubDate><guid>https://buck.zone/p/swapfile-anlegen/</guid><description>&lt;h2 id="swap-datei-erstellen"&gt;Swap-Datei erstellen
&lt;/h2&gt;&lt;p&gt;Erstelle zunächst eine Datei, die als Swap-Speicher genutzt wird. In diesem Beispiel erstellen wir eine 2-GB-Swap-Datei:&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;fallocate -l 2G /swapfile
&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="die-richtigen-berechtigungen-setzen"&gt;Die richtigen Berechtigungen setzen
&lt;/h2&gt;&lt;p&gt;Aus Sicherheitsgründen sollte nur der Root-Benutzer Lese- und Schreibzugriff auf die Swap-Datei haben. Setze die entsprechenden Berechtigungen mit folgendem Befehl:&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;chmod &lt;span class="m"&gt;600&lt;/span&gt; /swapfile
&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="swap-bereich-einrichten"&gt;Swap-Bereich einrichten
&lt;/h2&gt;&lt;p&gt;Verwende das Tool &lt;code&gt;mkswap&lt;/code&gt;, um die Datei als Linux-Swap-Bereich zu konfigurieren:&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;mkswap /swapfile
&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="swap-datei-aktivieren"&gt;Swap-Datei aktivieren
&lt;/h2&gt;&lt;p&gt;Aktiviere die Swap-Datei, damit das System sie sofort nutzen kann:&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;swapon /swapfile
&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="änderung-dauerhaft-machen"&gt;Änderung dauerhaft machen
&lt;/h2&gt;&lt;p&gt;Damit die Swap-Datei bei jedem Systemstart automatisch aktiviert wird, muss die Datei &lt;code&gt;/etc/fstab&lt;/code&gt; bearbeitet werden. Öffne sie Datei mit einem Texteditor, z. B.:&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;nano /etc/fstab
&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;Füge die folgende Zeile hinzu:&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-ini" data-lang="ini"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;/swapfile swap swap defaults 0 0&lt;/span&gt;
&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;Speichern und schließe die Datei. Die Swap-Datei wird nun dauerhaft aktiviert.&lt;/p&gt;</description></item><item><title>Logical Volume Management (LVM)</title><link>https://buck.zone/p/logical-volume-management-lvm/</link><pubDate>Thu, 24 Aug 2023 00:00:00 +0000</pubDate><guid>https://buck.zone/p/logical-volume-management-lvm/</guid><description>&lt;p&gt;Logical Volume Management (LVM) ist eine flexible Methode, um Speicherplatz auf Linux-Systemen zu verwalten. Es ermöglicht die dynamische Anpassung von Speicherplatz, ohne dass Partitionen neu erstellt oder Daten gelöscht werden müssen. Diese Anleitung zeigt, wie man ein neues LVM erstellt, erweitert und dauerhaft einbindet.&lt;/p&gt;
&lt;h2 id="lvm-erstellen"&gt;LVM erstellen
&lt;/h2&gt;&lt;h3 id="physical-volume-pv-erstellen"&gt;Physical Volume (PV) erstellen
&lt;/h3&gt;&lt;p&gt;Ein &lt;strong&gt;Physical Volume (PV)&lt;/strong&gt; ist die Grundlage für LVM. Es repräsentiert eine physische Festplatte oder Partition, die für LVM verwendet werden soll. Um ein PV zu erstellen, führe den folgenden Befehl aus:&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;pvcreate /dev/sdb
&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;Erklärung:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/dev/sdb&lt;/code&gt; ist die Festplatte, die du für LVM verwenden möchtest. Ersetze sie durch den tatsächlichen Gerätenamen deiner Festplatte.&lt;/li&gt;
&lt;li&gt;Dieser Schritt markiert die Festplatte als LVM-kompatibel.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="volume-group-vg-erstellen"&gt;Volume Group (VG) erstellen
&lt;/h3&gt;&lt;p&gt;Eine &lt;strong&gt;Volume Group (VG)&lt;/strong&gt; ist eine Sammlung von Physical Volumes. Sie stellt den Speicherplatz bereit, aus dem Logical Volumes erstellt werden können. Um eine VG zu erstellen und das vorher erstellte PV hinzuzufügen, nutze:&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;vgcreate vg_data /dev/sdb
&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;Erklärung:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;vg_data&lt;/code&gt; ist der Name der Volume Group. Du kannst einen beliebigen Namen wählen.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/dev/sdb&lt;/code&gt; ist das Physical Volume, das du hinzufügen möchtest.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="logical-volume-lv-erstellen"&gt;Logical Volume (LV) erstellen
&lt;/h3&gt;&lt;p&gt;Ein &lt;strong&gt;Logical Volume (LV)&lt;/strong&gt; ist der tatsächlich nutzbare Speicherplatz, der aus einer Volume Group bereitgestellt wird. Um ein LV zu erstellen, das den gesamten freien Speicherplatz der Volume Group nutzt, führe aus:&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;lvcreate -l 100%FREE -n lv_data vg_data
&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;Erklärung:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-l 100%FREE&lt;/code&gt; weist dem Logical Volume den gesamten verfügbaren Speicherplatz der Volume Group zu.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-n lv_data&lt;/code&gt; gibt dem Logical Volume den Namen &lt;code&gt;lv_data&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;vg_data&lt;/code&gt; ist die Volume Group, aus der der Speicherplatz entnommen wird.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="dateisystem-erstellen"&gt;Dateisystem erstellen
&lt;/h3&gt;&lt;p&gt;Um das Logical Volume nutzen zu können, muss ein Dateisystem darauf erstellt werden. In diesem Beispiel wird das ext4-Dateisystem verwendet:&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;mkfs.ext4 /dev/vg_data/lv_data
&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;Erklärung:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/dev/vg_data/lv_data&lt;/code&gt; ist der Pfad zum Logical Volume.&lt;/li&gt;
&lt;li&gt;Das Dateisystem ext4 ist eine gängige Wahl für Linux-Systeme, aber du kannst auch andere Dateisysteme wie XFS oder btrfs verwenden.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="lvm-erweitern"&gt;LVM erweitern
&lt;/h2&gt;&lt;p&gt;Falls du mehr Speicherplatz benötigst, kannst du ein bestehendes LVM erweitern. Hier sind die Schritte:&lt;/p&gt;
&lt;h3 id="physical-volume-pv-vergrößern"&gt;Physical Volume (PV) vergrößern
&lt;/h3&gt;&lt;p&gt;Falls die zugrunde liegende Festplatte erweitert wurde (z. B. durch Hinzufügen von mehr Speicherplatz in einer virtuellen Maschine), musst du das Physical Volume aktualisieren:&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;pvresize /dev/sdb
&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;Erklärung:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dieser Befehl passt die Größe des Physical Volumes an die neue Größe der Festplatte an.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="logical-volume-lv-vergrößern"&gt;Logical Volume (LV) vergrößern
&lt;/h3&gt;&lt;p&gt;Um den zusätzlichen Speicherplatz zu nutzen, erweitere das Logical Volume:&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;lvextend -l +100%FREE /dev/vg_data/lv_data
&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;Erklärung:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-l +100%FREE&lt;/code&gt; erweitert das Logical Volume um den gesamten verfügbaren Speicherplatz in der Volume Group.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/dev/vg_data/lv_data&lt;/code&gt; ist das Logical Volume, das erweitert wird.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="dateisystem-vergrößern"&gt;Dateisystem vergrößern
&lt;/h3&gt;&lt;p&gt;Nach der Erweiterung des Logical Volumes muss das Dateisystem angepasst werden, um den neuen Speicherplatz zu nutzen:&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;resize2fs /dev/mapper/vg_data-lv_data
&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;Erklärung:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;resize2fs&lt;/code&gt; passt die Größe des ext4-Dateisystems an.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/dev/mapper/vg_data-lv_data&lt;/code&gt; ist der Pfad zum Logical Volume.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="eintrag-in-etcfstab-hinzufügen"&gt;Eintrag in &lt;code&gt;/etc/fstab&lt;/code&gt; hinzufügen
&lt;/h2&gt;&lt;p&gt;Damit das Logical Volume beim Systemstart automatisch eingehängt wird, musst du es in die Datei &lt;code&gt;/etc/fstab&lt;/code&gt; eintragen.&lt;/p&gt;
&lt;h3 id="uuid-anzeigen"&gt;UUID anzeigen
&lt;/h3&gt;&lt;p&gt;Finde die UUID des Logical Volumes heraus:&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;lsblk -f
&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;Erklärung:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Die UUID ist eine eindeutige Kennung für das Logical Volume. Sie wird benötigt, um das Volume in &lt;code&gt;/etc/fstab&lt;/code&gt; einzutragen.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="eintrag-in-etcfstab-hinzufügen-1"&gt;Eintrag in &lt;code&gt;/etc/fstab&lt;/code&gt; hinzufügen
&lt;/h3&gt;&lt;p&gt;Füge die UUID in die Datei &lt;code&gt;/etc/fstab&lt;/code&gt; ein, damit das Volume automatisch eingehängt wird:&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;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;UUID=foo /mnt/data ext4 defaults 0 0&amp;#34;&lt;/span&gt; &amp;gt;&amp;gt; /etc/fstab
&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;Erklärung:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ersetze &lt;code&gt;foo&lt;/code&gt; durch die tatsächliche UUID des Logical Volumes.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/mnt/data&lt;/code&gt; ist der Einhängepunkt. Passe diesen an deine Anforderungen an.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ext4&lt;/code&gt; ist das Dateisystem, das du verwendet hast.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="systemd-neu-laden"&gt;Systemd neu laden
&lt;/h3&gt;&lt;p&gt;Lade die Systemd-Konfiguration neu, um die Änderungen zu übernehmen:&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;systemctl daemon-reload
&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;h3 id="mount-einhängen"&gt;Mount einhängen
&lt;/h3&gt;&lt;p&gt;Hänge das Volume ein, um sicherzustellen, dass es korrekt funktioniert:&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;mount -a
&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;</description></item></channel></rss>