- Werbung -


Hier könnte Ihre Werbung stehen. Interessiert? Sprechen Sie uns an.


Neueste Kommentare

Der Raspberry Pi als preisgünstige NAS

Druckversion

Hardware

  • 1 Raspberry Pi (Raspi)
  • 1 SD Karte (mind. 4 GB)
  • 1 SD Kartenleser
  • 1 USB-Festplatte mit eigener Energieversorgung und USB-Anschlusskabel
  • 1 Standard-Handyladekabel und -netzteil
  • 1 Netzwerkkabel

Software

Raspberry Pi Hardware SetupMein Ziel war es, einen einfachen Fileserver zu bekommen, auf dem ich die wichtigsten Backups meines Windows 8-Arbeitsrechners speichern kann. Auf besondere Sicherheitsvorkehrungen und den Luxus von RAID habe ich verzichtet. Ein einfaches Backup ist für meine Zwecke genug. Natürlich gibt es wunderbare Lösungen, z.B. von Synology, die haben allerdings auch ihren Preis: Eine sehr einfache Synology mit einer 2 TB Festplatte kostet um die 250 Euro. Der Raspberry Pi mit Kühlkörpern, einem Gehäuse, einer 8 GB SD-Karte und einer externen 2 TB Festplatte mit Netzteil hat mich summa sumarum 145,31 Euro gekostet. Kartenleser, Handyladekabel und Netzwerkkabel hatte ich noch rumliegen. Ganz klar ist: Ein Raspi ist nicht so schnell wie eine hochgepimpte Lösung (dazu am Ende des Artikels noch eine kurze Anmerkung). Allerdings verbraucht er wenig Strom und Platz und macht einfach Spaß!

Software vorbereiten

Nicht jede SD-Karte passt! Schaut man in die einschlägigen Foren, findet man immer wieder Einträge von Raspi-Besitzern, die der Verzweiflung nahe sind: ihr Kleiner will einfach nicht laufen. Oft ist der Grund eine inkompatible SD-Karte. Aber welche Karte kompatibel ist und welche nicht, da gibt es Theorie und Praxis. Viele berichten von Karten, die bei anderen kompatibel sind, aber bei ihnen nicht und umgekehrt.

Während man die SD-Karte vorbereitet, kann das Raspbian-Image schon mal heruntergeladen werden, deswegen als erstes den Download der knapp 800 MB großen ZIP-Datei anstoßen. Die drei weiteren Programme, die oben in der Liste stehen, kann man jetzt auch noch schnell herunterladen, sofern man sie nicht schon bereitliegen hat.

Jetzt muss die SD-Karte vorbereitet werden. Auch wenn sie neu ist, sollte man sie sicherheitshalber mit dem SD Formatter formatieren. Dieser sollte mit Administratorenrechten gestartet werden (Windows 7 und 8: Rechtsklick - als Administrator ausführen). Hinter dem Button Option verbergen sich zwei Einstellungsmöglichkeiten: Die Art der Formatierung und Format Size Adjustment. Bei ersterem konnte ich bisher immer auswählen, was ich wollte, am Ende wurde mir angezeigt, dass nur Quickformat funktionieren würde. Bei letzterem stellt man Format Size Adjustment = ON ein. Formatiert wird die Karte dann innerhalb von Sekunden. Wenn die Raspbian-Datei heruntergeladen ist, entpackt man das Wheezy-Image auf die Festplatte. Vorsicht, die ausgepackte Datei ist 2,8 GB groß! Nun öffnet man den Win32DiskImager, wählt die Image-Datei und den Laufwerksbuchstaben der SD-Karte aus und lässt das Image auf die Karte schreiben. Während das läuft, kann man den Raspi schon einmal zusammenstöpseln.

Hardware zusammenstecken

Mein Setup braucht weder Tastatur noch Maus noch ein Display für den Raspi. Da ich keinen Monitor oder Fernseher mit HDMI-Eingang habe, werde ich die gesamte Einrichtung vom Windows-Rechner aus per Konsole vornehmen.

