Fryboyter

Arch Linux ARM - Keine Verbindung per SSH mehr möglich

In meinem privaten LAN ist ein Raspberry Pi 4 vorhanden der neben ein paar anderen Dingen eine Kombination von PiHole und unbound zur Verfügung stellt. Vor ein paar Tagen hat die Namensauflösung auf den Rechnern im LAN nicht mehr funktioniert.

Als ich mit SSH mit dem Raspberry Pi verbinden wollte, konnte keine Verbindung aufgebaut werden. Sehr seltsam…

Meine erste Vermutung war, dass die Speicherkarte defekt ist, da ich diese schon einige Jahre nutze und auch schon ein viele Schreibvorgänge stattgefunden haben. Also habe ich die Karte aus dem Raspberry Pi entfernt und mittels eines Kartenlesers an mein Notebook angeschlossen. Sofort wurden die beiden Partitionen auf der Speicherkarte erkannt, ich konnte sie mounten und auf die Dateien zugreifen. Also ist es scheinbar doch nicht die Speicherkarte.

Trotzdem habe ich erst mal ein Image der Karte erstellt und dieses dann mittels PiShrink auf eine annehmbare Größe verkleinert.

Vielleicht steht ja in den Log-Dateien etwas, dass auf das Problem hinweist. Da am Raspberry Pi weder ein Monitor noch eine Tastatur angeschlossen ist, habe ich die größere der beiden Partitionen gemountet. Nehmen wir an im Home-Verzeichnis des Notebooks im Verzeichnis rasp. Dann habe ich mittels journalctl -D ~/rasp/var/log/journal -r auf die Log-Dateien auf der Speicherkarte zugegriffen. Schon nach wenigen Zeilen habe ich die erste und einzige Fehlermeldung gefunden.

alarmpi systemd[1]: Failed to start Wait for Network to be Configured.
alarmpi systemd[1]: systemd-networkd-wait-online.service: Failed with result 'exit-code'.
alarmpi systemd[1]: systemd-networkd-wait-online.service: Main process exited, code=exited, status=1/FAILURE
alarmpi systemd-networkd-wait-online[322]: Timeout occurred while waiting for network connectivity.

Der Raspberry Pi bootet also, kann aber keine Netzwerkverbindung aufbauen. Aber warum? Die Konfigurationen habe ich seit mindestens einem Jahr nicht geändert.

Trotzdem habe ich mir die Konfigurationsdatei eth0.network unter ~/rasp/etc/systemd/network/ angesehen.

Sieht gut aus.

[Match]
Name=eth0
...

Wobei… Moment! Eth0 bei einer Distribution die systemd und somit Predictable Network Interface Names nutzt? Könnte das die Ursache sein?

Einen Versuch ist es wert. Also habe ich Name=eth0 in Name=en* geändert, da der Netzwerkanschluss per Kabel immer eine Bezeichnung zugeteilt bekommt die mit en beginnt. Welche genau, kann ich nicht sagen, da ich ja keinen Zugriff im laufenden Betrieb habe.

Und siehe da, der Raspberry Pi bootet und eine Verbindung per SSH ist wieder möglich. Mittels ip addr habe ich mir dann die Netzwerkverbindungen des Raspberry Pi anzeigen lassen und festgestellt, dass der Netzwerkanschluss per Kabel die Bezeichnung end0 hat. Also ich ich abschließend Name=en* noch in Name=end0 geändert. Wobei das ist in dem Fall nicht nötig ist, da nicht zwei unterschiedliche Netzwerkanschlüsse mit Kabel vorhanden sind. Aber sicher ist sicher.

Aber warum ist das erst jetzt passiert? Predictable Network Interface Names gibt es unter systemd schon ewig und sind in der Standardkonfiguration aktiv. Nachdem ich im offiziellen Forum von Arch Linux ARM gesucht habe, habe ich mehrere Fälle mit dem gleichen Problem gefunden. Z. B. https://archlinuxarm.org/forum/viewtopic.php?f=15&t=16245. Zumindest bin ich nicht alleine. Ich vermute, dass durch ein Update Predictable Network Interface Names aktiviert wurden und es deshalb zu Problemen gekommen ist, weil meine Installation schon sehr alt ist. Aber das ist eine Vermutung.

OSBN

Inhalt am Ende des Front-Matter-Bereichs einfügen

Wenn ich einen Artikel für fryboyter.de schreibe, erstelle ich hierfür eine Markdown-Datei, an deren Beginn ein Front-Matter-Bereich vorhanden ist. Dieser sieht beispielsweise wie folgt aus.

---
title: Inhalt am Ende des Front-Matter-Bereichs einfügen
date: 2022-11-02T20:21:11+0100
categories:
- OSBN
tags:
- Front Matter
- Markdown
- Sed
slug: inhalt-am-ende-des-front-matter-bereichs-einfuegen
---

In manchen Fällen will man diesen Bereich nachträglich erweitern. Zum Beispiel mit nositemap: true damit der Artikel nicht in der Sitemap der Internetseite erscheint. Bei einem einzelnen Artikel ist das schnell erledigt, indem man die Datei manuell ändert. Was, aber wenn es nicht einen, sondern mehrere Dateien betrifft? Dann wäre es besser wenn man die Änderungen automatisieren würde. Allerdings besteht der besagte Bereich nicht immer aus der gleichen Anzahl von Zeilen. Zum Beispiel weil ich mal mehr, mal weniger Tags verwende. Schlussendlich bin ich zu folgendem Ergebnis gekommen.

for file in $(find . -type f -name "*.md");
do
lines=$( sed -n '/^---$/=' $file | sed -n 2p )
sed -i -e "$lines i nositemap: true" $file
done

