ADMIN 03/14 stellt Erste-Hilfe-Tipps zu Windows-Rettung, Backup und Recovery bei Datenbanken vor und verrät wie man Linux-Systeme vollständig sichert und ... (mehr)

Stapellauf

Nachdem man die Speicherkarte in den Slot gesteckt und die Stromversorgung an den Raspberry Pi angeschlossen hat, startet der Bootvorgang. Man sieht auf dem Monitor die von FreeBSD bekannten Bootmeldungen. Die grüne Leuchtdiode bleibt dunkel, da der FreeBSD-Kernel sie ignoriert.

Gelegentlich stoppt ein Bootvorgang mit einer Fehlermeldung, derzufolge das Boot-Slice fehlt. Das liegt in der Regel daran, dass manche SD-Karten nicht fehlerfrei mit dem Controller des Raspberry harmonieren. Meist klappt es beim zweiten Bootversuch.

Nach dem ersten Login per SSH reaktiviert man als erstes die bei der Grundkonfiguration ausgeschalteten Sicherheitsvorkehrungen. Root sollte sich dann nicht mehr per SSH anmelden dürfen, stattdessen legt man für diesen Zweck einen gewöhnlichen Benutzer an, beispielsweise »pi« (Abbildung 3):

Abbildung 3: Eine Remote-Sitzung per SSH an einem Raspberry Pi mit FreeBSD CURRENT.
# mkdir -p /home/pi
# pw group add users -g 1001
# pw user add pi -s/bin/tcsh -d /home/pi -g users -G wheel# passwd -l pi

Nun empfiehlt es sich, den Speicherplatz auf dem Betriebssystem-Slice zu vergrößern, damit auch zusätzliche Tools darauf Platz finden. »gpart« zeigt die aktuelle Partitionierung an; in den ersten beiden Spalten finden sich die Größenangaben:

# gpart show mmcsd0
=>     1  15564799  mmcsd0  MBR  (7.4G)
       1         8  - free -  (4.0K)
       9     65529  1 !12 [active] (32M)
   65538    983034  2 freebsd  (480M)
 1048572  14516228  - free -  (6.9G)

Das Slice mit Nummer 2 vom Typ »freebsd« enthält das Betriebssystem und wird wie folgt bearbeitet:

# gpart resize -i 2 mmcsd0
mmcsd0 resized
# gpart show mmcsd0
=>      1 15564799  mmcsd0  MBR  (7.4G)
        1        8  - free -  (4.0K)
        9    65529  1 !12 [active] (32M)
    65538 15499260  2  freebsd  (7.4G)
 15564798        2  - free -  (1.0K)

Nach dieser Aktion startet man das System neu und lässt sich danach die aktuelle Slice-Tabelle anzeigen:

# gpart show
=>      1 15564799  mmcsd0  MBR  (7.4G)
        1        8  - free -  (4.0K)
        9    65529  1 !12 [active] (32M)
    65538 15499260  2  freebsd  (7.4G)
 15564798        2  - free -  (1.0K)
=>      0 15499260  mmcsd0s2  BSD (7.4G)
        0   983034  1 freebsd-ufs (480M)
   983034 14516226  - free -  (6.9G)

Wichtig ist hierbei das Slice mit dem Namen »mmcsd0s2« , das an die neue Verteilung angepasst werden muss:

# gpart resize -i 1 mmcsd0s2
mmcsd0s2a resized

Zur Kontrolle hilft ein Blick auf die Ausgabe des folgenden Kommandos:

# gpart show mmcsd0s2
=>      0 15499260  mmcsd0s2  BSD (7.4G)
        0 15556606  1 freebsd-ufs (7.4G)
 15556606     8182  - free -  (4M)

Zum Schluss werden die neu hinzugekommenen Blöcke formatiert:

# growfs /
[...]
OK to grow filesystem on /dev/mmcsd0s2a,
 mounted on /, from 480MB to 7.4GB?
 [Yes/No] Yes
super-block backups (for fsck -b #) at:
 983232, [...], 15483072

Nach Abschluss dieser Tätigkeiten startet man zur Sicherheit den Raspberry neu und beobachtet die Ausgabe auf dem Monitor. Wie bei anderen Systemen gilt hier, dass ein geordneter Shutdown vor dem Kappen der Stromversorgung für die Konsistenz des Dateisystems notwendig ist:

# shutdown -h now

Über ein Powermanagement-System wie APM oder ACPI verfügt der Raspberry Pi übrigens nicht, deshalb kann er sich nach dem System-Shutdown nicht per Software ausschalten. Ohne angeschlossenen Bildschirm bleiben nur zwei Möglichkeiten: Entweder man wartet nach dem Befehl zum Herunterfahren etwa zehn Minuten, bevor man das Gerät ausschaltet, oder man hängt das Dateisystem als nur lesbar (Read Only) ein. Dazu ändert man den Eintrag in »/etc/fstab« von

/dev/mmcsd0s2a / ufs rw,noatime 1 1

zu

/dev/mmcsd0s2a / ufs ro,noatime 1 1

Bei dieser Konfiguration kann das System allerdings keine Protokolle mehr ins Verzeichnis »/var/log/« schreiben. Abhilfe schafft die Möglichkeit, die Systemprotokolle stattdessen übers Netz auszuliefern. In der Datei »/etc/rc.conf« fügt man zu diesem Zweck die folgende Zeile ein:

syslogd_enable="YES"

Nun trägt man das Zielsystem in der Syslogd-Konfiguration ein und kommentiert alle anderen darin enthaltenen Zeilen aus:

*.* @Zielsystem

Der Syslog-Daemon des Zielsystems muss die vom Raspberry eingehenden Protokolle allerdings explizit akzeptieren. Handelt es sich dabei ebenfalls um ein FreeBSD-System, sorgt dafür dieser Eintrag in »/etc/rc.conf« . Bei Linux-Systemen erfolgt die Konfiguration etwa in »/etc/rsyslog.conf« oder dem Verzeichnis »/etc/rsyslog.d/« :

syslogd_enable="YES"
syslogd_flags="-a $netzwerk/$maske -4 \
 -b ${adr_syslog}"

Administrative Aufgaben

Nach der nun abgeschlossenen Installation und Grundkonfiguration von FreeBSD bietet der Raspberry Pi eine gute Ausgangsbasis für weitere Projekte mit diesem Rechnersystem. Die Vielzahl portierter Anwendungen legt das Fundament für vielfältige Einsatzmöglichkeiten.

Wie immer unter FreeBSD stehen auch auf dem Raspberry-System Softwarepakete zum Selbstkompilieren oder bereits übersetzte zur Wahl. Ersteres erleichtert der Portstree, indem er die Abhängigkeiten automatisch auflöst. Bei der für die Raspberry-Plattform ohnehin überschaubaren Auswahl fertiger Softwarepakete empfiehlt sich deshalb diese Methode.

Für die Portstree-Installation meldet man sich zunächst wieder am Raspberry an und wechselt zum Root-User. Danach holt man im Verzeichnis »/usr/« per FTP das Tar-File mit der Ports-Struktur:

# su root
# cd /usr
# fetch ftp://ftp.freebsd.org/pub/FreeBSD/ports/ports/ports.tar.gz# tar -xzvf ports.tar.gz

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019