Manjaro: systemd-fsck-root reparieren

food man love people

Seit einiger Zeit scheint bei „out of the box“ Manjaros der SystemD Service systemd-fsck-root nicht mehr zu funktionieren, was zur Folge hat, dass das root-Volume aktuell nie auf Fehler überprüft wird.

Um diesen Umstand zu korrigieren, sollte zuerst mittels sudo dumpe2fs -h /dev/sda1 | grep -i 'mount count'geprüft werden, welcher Wert für Maximum mount count eingestellt ist. Sofern als Wert -1 eingestellt ist, wird dieser jetzt mittels sudo tune2fs -c 30 /dev/sda1 wieder auf den Standardwert von 30 zurückgesetzt.

Im nächsten Schritt muss noch die /etc/mkinitcpio.conf mittels sudoedit /etc/mkinitcpio.conf ein wenig ergänzt werden:

  • Der Eintrag BINARIES=() wird in BINARIES=(/usr/bin/fsck /usr/bin/fsck.ext4 /usr/bin/fsck.xfs) geändert, damit das fsck Binary sowie die notwendigen Module während des Bootvorgangs verfügbar sind.
  • Der Eintrag HOOKS=() wird um den Wert systemd ergänzt, damit systemd-fsck-root während des Bootvorgangs ausgeführt wird.

Zum Schluss werden die initramfs mittels sudo mkinitcpio -P neu erstellt, damit unsere Anpassungen beim nächsten Reboot des Systems greifen.

Nach dem nächsten Neustart sollte systemctl status systemd-fsck-root.service anzeigen dass das root-Volume überprüft und ggf repariert wurde.

TeamViewer unter Manjaro nutzen

Wer den TeamViewer aus dem AUR installiert hat, steht beim ersten Start oft vor dem Problem, das der TeamViewer am unteren Rand die Meldung

Nicht bereit. Bitte prüfen Sie Ihre Internetverbindung.

anzeigt.

TeamViewer ohne gestarteten Daemon

Das Problem ist relativ einfach zu lösen. TeamViewer installiert einen eigenen Daemon, der die Verbindungen abwickelt, aber nach der Installation nicht automatisch gestartet wird.

Um den Daemon zu starten kann man entweder

sudo systemctl start teamviewerd

oder

sudo systemctl enable teamviewerd && sudo systemctl start teamviewerd 

ausführen.

Der erste Befehl startet die systemd Unit des Daemon und muss vor jedem Start des TeamViewer erneut ausgeführt werden. Der zweite Befehl aktiviert den automatischen Start der Unit und startet diese anschließend. Dieser Befehl muss im Gegensatz zum ersten nur einmal ausgeführt werden.

TeamViewer mit gestarteten Daemon

Welchen Befehl man nutzt hängt hauptsächlich davon ab, wie oft man den TeamViewer nutzen möchte – und von der eigenen Bequemlichkeit 😉

gpg Schlüsselbund mit systemd regelmäßig aktualisieren

Neben dem klassischen Crontab bietet seit einiger Zeit auch systemd mittels so genannter Timer die Möglichkeit, Aufgaben regelmäßig auszuführen.

Wenn man beispielsweise seinen gpg Schlüsselbund regelmäßig aktualisieren möchte (was dringend zu empfehlen ist), dann kann man dies entweder mittels crontab erledigen, oder man nutzt systemd’s Timer für die Aufgabe.

Dafür muss man zuerst unter ~/.config/systemd/user/ eine systemd Unit gpg-update.service mit folgendem Inhalt anlegen:

[Unit]
Description=Update keys in local keyring

[Service]
Type=oneshot
Environment=DISPLAY=:0
ExecStart=/usr/bin/gpg – refresh-keys

[Install]
WantedBy=basic.target

Als nächstes wird im selben Verzeichnis noch der systemd Timer gpg-update.timer mit folgendem Inhalt angelegt:

[Unit]
Description=Update keys in local keyring
 
[Timer]
OnCalendar=hourly
Persistent=true
Unit=gpg-update.service
 
[Install]
WantedBy=gpg-update.service

In diesem Beispiel wird der Timer stündlich ausgeführt. Es kann jedoch auch ein anderes Interval verwendet werden.

Im nächsten Schritt wird dann noch der neu angelegte Timer aktiviert und gestartet

systemctl – user enable gpg-update.timer
systemctl – user start gpg-update-timer

Um zu prüfen, ob alles wie gewollte funktioniert hat, kann man dies mit folgendem Befehl überprüfen:

systemctl – user status gpg-update.timer

Sollte im Status des Timers unter dem Punkt Active nicht active (waiting) stehen, sollte man mittels journalctl -xe einen Blick in das Journal werfen um der möglichen Fehlerursache auf die Schliche zu kommen.