Das Netzwerkkabel in den entsprechenden Anschluss stöpseln, die Festplatte per USB verbinden. Wenn die SD-Karte fertig beschrieben ist, schiebt man sie vorsichtig bis zum Anschlag in den SD-Kartenslot. Jetzt kommt zuerst die Festplatte ans Stromnetz, dann schließlich der Raspi. Wenn alles richtig verkabelt und die SD-Karte lesbar ist, beginnt jetzt die Lichtorgel auf der Platine: Unterhalb des hellblauen Soundanschlusses leuchten die diversen kleinen LEDs auf.

Zur Sache, Schätzchen!

Jetzt kommen wir zur Schreibarbeit. Dabei hilft puTTY. Zuerst muss man allerdings herausbekommen, welche IP im Netzwerk der Raspi hat. Ich habe mein Netzwerk über eine FritzBox laufen und habe einfach dort nachgeschaut. Über die Konsole geht es auch, kann aber zur Ratestunde führen. Man ruft die Windows-Konsole mit CMD auf und gibt arp /a ein. Jetzt werden alle im Netzwerk vergebenen IP-Adressen aufgeführt. Nur Geduld, eine wird schon die Passende sein. Wink Diese IP-Adresse gibt man in puTTY ein und sollte gleich darauf nach Login und Passwort gefragt werden. Wenn nicht, ist etwas schief gelaufen...

Die Standardanmeldung an den Raspi geht mit dem Benutzernamen pi und dem Passwort raspberry. Wer möchte, kann das natürlich ändern, aber ich mache das mal vorerst nicht. Man kann den Raspi jetzt, wie er selbst vorschlägt, konfigurieren. Eine Übersicht über die wichtigsten Einstellungen findet sich z.B. im Blog von Jan Karres. Ich würde auf jeden Fall die Konfiguration so ändern, dass die gesamte SD-Karte verwendet wird.

Der Raspi bekommt jetzt noch ein Update spendiert (wenn man nicht schon der Anleitung im eben erwähnten Artikel gefolgt ist). Das dauert ca. 15 bis 20 Minuten. Man gibt

sudo apt-get update && sudo apt-get upgrade

ein. Zwischendurch muss man auch noch einmal bestätigen, dass man die heruntergeladenen Pakete auch wirklich speichern möchte.

Mit

sudo apt-get clean

verabschiedet man sich anschließend wieder von den Installationspaketen, die man ja jetzt nicht mehr braucht.

Ich gebe meinem Fileserver einen neuen Namen. An dem Login am Anfang ändert das nichts, nur wird dann in der Konsole statt pi@paspberrypi $ der neue Name angezeigt, und weil ich meinen Server peanut nenne, erscheint jetzt pi@peanut $. Um das zu bewerkstelligen, öffne ich mit dem Texteditor Nano zuerst die Datei hostname und ersetze raspberry durch peanut:

sudo nano /etc/hostname

Dasselbe mache ich mit der Datei hosts.

sudo nano /etc/hosts

Das Passwort für Root setzen, wozu das wohl gut ist? Ich folgte einer Anleitung auf Wel!s Blog. Bis zu einem gewissen Punkt macht die auch Sinn. Knut Welzel richtet für den User "root" ein Passwort ein, das habe ich dann auch mal gemacht. Schadet nicht.

Umswitchen zum User root:

sudo su

ein neues Passwort vergeben:

passwd

Zurück zum Standarduser:

exit

Okay, so weit so gut. Knut Welzel installiert jetzt noch weitere Pakete. Für meine Zwecke würde wahrscheinlich acl ausreichen, die restlichen Pakete haben was mit grafischen Benutzeroberflächen zu tun, die ich momentan nicht verwenden kann. Aber ich habe mal alles mitinstalliert, vielleicht habe ich ja irgendwann ein Gerät mit HDMI-Eingang...

sudo apt-get install avahi-daemon acl imagemagick libjpeg62 libjpeg62-dev libpng12-0 libpng12-dev

Festplatte formatieren, partitionieren und ins System einhängen

Weiter geht es mit der Festplatte. Meine ist eine nagelneue WD Elements Desktop 2 TB. Um eventuelles Branding runterzuwerfen und eine sauber formatierte Festplatte für meine Zwecke zu haben, gehe ich einfach weiter wie Welzel vor.

Mit

sudo fdisk -l

lasse ich mir die Festplatte und SD-Karte anzeigen.

