10. März 2021
Seit fast einem halben Jahr lief bei mir auf einem Raspberry Pi 3 B+ mein Asterisk-Server mit Fail2Ban ohne Eingriffe, Abstürze und Unterbrechungen absolut zuverlässig. Aber dann traten drei kurze Stromausfälle in den Morgenstunden eines stürmischen Sonntags auf. Diese Stromunterbrechungen veränderten mein Vertrauen in den Raspberry.
Inzwischen ist mir seit dem 25. Mai 2021 klar, warum mein Raspberry nach einem Stromausfall nicht mehr bootet. Es liegt höchstwahrscheinlich am VoIPBL (VoIP Blacklist). Seitdem ich dieses Programm nicht mehr verwende, verträgt mein Raspberry mit Asterisk und Fail2Ban problemlos Unterbrechungen der Stromversorgungen. Nach dem Einschalten des Stroms fahren Asterisk und Fail2Ban wieder einwandfrei hoch. So soll es sein. Dennoch ist es sehr sinnvoll ein Notfallpacket für den Fall eines Crashs zu besitzen.
Die Installation meines Asterisk-Servers ist unter https://elektronikbasteln.pl7.de/asterisk-und-fail2ban-auf-dem-raspberry-pi beschrieben.
Vor einigen Tagen hatten wir auf Grund eines Sturms drei kurze Stromausfälle von maximal 10 Minuten. Danach bootete der Raspberry nicht mehr. Beim Booten erscheint auf der Kommandozeilenebene die Meldung “Kernel Panic”. Das Problem kommt anscheinend häufiger vor als man denkt. Laut
und
https://forum-raspberrypi.de/forum/thread/34086-raspberrypi-3-bootet-nicht
kann das Betriebssystem Raspbian durch einen Stromausfall zerstört werden. Eine Abhilfe wäre Raspbian als “Read-only” einzurichten, damit keine Schreibvorgänge mehr auf der Micro-SD-Karte stattfinden können. Die zu beschreibende Dateien müssten sich dann auf einem USB-Stick und/oder im RAM befinden. Eine Suche nach “raspberry read only” liefert entsprechende Hilfestellungen und Anleitungen.
Es ist natürlich ein Unding, dass ein Embedded System durch einen Stromausfall unbrauchbar wird. Die Read-Only-Lösung erscheint mir zu aufwändig und es ist auch nicht sicher, ob sie einwandfrei funktioniert. Deshalb habe ich mir eine USB-Power-Bank für Smartphones bestellt, die für einige Stunden die Stromversorgung sicherstellen kann. Die USB-Power-Bank wird zwischen den Steckernetzteil und dem Stromanschluss des Raspberry eingesteckt und dient dann als Puffer. Auf dem gleichen Prinzip dienen die Notebook-Akkus als Puffer. Leider können nicht alle USB-Power-Banks als Puffer arbeiten.
Übrigens funktionierte die Sicherheitskopie bei mir auch nicht und zeigte den gleichen Fehler. Ich war gezwungen Asterisk neu aufzusetzen. Dabei zeigte sich beinahe eine Katastrophe. Das aktuelle Raspian hat einen Fehler. Die obere Menueleiste wird im Root-Modus nicht angezeigt. Deshalb installierte ich die Version 3.2. vom 13.2.20. Sie ist unter
https://downloads.raspberrypi.org/raspbian/images/raspbian-2020-02-14/
zu finden und nach dem Download der Zip-Datei zu entpacken und kann dann wie gewohnt mit dem Raspberry Pi Imager auf die Micro-SD-Karte kopiert werden. Sie funktioniert auf meinem Raspberry Pi 3 B+ einwandfrei. Zur Sicherheit ist diese ältere Version zu sichern, bevor sie aus dem Internet verschwindet. Meine Anleitung funktioniert nach meiner Erfahrung auf jeden Fall mit der Version 3.2 oder 3.4 auf dem Rasberry 3 B+.
Nach der Installation des Raspbian 3.2. ist die Ländereinstellung zu wählen. Dann die Aktualisierung überspringen. Dann den Root-Zugang einrichten wie in https://elektronikbasteln.pl7.de/asterisk-und-fail2ban-auf-dem-raspberry-pi beschrieben. Alle weiteren Arbeiten erfolgen im Root-Modus. Als erstes die IP des Raspberry ändern. Am einfachsten geht das, wenn wir die dhcpcd.conf im Ordner etc ersetzen.
Zum Glück konnte ich meine eigene Anleitung verwenden. Bei der Version 3.2 klappte die vorgeschlagene Aktualisierung auf der graphischen Oberfläche nicht und machte das Betriebssystem unbrauchbar. Man kann darauf verzichten. Bei der Installation des Asterisk auf der Kommandozeilenebene verlangte Linux eine Aktualisierung und hatte den Befehl gleich mitgeliefert. Nach der Aktualisierung klappte dann die Asterisk-Installation mit der Version 16.2.1. Achtung: Die Installation klappt nur, wenn man sich vorher als Root im Raspbian angemeldet hatte. Die Installation von Fail2Ban klappte dann ebenfalls einwandfrei. Iptables war bereits installiert.
Wenn dies erledigt ist, sind nur noch folgende Konfiguration-Dateien zu ersetzen, die man hoffentlich gesichert hatte:
Für die Änderung der IP des Raspbian:
dhcpcd.conf (in etc)
Empfehlenswert ist es die dhcpcd.conf vor der Installation des Asterisk zu ersetzen.
Für Asterisk (in etc/asterisk):
extensions.conf
features.conf
logger.conf
rtp.conf
sip.conf
voicemail.conf
Für Fail2Ban (etc/fail2ban):
jail.conf
defaults-debian.conf (im Unterordner jail.d)
Eventuell sind eigene Sounddateien in /usr/share/asterisk/sounds/en zu kopieren. Die Pfadangabe gilt für die us-amerikanische Sprachversion, die voreingestellt ist.
Da ich den Sicherungskopien nicht mehr traue, habe ich alle notwendigen Dateien auf einem USB-Stick und auf verschiedenen Festplatten gesichert. Ein USB-Stick ist kein sichererer Aufbewahrungsort, da Datenverlust droht. Vorsicht bei der Sip.conf. Sie kann die Zugangsdaten für die kostenpflichtigen Accounts enthalten. Ebenfalls habe ich die Raspbian-Version 3.2 gesichert, da sie funktioniert. Updates und neuere Versionen können problematisch sein. Gepackt hat das Raspbian 2.3 ein Größe von etwa 1 GByte, entpackt ist sie etwa 3 GByte groß. Diese Version habe ich zudem bereits auf 2 weitere 16 GB große Micro-SD-Karten gezogen. Dadurch wird eine Neuinstallation zügig ablaufen.
Jetzt warte ich nur noch auf die bestellte USB-Powerbank, die ich hoffentlich in den nächsten Tagen in meinem Briefkasten vorfinden darf.
USB-Powerbank als Puffer für eine unterbrechungsfreie Stromversorgung? Leider ist eine USB-Powerbank nicht immer eine gute Idee. Mein Modell funktioniert wunderbar an Smartphones. Die Powerbank kann gleichzeitig geladen und entladen werden. Doch als Puffer für eine unterbrechungsfreie Stromversorgung ist sie leider ungeeignet. Zieht man das Netzteil aus der Steckdose, unterbricht die Stromversorgung zum Raspberry für eine Sekunde und der Raspberry bootet neu. Genau das möchte man verhindern. Bei einem Smartphone spielt die kurze Stromunterbrechung keine Rolle, da er einen eingebauten Akku besitzt. Zudem verlangt jedenfalls der Raspberry Pi 3 B+ eine Versorgsspannung von etwas mehr als 5 Volt, weshalb er eine Unterspannung beim Betrieb an Akkubänken beklagen kann.