Zum Inhalt

Raspberry-Ubuntu-Server als Fileserver – die Installation

  1. Raspberry Pi Heim-Server bauen – die Hardware
  2. Raspberry-Ubuntu-Server als Fileserver – die Installation

Im ersten Teil ging es um die Hardware für den Raspberry Heim-Server. Hier folgt nun die Installation und Einrichtung der Software. Mit dem sehr beliebten Betriebssystem Ubuntu Server wird eine leistungsstarke und skalierbare Basis für den Raspberry-Ubuntu-Server geschaffen. Auch wenn die Ansprüche an einen File-Server nicht sehr hoch sind, lohnt es sich dennoch eine starke Grundlage zu haben. Somit sind spätere Erweiterungen problemlos umsetzbar.

Raspberry-Ubuntu-Server auf Raspy 3 installieren

Als erstes wird das Abbild des Betriebssystems  für den Raspberry Pi benötigt. Auch wenn nicht von Canonical selbst, wird Ubuntu Server für den Raspberry Pi 3 im Ubuntu Wiki zum Download angeboten.  Im Prinzip kann jedes andere Image ebenfalls verwendet werden. Es sollte nur möglichst schlank gehalten sein, um nicht unnötig Ressourcen des Raspis zu verschwenden. Auf eine grafische Oberfläche kann getrost verzichtet werden. Sollte später dennoch eine GUI benötigt werden, kann immer noch nach belieben nachinstalliert werden.

Image auf microSD brennen

Raspberry-Ubuntu-Server einrichten

Das Abbild des Ubuntu Servers welches runter geladen wurde, muss nun auf die microSD gebracht werden. Ein normaler Kopiervorgang reicht hier nicht, das Image muss bit-genau übertragen werden. Umgangssprachlich wird ein Image daher gebrannt.  Da dieser Vorgang bereits mehrfach gut dokumentiert wurde, verweise ich an der Stelle auf externe Anleitungen.

Tipp: 

Der folgende Beitrag hilft bei der Kaufentscheidung einer microSD-Card: Worauf beim Kauf einer microSD-Card geachtet werden sollte!

Für den Raspberry speziell kann ich die Transcend Extreme-Speed empfehlen. Sie ist kostengünstig und funktioniert einwandfrei. Es gibt durchaus microSDs welche nicht funktionieren mit dem Raspi.

Sobald die microSD bereit ist, kann sie in den Raspberry eingelegt werden. Nun sind es nur noch wenige Schritte bis zu einem laufenden Raspberry-Ubuntu-Server.

Der erste start des Raspberry-Ubuntu-Servers

Sobald die ganzen Komponenten angeschlossen sind, wie im ersten Teil beschrieben, kann es los gehen. Doch vor dem ersten Start sollten die USB-Festplatten noch mal vom Raspberry Pi getrennt werden. Am besten einfach den USB-Anschluss des Hubs vom USB-Port des Raspi trennen. Danach kann der Raspberry-Ubuntu-Server gestartet werden.

Verbindung per SSH

Server verfügen bekantermassen über keine grafische Oberfläche. Daher verbindet man sich per SSH mit dem Heim-Server. Dazu muss erstmal die IP, welche der Server vom Router bekommen hat, ausfindig gemacht werden. Am schnellsten geht das wenn direkt beim Router nachgeschaut wird. Dabei sollte unbedingt auch gleich eine IP fest zugeteilt werden. Sonst geht die Suche nach einem Neustart wieder von vorn los.

Haben wir die IP, so können wir in der Konsole als Benutzer “ubuntu” mit

ssh ubuntu@10.0.0.14

(korrekte IP einfügen) zum Heim-Server verbinden. So zumindest unter Linux und Mac. Windows-Nutzer können dazu auf den SSH-Client PuTTY zurückgreifen. Das Passwort für den Benutzer “ubuntu” ist ebenfalls “ubuntu”.

Hat man sich an der Stelle noch nicht über die endgültige IP verbunden, muss erst noch ein Neustart erfolgen (sudo reboot) damit der Raspberry-Ubuntu-Server dann die Feste IP vom Router bekommt. Danach erneut verbinden.

Der Raspberry-Ubuntu-Server ist weitgehend vorkonfiguriert. Die gewohnte Installations-Routine des Betriebssystems entfällt. Einziger Schritt der zwingend erforderlich ist, ist die Eingabe eines neuen Passworts.

Um den Server wie gewohnt als root administrieren zu können, wird mit dem Befehl

sudo -s