/dev/mmcblk0p1            8192      122879       57344    c  W95 FAT32 (LBA)
/dev/mmcblk0p2          122880    15523839     7700480   83  Linux

ist die SD-Karte,

Device Boot      Start         End          Blocks             Id  System
/dev/sda1          2048  3907024895  1953511424    7   HPFS/NTFS/exFAT

ist meine Festplatte (nach der Überarbeitung).

Mit

sudo fdisk /dev/sda1

kann ich in die Festplatte reinschauen und einige Änderungen vornehmen. Ich habe p eingegeben und mir damit die Partitionen anzeigen lassen. Tatsächlich fanden sich 4 Partitionen, die ich mit d löschen konnte (in der Konsole wird man selbsterklärend durch das Procedere geführt). Anschließend erstelle ich mit p eine primäre Partition mit der Nummer 1, durch drücken der Eingabetaste bei den nächsten beiden Eingabeaufforderungen wird der größtmögliche Teil der Festplatte verwendet. Danach drücke ich w, um eine Partitionstabelle erstellen zu lassen. Abschließend wird mit

sudo mkfs.ext4 /dev/sda1

die Plattte im Linuxformat formatiert.

Jetzt erstelle ich meinen neuen Ordner "share" für den Dateizugriff

sudo mkdir /share

Die Platte binde ich nun "fest" in mein System ein. Damit das nicht durcheinander kommt, wenn ich andere USB-Geräte anstöpsele, trage ich den  UUID (Universally Unique Identifier) in die Datei fstab ein. Erst mal muss ich die UUI rausbekommen, dazu rufe ich

sudo blkid

auf und kopiere mir raus, was mir für sda1 ausgegeben wird:

/dev/sda1: UUID="204250cb-28cc-4d11-b3fa-7606893f3125" TYPE="ext4"

Jetzt muss das in fstab eingetragen werden:

sudo nano /etc/fstab

und hier lege ich unten eine neue Sektion an:

# USB-Platte
UUID=204250cb-28cc-4d11-b3fa-7606893f3125  /share  ext4  defaults  0  0

Mit

sudo mount -a

wird die Platte jetzt im System eingehängt und wenn ich jetzt

sudo blkid -o list -w /dev/null

eingebe, sollte sie auch angezeigt werden (und siehe da, das wird sie:

/dev/sda1  ext4             /share         204250cb-28cc-4d11-b3fa-7606893f3125).

Benutzer und Benutzerrechte einrichten, öffentlich und private Ordner anlegen

Weiter geht es mit den Einstellungen für die Benutzer. Zuerst bearbeite ich die Datei adduser.conf

sudo nano /etc/adduser.conf

Hier ändere ich DHOME, so dass anstelle des home-Verzeichnisses mein Verzeichnis share verwendet wird.

# The DHOME variable specifies the directory containing users' home
# directories.
DHOME=/share

Etwas weiter unten ändere ich die Zugriffsrechte auf das Userverzeichnis so, dass nur der Besitzer zugreifen kann.

# If DIR_MODE is set, directories will be created with the specified
# mode. Otherwise the default mode 0755 will be used.
DIR_MODE=0750

Weiter unten finden sich noch zwei kommentierte Einträge, die durch entfernen der Raute aktiviert werden. Gleichzeitig kann man den Benutzern noch weitere Gruppen zuordnen, z.B. so

# Set this if you want the --add_extra_groups option to adduser to add
# new users to other groups.
# This is the list of groups that new non-system users will be added to
# Default:
EXTRA_GROUPS="dialout cdrom audio video plugdev games users netdev input"

# If ADD_EXTRA_GROUPS is set to something non-zero, the EXTRA_GROUPS
# option above will be default behavior for adding new, non-system users
ADD_EXTRA_GROUPS=1

Was einige der Gruppen im Einzelnen bedeuten, wird schön unter http://wiki.ubuntuusers.de/Benutzer_und_Gruppen beschrieben. Ich habe die oben genannten Gruppenzuordnungen einfach mal übernommen, wird schon gut sein. Wink

Jetzt lege ich neue Benutzer an. Sicherheitshalber verwende ich als Benutzername und Passwort meinen Windows-Benutzer, man weiß ja nie... nötig ist es aber wohl nicht.

