Quasi als Fortsetzungsartikel zu Wie eine Securepoint UTM RC100 stirbt und man sie wiederbelebt folgt nun die Variante mit einer pfSense auf einem APU-Board von PC Engines. Im Grunde kann man die Diagnose auch auf andere Hardware anwenden.
Bei einem Kunden streikte die Standort-Vernetzung auf Basis von OpenVPN. Vor Ort auf der Client-Seite war schnell klar, das die pfSense nicht mehr ansprechbar war. Zunächst wurde über eine serielle Verbindung (da das APU-Board kein VGA o.ä. hat) überprüft, ob es eine aktuelle Ausgabe gibt. Allerdings reagierte das Gerät überhaupt nicht auf irgendwelche Eingaben, eine Ausgabe gab es in Folge nicht.
Bei einem Neustart wurde beobachtet, wie weit pfSense bootet. Das sah zunächst recht vielversprechend aus. Zunächst erschienen die Meldungen von Coreboot (BIOS), dann der Bootloader und das System startete über die Hardware-Enumierung soweit flott und gut. Dann erschien allerdings folgendes:
WARNING: / was not properly dismounted WARNING: /: mount pending error: blocks 16 files 0
Danach ein Crash-Report usw.:
Kurzum: Nicht gut und ein Hinweis, das mindestens das Dateisystem fehlerhaft ist. Um dies weiter zu prüfen wurde das Gerät neugestartet.
Beim Bootmenü wurde “2” gedrückt für “2. Boot [S]ingle User” um in den Single User Mode zu starten.
Bei der Abfrage nach der Shell schlicht “Enter” drücken.
Nun kann man das Dateisystem überprüfen:
fsck -f
Tipp: “-y” anhängen um Meldungen automatisch bestätigen zu lassen.
Die Ausgabe verhies ein weiteres Mal nichts gutes:
** /dev/gptid/51b43281-0cc3-11e8-802f-000db9338214 ** Last Mounted on / ** Root file system ** Phase 1 - Check Blocks and Sizes INCORRECT BLOCK COUNT I=1605142 (8 should be 0) CORRECT? [yn] INCORRECT BLOCK COUNT I=1605143 (8 should be 0) CORRECT? [yn] y ** Phase 2 - Check Pathnames ** Phase 3 - Check Connectivity ** Phase 4 - Check Reference Counts ahcich0: Timeout on slot 6 port 0 ahcich0: is 00000000 cs 00000000 ss 00000040 rs 00000040 tfd 50 serr 00000000 cmd 0000e617 (ada0:ahcich0:0:0:0): READ_FPDMA_QUEUED. ACB: 60 40 28 a2 4c 40 01 00 00 00 00 00 (ada0:ahcich0:0:0:0): CAM status: Command timeout (ada0:ahcich0:0:0:0): Retrying command ahcich0: AHCI reset: device not ready after 31000ms (tfd = 00000080) ahcich0: Timeout on slot 7 port 0 ahcich0: is 00000000 cs 00000080 ss 00000000 rs 00000080 tfd 80 serr 00000000 cmd 0000e717 (aprobe0:ahcich0:0:0:0): ATA_IDENTIFY. ACB: ec 00 00 00 00 40 00 00 00 00 00 00 (aprobe0:ahcich0:0:0:0): CAM status: Command timeout (aprobe0:ahcich0:0:0:0): Retrying command ahcich0: AHCI reset: device not ready after 31000ms (tfd = 00000080) ahcich0: Timeout on slot 8 port 0 ahcich0: is 00000000 cs 00000100 ss 00000000 rs 00000100 tfd 80 serr 00000000 cmd 0000e817 (aprobe0:ahcich0:0:0:0): ATA_IDENTIFY. ACB: ec 00 00 00 00 40 00 00 00 00 00 00 (aprobe0:ahcich0:0:0:0): CAM status: Command timeout (aprobe0:ahcich0:0:0:0): Error 5, Retries exhausted ahcich0: AHCI reset: device not ready after 31000ms (tfd = 00000080)
Mit den Timeouts ging es dann weiter. Fazit: Die SSD ist defekt. Bei diesem älteren Gerät handelt es sich um eine SuperSSpeed S328 aus dem damaligen PC Engines APU-Bundle. Laut Recherche sind wohl Schwierigkeiten mit neueren Dateisystemen und TRIM bekannt:
Notizbl0g. – SuperSpeed S328 SSD and TRIM Feature
PC Engines – 16GB mSATA SSD module (msata16a)
Wobei man dazu erwähnen muss, das pfSense ab Werk kein aktiviertes TRIM hat. Dieses muss manuell eingeschaltet werden:
YUK Blog – pfsense SSD Harddisk Enable TRIM
Dies war übrigens hier nicht der Fall. Vermutlich ist die SSD ihres Alters wegen “gestorben”. Jedenfalls kann die SSD mit dem aktuellen Modell von PC Engines ersetzt werden:
PC Engines – 16GB mSATA SSD module (msata16e oder neuer)
Dieses gibt es beispielsweise bei VARIA:
VARIA – PC Engines mSATA16G – 16 GB mSATA SSD Module
Alternativ kann neben der PC Engines Eigenmarke z.B. auch Transcend verwendet werden (von mir bislang ungetestet):
VARIA – 16GB Transcend mSATA-SATA, SSD MLC, TS16GMSA370
Ist die Hardware wieder in Ordnung, muss pfSense neuinstalliert werden:
- Das System starten.
- “F10” für’s Bootmenü drücken
- Das Boot-Medium auswählen, in diesem Fall die “1” für “1. USB MSC Drive Multiple Card Reader 1.00”
- Bei “Console type” die Eingabetaste drücken und den Anweisungen folgen (Quasi immer nur “Enter” drücken), auf diese Weise wird pfSense mit den Standard-Einstellungen installiert.
- Vor dem Neustart die SDCARD entfernen.
Nach dem Neustart kann das System bis zu einem gewissen Grad an der Konsole konfiguriert werden, wie z.B. zuweisen der Netzwerkschnittstellen, IP-Adresse, …
Über “1) Assign Interfaces” mindestens die WAN- (i.d.R. “re0” bzw. “igb0”) und LAN-Schnittstelle (i.d.R. “re1” bzw. “igb1”) zuweisen. Dieser Schritt ist relevant, auch wenn bereits “re0” und “re1” angezeigt wird, andernfalls ist keine Kommunikation möglich! Erfahrungsgemäss klappts allerdings bei neueren Boards mit Intel-Netzwerkchips automatisch, so das dieser Schritt übersprungen werden kann.
Mindestens sollte die IP-Adresse und ggf. der DHCP-Server für die LAN-Schnittstelle unter “2) Set interface(s) IP address” eingestellt werden.
Nun kann man direkt via Netzwerk im Browser unter Angabe der voreingestellten IP-Adresse 192.168.1.1 (oder welche man selbst vergeben hat) und den Zugangsdaten
Benutzername: admin
Kennwort: pfsense
den Ersteinrichtungsassistenten durchlaufen. Die LAN-Schnittstelle ist die Mittlere von den Dreien, sofern man nichts anderes konfiguriert hat. WAN ist per Vorgabe die erste Schnittstelle neben dem COM-Port.
Bevor es dann weiter geht, sollte zunächst, sofern vorhanden, das aktuelle Update installiert werden. Anschließend kann man die Datensicherung einspielen und ist wieder auf dem aktuellen Stand.
Beim Kunden haben wir kurzerhand ein Leihgerät aufgestellt und die Datensicherung eingespielt, so war man innerhalb weniger Minuten fertig und das VPN lief wieder. Die Reparatur konnte so in Ruhe in der Werkstatt erfolgen und nebenbei dieser Beitrag verfassst werden.
Quelle:
Verheiratet, Vater von zwei Kindern, eines an der Hand, eines im Herzen. Schon immer Technik-Freund, seit 2001 in der IT tätig und seit über 10 Jahren begeisterter Blogger. Mit meiner Firma IT-Service Weber kümmern wir uns um alle IT-Belange von gewerblichen Kunden und unterstützen zusätzlich sowohl Partner als auch Kollegen.
Danke für den interessanten Beitrag. Hinweis: Du schreibst am Anfang von OPNSense (“Bei einem Kunden streikte die Standort-Vernetzung auf Basis von OpenVPN.”) und dann von pfSense.
Gruß
Ich finde im Beitrag kein “OPNSense”. OpenVPN und OPNsense sind zwei verschiedene Dinge.