Die erste Zeile sucht im aktuellen Verzeichnis und allen darin vorhandenen Unterverzeichnissen nach Dateien mit der Endung .md. Die dritte Zeile prüft aus wie vielen Zeilen der jeweilige Front-Matter-Bereich besteht. Die vierte Zeile erweitert den Bereich am Ende abschließend um nositemap: true so dass dieser wie folgt aussieht.

---
title: Inhalt am Ende des Front-Matter-Bereichs einfügen
date: 2022-11-02T20:21:11+0100
categories:
- OSBN
tags:
- Front Matter
- Markdown
- Sed
slug: inhalt-am-ende-des-front-matter-bereichs-einfuegen
nositemap: true
---

Wer das Script erst einmal testen will ohne dass die Dateien gleich direkt geändert wird, sollte in Zeile 4 den Paramter -i entfernen. Dann werden die geänderten Dateien nur angezeigt ohne dass sie tatsächlich geändert werden.

OSBN

Dank Musk ist mir wieder aufgefallen, dass ich Mastodon nutze

Kürzlich hat Elon Musk, nach einigem hin und her, Twitter endgültig gekauft. Kurz darauf wurden diverse Artikel veröffentlicht, welche Alternativen es gibt. Warum nicht schon vorher? Egal.

Aufgrund der Übernahme von Twitter habe ich mir überlegt, ob ich schon so etwas wie Twitter für fryboyter.de genutzt habe. Spontan lautet die Antwort nein, da ich mit den sogenannten “sozialen Medien” nichts anfangen kann. Daher habe ich beispielsweise kein Konto bei Twitter oder bei Facebook. Aber irgendwie war da mal was.

Nachdem ich etwas überlegt habe, ist mir eingefallen, dass ich irgendwann einmal mit IFTTT experimentiert habe um damit die auf fryboyter.de veröffentlichten Artikel auch auf anderen Plattformen zu veröffentlichen. Das ist aber schon lange her.

Wie ich eben festgestellt habe, gibt es das Konto bei IFTTT noch. Und das Applet ist zum einen noch aktiv und zum anderen veröffentlicht es die Artikel von fryboyter.de auf einem, meinen, Mastodon-Konto. Und noch überraschender, es gibt Leute die meine Veröffentlichungen dort lesen.

Vorerst werde ich das Applet / Konto aktiv lassen. Wer also will, kann sich über https://social.tchncs.de/@fryboyter über meine Veröffentlichungen informieren.

OSBN

Aktiven Fork bei Github finden

Ab und an nutze ich sshfs ganz gerne um ein Verzeichnis über SSH lokal zu mounten. Die Entwicklung des Projekts wurde allerdings vor ein paar Monaten eingestellt. Heute wollte ich nachschauen, ob es einen aktiv weiterentwickelten Fork von sshfs gibt.

Was leider, zumindest direkt über github.com, nicht so einfach ist. Über https://github.com/libfuse/sshfs/network/members kann man sich zwar die Forks ansehen aber diese sind alphabetisch sortiert. Da es von sshfs derzeit 403 Forks bei Github gibt, könnte es etwas dauern bis man den aktuellsten Fork findet. Oder man nutzt https://techgaun.github.io/active-forks/index.html. Dort braucht man nur die Adresse des Projekts eingeben (z. B. https://github.com/libfuse/sshfs) und erhält eine Liste der Forks, die nach der Aktivität sortiert ist. Über die Schaltfläche “Add Condition” kann man die Suchabfrage noch nach seinen Wünschen anpassen.

Besser wäre es natürlich, wenn man die Liste direkt bei Github sortieren könnte. Allerdings ist in der Hinsicht Codeberg.org, was auf Gitea basiert, auch nicht besser und bietet ebenfalls nur die alphabetisch sortiere Liste an.

OSBN

Artikel gemeinsam aktualisieren

Bei Arch Linux ist Python 3 schon lange der Standard. Allerdings haben diverse Pakete in den offiziellen Paketquellen immer noch Python 2 verwendet. Kürzlich haben die Entwickler von Arch Linux nun Python 2 endgültig beerdigt. Dies habe ich zum Anlass genommen die bisher von mir veröffentlichten Artikel anzusehen.

Gefunden habe ich einen Artikel für ein Script von 2016. Den Artikel konnte ich dank des Tools 2to3 sehr leicht auf Python 3 aktualisieren.

Ich gehe allerdings davon aus, dass auch noch andere von meiner Artikel, die ich seit 2009 veröffentlicht habe, nicht mehr korrekt sind, da sich zwischenzeitlich einiges geändert hat. Selbst wenn ich nun alle Artikel selbst überprüfe, wäre ich mir nicht sicher, ob ich über jede nötige Änderung Bescheid wüsste.

Nun ist es so, dass es mich selbst nervt, wenn ich über die von mir bevorzugte Suchmaschine Artikel zur Lösung eines Problems finde, die veraltet sind. Was leider oft der Fall ist.

Daher habe ich mir überlegt, ob wir Betreiber diverse Blogs uns nicht gegenseitig unterstützen könnten, indem wir beispielsweise ab und zu eine “Bug Squashing Week” ins Leben rufen während dieser wir vorhandene Artikel anderer Blogs prüfen und bei Bedarf dem Betreiber entsprechend informieren oder, sofern möglich, Pull Requests erstellen.

Was ich damit erhoffe, zu erreichen ist, dass die Suchergebnisse bei den diversen Suchmaschinen möglichst aktuell sind. Denn leider ist es so, dass einmal veröffentlichte Artikel oft nie mehr aktualisiert werden. Wie man bei den genannten Artikel von 2016 sieht, bin ich leider keine Ausnahme.

OSBN