sudo adduser username

Nachfragen nach Adresse und Telefonnummer ignoriere ich... Wink

Jetzt kommt noch das freigegebene Verzeichnis für den Zugriff von allen Rechnern im Netzwerk, das ich sinnvollerweise Public nenne.

sudo mkdir /share/Public

Da werden jetzt die Rechte gesetzt:

sudo chgrp -R users /share/Public
sudo chmod -R 776 /share/Public
sudo chmod g+s /share/Public
sudo setfacl -m d:user::rwx,d:group:users:rwx /share/Public

Man kann jetzt auch noch Unterordner erstellen, die nur für die Benutzer der Gruppe users zugänglich sind, z.B. einen Ordner Multimedia mit diversen Unterordnern.

sudo mkdir /share/Multimedia
cd /share/Multimedia
sudo mkdir Music Pictures Videos TV-Shows Playlists
cd /
sudo chgrp -R users /share/Multimedia
sudo chmod -R 774 /share/Multimedia
sudo chmod g+s /share/Multimedia
sudo setfacl -m d:user::rwx,d:group:users:rwx /share/Multimedia

Den Samba-Server installieren

Noch ein paar Tipps zu Samba:

1. Windows Workgroups (Arbeitsgruppen)

Seit ewigen Zeiten (genauer: seit Windows für Workgroups) vergibt Windows bei der Installation und Einrichtung des Netzwerkes einen Namen für die sogenannte Arbeitsgruppe, in der der Rechner Mitglied ist. Standardmäßig steht dieser Wert auf "WORKGROUP". Wurde bei der Windows-Installation dieser Standardwert geändert (z.B. in AUGE), so muss Samba diese mitteilen, ansonsten funktioniert der Zugriff von Windows auf die Samba-Freigaben nicht. Dazu sucht man in der Datei /etc/samba/smb.conf die folgende Zeile (ziemlich am Anfang unter "Global Settings")

workgroup = WORKGROUP

und ändert sie in

workgroup = AUGE

2. Schreibzugriffe auf die SD-Karte verringern

Standardmäßich legt Samba sein Logfile und /var/log ab. Da sich dieses Verzeichnis auf der SD-Karte befindet, verursacht jeder Eintrag in das File einen Schreibzugriff auf die SD-Karte. Da jeder Schreibzugriff unweigerlich die Lebensdauer der Karte verkürzt, sollte man deren Zahl so gering wie möglich halten. Dazu kann man das Logfile auf die Festplatte verlegen werden. Dies geschieht, indem man in der Zeile

log file = /var/log/samba/log.%m

(findet man weiter unten bei "Debugging/Accounting")

ändert in

log file = /share/log/samba/log.%m

Unter Share hatten wir ja unsere USB-Festplatte eingehängt. Und damit wird das Logfile jetzt auf die Platte geschrieben.

3. Schreibzugriffe auf Home-Verzeichnisse ermöglichen

Wer das/die Home-Verzeichniss/e zum Schreiben freigeben will, muss noch die Zeile

read only = yes

(findet man ziemlich am Anfang des Abschnittes "Share Definitions")

ändern in

read only = no

Hat man alle Änderungen durchgeführt speichert man die smb.conf ab und beendet nano. Damit Samba die Änderungen nicht erst beim nächsten Start des Raspberrys übernimmt gibt man auf der Kommandozeile noch

sudo service samba restart

ein. Damit wird der Samba-Server neu gestartet und übernimmt die eben eingetragenen Änderungen.

Anmerkung von Jürgen Thau, danke dafür! mr

Und jetzt wird der Samba-Server installiert, ich habe auch die grafische Benutzeroberfläche swat mit installieren lassen, obwohl sie mir im Moment nix nutzt... sag niemals nie...

sudo apt-get install samba samba-common-bin swat

Okay... jetzt muss Samba noch angepasst werden.

sudo nano /etc/samba/smb.conf

aufrufen und unten für die neu angelegten Ordner folgende Abschnitte einfügen:

[multimedia]
        path = /share/Multimedia
        writeable = yes
        browseable = yes
        create mask = 0664
        directory mask = 0775
        force user = nobody
        force group = users