zum root-Benutzer gewechselt. Wie vom Raspberry gewohnt, fragt auch Ubuntu Server nach der Eingabe von sudo, nicht nach einem Passwort.

Sehr Wahrscheinlich erscheint nun die Meldung sudo: unable to resolve host ubuntu. Grund dafür ist der fehlende Eintrag in der Datei /etc/hosts. Mit folgendem Befehl tragen wir die benötigte Zeile ein. Dabei wird die aktuelle IP verwendet. Es ist also wichtig dass man nun bereits mit der gewünschten fixen IP unterwegs ist.

echo $(hostname -I | cut -d\  -f1) $(hostname) | sudo tee -a /etc/hosts 

Der Erfolg kann mittels nano /etc/hosts kontrolliert werden. Dort steht nun der neue Eintrag mit der aktuellen IP. An der stelle kann auch der Hostname angepasst werden.

Lokalisierung

Nun kann die Lokalisierung nachgeholt werden. Mit dem Befehl locale wird die aktuelle Konfiguration betrachtet werden. Dabei erscheint eine Meldung wie: “locale: Cannot set LC_ALL to default locale: No such file or directory”.

Mit folgendem Befehl wird die Lokalisierung eingerichtet.

locale-gen "de_CH.UTF-8" #gewünschter Ländercode eingeben

Danach noch

dpkg-reconfigure locales

und schon ist die Lokalisierung abgeschlossen.

Update

Jetzt ist es an der Zeit den Raspberry-Ubuntu-Server auf den neusten Stand zu bringen. Dies läuft wie von ubuntu und anderen Debian-Derivaten gewohnt einfach ab.

apt-get update && apt-get upgrade

Der Raspberry Pi ist kein Hochleistungs-Server, daher kann das Upgrade schon einige Minuten in Anspruch nehmen. Also ruhig mal eine Tasse Kaffee holen.

Laufwerke einrichten

Nach dem Software-Update ist es an der Zeit die USB-Laufwerke einzurichten. Dazu müssen die Festplatten natürlich erstmal angeschlossen werden. Also den Hub nun wieder mit dem  USB-Port vom Raspi verbinden. Nach einer kurzen Wartezeit kann mit folgendem Befehl geprüft werden ob die HDDs erkannt werden.

ls -l /dev/sd*

Darauf folgt eine Ausgabe wie diese:

brw-rw---- 1 root disk 8, 0 Dez 24 17:50 /dev/sda
brw-rw---- 1 root disk 8, 1 Dez 24 17:50 /dev/sda1
brw-rw---- 1 root disk 8, 16 Dez 24 17:51 /dev/sdb
brw-rw---- 1 root disk 8, 17 Dez 24 17:51 /dev/sdb1

Daran ist zu erkennen, dass sowohl die Festplatte sda sowie die sdb erkannt wurde. Die weiteren Einträge mit der “1” am ende zeigen die Partition auf der jeweiligen Festplatte.

Problem: Festplatten nicht gefunden

Dieser Abschnitt kann übersprungen werden, wenn die Festplatten erkannt wurden. Falls nicht, muss der Fehler gesucht werden. Eine detaillierte Ausgabe aller Laufwerke bekommt man mit:

blkid -o list -w /dev/null

Es besteht die Möglichkeit dass die Festplatten einen anderen Namen als “sd*” bekommen haben, zB “hd*”. Falls die Festplatten nun immer noch nicht erscheinen stehen noch folgende Befehle zur Verfügung um weitere Informationen zu sammeln: fdisk -l, df -l -h und lsusb. Alles entscheidend ist schlussendlich jedoch die Ausgabe von:

dmesg | grep usb

Sind hier eine oder mehrere Zeilen zu finden die etwas ähnliches wie “usb usb1: New USB device found, idVendor=1d6b, idProduct=0002” enthalten, so gibt es ziemlich sicher ein Problem mit dem Controller. Bevor softwareseitig nach Lösungen gesucht wird, welche sehr schwer zu finden sind, sollten erstmal die Festplatten überprüft werden.

Checkliste:

  1. Laufen die HDDs? LED zu sehen oder leises Surren zu spüren?
  2. Funktionieren die HDDs am PC?
  3. Schliesst man eine einzelne HDD direkt an einen USB-Port des Raspi, wird sie erkannt mit fdisk -l?