[public]
        path = /share/Public
        comment= Public
        writeable = yes
        browseable = yes
        create mask = 0666
        directory mask = 0777
        force user = nobody
        force group = users
        guest ok = yes

Zu guter Letzt habe ich noch einen neuen Samba-User angelegt. Hier habe ich auch wieder meinen Windows-User genommen, man weiß ja eben nie...

sudo pdbedit -a -u Benutzername

Dieser User wird bei der Verbindung mit dem eingeschränkten Ordner Multimedia abgefragt. Für jeden Benutzer im Netzwerk muss man hier also einen Samba-Benutzer anlegen.

Und jetzt noch ein Test...

testparm

Jetzt müsste man alles angezeigt bekommen, was man eben in der smb.conf geändert hat (und noch mehr). Samba neu starten mit

sudo service samba restart

Tadaaa!

Raspberry Pi Und ab jetzt war bei mir alles wie durch Wunderhand erledigt... Alle Rechner im neuen Netzwerk, egal ob Windows 7, Windows 8, Linux Mint oder mein Androide Nexus 7, hatten nach einem Neustart der Rechner Zugriff auf die kleine Erdnuss. Die steht jetzt, in ein Gehäuse verpackt und mit Kühlkörpern ausgestattet, in einer Ecke und leuchtet fröhlich aus allen LEDs. Wenn irgendwann ein neuer Monitor mit HDMI-Eingang bei mir einzieht, kann ich auch einmal die diversen grafischen Benutzeroberflächen ausprobieren und muss nicht immer nur auf der Konsole rumhacken! So soll Swat im Browser des Raspi mit http://peanut:901 (oder wie auch immer man sein NASchen nennt) aufgerufen werden können und einige Konfigurationsmöglichkeiten bieten.

Geschwindigkeit

Es gibt diverse Flaschenhälse für diesen Miniserver. Als erstes hatte ich ein Backup mit Acronis erstellt. Knapp 250 GB Daten hat das zusammengerafft, die fast 8 Stunden gebraucht haben, bis sie abgelegt waren. 250 MB Daten vom Adroiden auf das Netzwerk haben 10 Minuten gebraucht. 250 MB vom Windows-Rechner dagegen nur gute 20 Sekunden. Zum einen habe ich nur ein 100 Mbit/s LAN als Verbindung, dann hängt die Festplatte an einem USB 2.0-Anschluss. Die WLAN-Geschwindigkeit von Android-Geräten ist auch nicht gerade der Knüller, hier muss ich mich mit 65 Mbit/s begnügen. Trotzdem, das Streaming von Videos in HD-Qualität auf das Nexus 7 läuft ruckelfrei. Brauche ich aber eigentlich gar nicht, so viel Zeit verbringe ich nicht mit Video & Co. Smile

Stromverbrauch

Dem Raspi der zweiten Generation wird ein Stromverbrauch von 30 kWh im Jahr nachgesagt. Ein überschaubarer Wert. Ungefähr das Dreifache habe ich gerade durch die Umrüstung von Halogen-Strahlern auf LEDs gespart. Für die externe Festplatte habe ich keine brauchbaren Angaben gefunden, hier müsste ich ein Strommessgerät verwenden. 

Erweiterbarkeit

Wer ein Sicherheitsfanatiker ist, was Backups anbelangt, hat z.B. unter Windows mit Acronis sehr einfach umsetzbare Möglichkeiten. Zum Hardwaresetup käme noch eine zweite Festplatte dazu, in Acronis würde man auf diese zweite Festplatte von den Backups eine Sicherungskopie erstellen lassen. Das geht natürlich auch mit anderer Software oder händisch, der Fantasie sind keine Grenzen gesetzt.

Fazit

Wenn man es mal gemacht hat, weiß man, dass es leicht geht. Wink Zugegebenermaßen habe ich zwei Anläufe gebraucht, auch weil ich mir diverse Anleitungen im Netz durchgelesen und dann alles durcheinander gebracht habe. Mit dem Ergebnis bin ich aber mehr als zufrieden. Wenn man nicht gerade gigabyteweise Dateien in kurzer Zeit rüberschaufeln, sondern ganz "normale" Dateien ablegen möchte, läuft das Ganze sehr gut und es erleichtert mir die Arbeit jetzt doch enorm, nachdem ich mit meinem Heimnetz-Mischmasch aus Windows XP, Windows 7 und Windows 8 immer wieder Probleme bei den Freigaben hatte (mal geht es, mal nicht, je nach Mondphase und Wasserstand des Nil). Mit dem Raspberry Pi werde ich auf jeden Fall noch andere Projekte angehen, z.B. eine selbstgebaute Digitalkamera ... aber das ist eine ganz andere Geschichte! Wink

NAS-Selbstbau

Wir wollen uns in der RG 600 ein solches auf einem RG-Treffen zusammenbauen - jeder, der Interesse hat.

Pepo

Wir bauen uns ein NAS - Vorbereitung/Material

Bernd & ich arbeiten gerade an der Vorbereitung des großen Ereignisses und haben zur Orientierung für alle Interessierten eine Liste erstellt, die den heutigen Stand der Vorbereitung wiedergibt.

Was die Zeilen „heruntergeladenes Image von Raspbian (u.a.?)“ und „ein vorkonfiguriertes Image für die SD-Karte, um evtl. Probleme beim Download zu vermeiden“ betrifft, ist uns nicht ganz klar, welche Überschneidungen  vorliegen. Und – es hat sich noch niemand bereit erklärt, die Erstellung zu übernehmen!

Material

wird bereitgestellt von

Mehrfachsteckdose(n) – jeder Teilnehmer braucht 3 Anschlüsse)

PePo (2)

Bernd (1)

Renate (1)

am besten vermutlich jede/r TeilnehmerIn für sich

Kabeltrommel

Bernd

UMTS-Router (wg. DHCP)

Jürgen

Switch

Jürgen

 

LAN-Kabel

Jürgen | PePo

SD-Kartenleser (mit µSD-Adapter)

PePo

heruntergeladenes Image von Raspbian (u.a.?)

 

Fotokamera für Dokumentation

Jürgen | PePo

Schraubenzieher und sonst. Werkzeug...und

PePo

ein vorkonfiguriertes Image für die SD-Karte, um evtl. Probleme beim Download zu vermeiden.

 

Notebook

PePo

RG-PC

PePo (von Arvid)

Monitor mit HDMI-Anschluß resp. Adapter

 ?

Beamer

Jürgen (?)

 

 

 

 

 

 

 

Das vorkonfigurierte Image

Das vorkonfigurierte Image enthält natürlich auch das Raspbian-Image (dieses ist Voraussetzung, dass man überhaupt was vorkonfigurieren kann). D.h. man muss zunächst ein Raspbian-System aufsetzen und lädt dann alle notwendigen Pakete runter, die in Martinas Artikal aufgeführt sind. Diese so vorbereitete SD-Karte kann man dann vervielfältigen und jeder installiert/konfiguriert damit sein persönliches NAS.

Das geht aber nicht ohne den RasbPi?

Wenn ich Martinas Artikel richtig verstanden habe, dann geht das Herunterladen der zusätzlichen Pakete aber nur mit dem RasbPi selbst, denn es sind ja Kommandos an ihn aufgeführt, mit denen er das dann macht.

D.h. ohne zusätzliche Kenntnis, wie man die Pakete manuell herunterlädt - und die Paketquelle, die das Rasbian verwendet, dann auf lokal umstellt, kann man sie auch nicht in auf die Karte spielen - es sei denn, man nimmt einen Großteil der Installation (nämlich den Download und die Integration der Pakete) schon vorweg und klont dann das so entstandene Raspbian-Betriebssystem.

Sehe ich das richtig so?

 

 

Ja, genau, diese Vorbereitung

Ja, genau, diese Vorbereitung geht nur mit einem Raspi. Allerdings wird da keine Paketquelle auf lokal umgestellt. Man führt alle Schritte zum Paket-Download aus, so wie sie in dem Artikel beschrieben sind. Das Ergebnis ist ein vorbereitetes Raspbian. Das wird dann nur noch für alle kopiert. Der Referent zeigt das am Beispiel seines Vorführgerätes und dann wird die SDcard gecloned. Die Alternative, alle Pakete runterzuladen und dann lokal bereitzustellen, damit alle Anwesenden das vor Ort selber machen, ist halt entsprechend aufwändiger.