Entweder man erkennt nun den Fehler den man gemacht hat oder man wundert sich, dass die eine Festplatte direkt am Raspberry doch läuft. Zuvor am Hub jedoch nicht. Dann kann es helfen wenn die Platten nacheinander am USB-Hub angeschlossen werden. Andernfalls taugt der Hub nicht. Ist keine der beiden Möglichkeiten geben, wird die Problemlösung schwierig. Wahrscheinlich gibt es Probleme die Festplatten zu erkennen.

Partitionierung

Da die beiden USB-Festplatten nun laufen, wird es Zeit die Partitionierung vorzunehmen. Dazu wird mit folgendem Befehl die Partitions-Tabelle erstellt:

parted /dev/sda mklabel gpt

Die ausgegebene Warnung “Warning: The existing disk label on /dev/sda will be destroyed and all data on this disk will be lost. Do you want to continue? Yes/No?” mit “Y” bestätigen, sofern man sich bewusst ist, dass alle Daten auf der Festplatte danach verloren sind. anschliessend folgt der Befehl um die Partition zu erstellen:

parted -a optimal -- /dev/sda mkpart primary 2048s -8192s

Es werden bewusst einige Sektoren freigelassen. Vor der Partition sind die Sektoren frei für das RAID welches noch angelegt werden soll. Nach der Partition sind die freien Sektoren da, um etwas Spielraum zu haben, sollte später mal eine Platte ersetzt werden, jedoch keine baugleiche mehr gefunden werden.

Die zwei voran gegangenen Befehle müssen beide noch einmal für die zweite Festplatte wiederholt werden. Dabei “sda” durch “sdb” ersetzen.

Ergänzungen: https://wiki.ubuntuusers.de/Software-RAID/#Partitionierung

RAID anlegen

Nachdem die Laufwerke bereit sind kann nun das RAID angelegt werden.

mdadm --create /dev/md0 --auto md --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1

Damit wird unter /dev/md0 der Festplatten-Verbund angelegt. Genutzt wird Level1, also eine Spiegelung der beiden HDDs. Nun fehlt nur noch das Dateisystem. Dieses wird mit folgendem Befehl angelegt. Hier ein ext4.

mkfs.ext4 /dev/md0

Um das RAID zu mounten wird jetzt noch ein Einhängepunkt benötigt. Danach kann auch gleich gemountet werden.

mkdir /media/usb 
mount /dev/md0 /media/usb

Um den Erfolg zu testen und später die Laufwerke des Raspberry-Ubuntu-Server zu prüfen kann folgender Befehl genutzt werden:

mdadm --detail /dev/md0

Ergänzungen: https://wiki.ubuntuusers.de/Software-RAID/#RAID-anlegen

Eintrag in der /etc/fstab

Damit das RAID nach einem Neustart automatisch wieder eingebunden wird, muss noch ein Eintrag in der /etc/fstab gemacht werden.

nano /etc/fstab

Hier eine neue Zeile mit folgendem Inhalt einfügen.

/dev/md0   /media/usb   ext4   defaults   0   1

Anschliessend Datei speichern und schliessen und die fstab neu einlesen.

mount -a

Ergänzungen: https://wiki.ubuntuusers.de/fstab/

Samba Server installieren

Um den Raspberry-Ubuntu-Server letztendlich auch als Fileserver nutzen zu können fehlt noch der Samba Server. Hier wird ein einfacher offener File-Server erstellt. Samba könnte noch wesentlich detaillierter konfiguriert werden.

apt-get install samba-common samba

Damit wird das Software-Paket installiert. Im weiteren öffnen wir unsere RAID-Partition als Container für alle Dateien.

chmod 777 /media/usb

Danach wird die Config-Datei bearbeitet um den Raspi-Ubuntu-Server im Heimnetzwerk sichtbar zu machen.

nano /etc/samba/smb.conf

Hier nach der Zeile suchen mit workgroup = WORKGROUP und den Namen der eigenen Workgroup angeben. Zum Schluss noch folgende Zeilen ganz am Ende der smb.conf rein kopieren.

[md0 public HDD]
comment = Public Folder
path = media/usb
public = yes
writable = yes
create mask = 0777
directory mask = 0777
force user = nobody
force group = no group

Damit können alle Teilnehmer im Heim-Netzwerk auf den File-Server zugreifen. Wer Benutzer verwalten und Verzeichnisse beschränken will, findet auf wiki.ubuntuusers.de grundlegende Informationen und weiterführende Links.


Nun läuft der Raspberry-Ubuntu-Server als File-Server soweit. Die Grundlagen sind geschaffen. Weiter geht es dann im nächsten Teil mit den Optimierungen…

Veröffentlicht inProjekte

Neueste Beiträge

Themen: