Eigener NAS- & Media-Server mit Linux erstellen

Wäre es nicht praktisch, wenn man mit seinem PC, Smartphone und TV-Geräte die Daten von einem zentralen Ort ablegen und abrufen könnte?
Hier in dieser Anleitung basteln wir uns einen eigenen Server, welcher als zentraler Speicherort für Daten fungieren soll und gleichzeitig ein Mediaserver zum streamen von Filmen, Bildern und Musik übers Heimnetzwerk ist.
Wer möchte, kann den Zugriff auch über das Internet gewähren und damit seine Daten von unterwegs abrufen.
Zusätzlich werden wir den Server mit einigen Tools ausstatten, das der Server auch Aufgaben übernehmen kann, welche über das Internet laufen. Dazu gehört z.B. ein automatisches BackUp einer Cloud.
Da jeder andere Anforderungen hat und jeder ein anderen Rechner, basiert diese Anleitung auf meinem Aufbau und mit meinen Erfahrungen.
Es kann immer vorkommen, dass die Unterstützung für Hardware und Software sich ändert und Prozesse (z.B. die Einrichtung eines Programms) sich ändert.
Das Tutorial ist im Januar 2018 entstanden und hat zu diesem Zeitpunkt funktioniert.

Warum nicht einfach ein Fertiges NAS-System kaufen oder diverse Cloud-Dienste nutzen?
Ein NAS-System kaufen wäre teuer und zum Teil unsicher (wenn man aktuellen Medienberichten glauben darf).
Dinge in die Cloud schieben ist dabei noch unsicherer und die Anbieter sollten private Daten von uns nie erhalten.
Zudem reicht dort der Speicherplatz nicht aus (es sei denn, man bucht ein sehr teuren Tarif) und sämtliche Daten müssen über die Internetleitung geschaufelt werden.
Wenn man dann noch daran denkt, das Deutschland in Sachen Internet ehr schlecht da steht, fliegt die Cloud definitiv raus.

Was will ich haben?
Ein Linux-basierter Server, welcher meinen Windows- und Linux-Systemen ein zentralen Speicherort zur Verfügung stellt (NAS).
Zusätzlich soll er für Smartphones, Tablets, TV-Geräte (und alles was sonst noch unterstützt wird) ein Mediacenter bereitstellen, damit der Zugriff auf Filme, Bilder und Musik einfacher fällt (und ggf. schöner ausschaut).
Der Mediaserver sollte dabei die Rolle eines kompletten Streaming-Servers übernehmen können und / oder via extra Programm ansteuerbar sein.
Soweit alles läuft, soll der Server meine Cloud (NextCloud / ownCloud) einmal im Monat sichern.
Damit der Server schnell ist, aber dennoch genug Speicherplatz hat, soll die SSD für das System und Programme genutzt werden und die HDDs zu einer großen Festplatte verbunden werden und als Speicherort für alle Daten genutzt werden.
Da der Rechner unter einem TV steht, soll Steam für InHome-Streaming installiert werden, damit ich meine Spiele auch in 4K auf einem großen Bildschirm genießen kann.

Was hab ich dafür an Hardware?
Ein selbst gebauter Rechner.
Motherboard: MSI A88XM-E45
CPU: AMD A8-6600K
RAM: 8GB
SSD: Samsung 840 Evo (256GB) => Für das System und Programme
HDD: 2x WesternDigital 4TB-Platten => Für Daten
 

Mein Tipp an euch: Ihr könnt die Hardware frei bestimmen. Die Anleitung sollte für alle Systeme funktionieren, auf denen das Linux-System ohne Probleme installiert werden kann.
Es ist egal wie viel Rechenleistung der Rechner hat, soweit es für dich ausreichen ist.
Ihr könnt ein HighEnd-System nutzen, aber das Ganze auch mit einem Raspberry Pi umsetzen.


Legen wir los!

Ich habe das ganze hier in mehrere Kapitel unterteilt, damit du selbst bestimmen kannst, was du brauchst und was nicht.
1. Das System installieren und die passenden Treiber auswählen
2. Die Festplatten zu einer großen verbinden (LVM)
3. Einen Samba-Server installieren
4. Kodi als Media-Center installieren
5. NextCloud installieren
6. Steam für InHome-Streaming installieren


1. Das System installieren

Wir nutzen hier Linux!
Wieso?
Es ist kostenlos, ausgelegt für Server-Dienste und das System kann (meist) ohne große Probleme auf die nächste Hauptversion geupgradet werden.
Das System braucht nicht viel Ressourcenanforderungen und kann auch angepasst werden. Wem eine reine Konsolenvariante reicht, muss sich nicht mal ein Desktop installieren.
Zum Teil sind die Tools für Netzwerkdienste bei Linux einfacher und besser als auf Windows.
Davor war Windows installiert und Microsoft schafft es immer mit Bravour, das Windows mit Updates zu zerstören. Damit war das System weg und ich musste meine Daten mühselig retten.
Ich habe mich für Linux Mint entschieden.
Warum?
Es ähnelt vom Aufbau und Design sehr an Windows, bringt schon eine Menge an Tools mit und ist einfach zu bedienen.
Auch ist es meist aktuell und Updates werden zeitnah verteilt. Damit sollte der Server auch recht sicher sein.
Durch den Desktop ist es auch möglich einen Webbrowser zu verwenden, so kann man z.B. problemlos Netflix, Amazon Video & Co. Schauen oder sich einen Livestream ansehen, soweit der Fernseher es nicht unterstützt.

Für die Installation muss ein USB-Stick her halten, welcher mit Hilfe von UnetBootin mit der aktuellsten Linux Mint Version (18.3) ausgestattet wurde.
Das geht recht einfach und schnell.
Einfach das Programm downloaden, starten, die gewünschte ISO und den USB-Stick auswählen. Danach ein beherzten Klick auf Start und ein paar Minuten warten.
Solange der Stick nun erstellt wird, müssen wir den Rechner vorbereiten.
Das muss jetzt nicht bei jedem Rechner gemacht werden, ich muss es nur tun, da sonst nichts läuft.

Ich muss das BIOS des Motherboards auf die aktuellste Version updaten. Das geht recht einfach über das BIOS direkt mit einem USB-Stick und der passenden BIOS-Datei.
Wie genau das geht werde ich hier nicht erklären, da die BIOS / UEFI-Versionen der Hersteller gerne unterschiedlich Aufgebaut sind. Schau dazu in dein Handbuch. Dort steht es garantiert drin.
Zusätzlich muss ich die Energiespareinstellungen und den Schnellboot sowie Windows-Funktionen des Boards deaktivieren. Sind diese aktiv, kann unter Umständen Linux nicht booten.
Mein Tipp: Wer ein leises System haben will, rüstet es mit vernünftigen Kühlern aus und stellt die Lüfterkurve über das BIOS / UEFI passend ein.

Nun sollte der Stick erstellt sein und Linux kann installiert werden.
Dazu stecken wir den USB-Stick am Rechner an und drücken F11 (in meinem Fall! Bei dir kann es eine andere Taste sein!) um das Bootmenü zu öffnen.
Dort wähle ich den USB-Stick aus, nutze aber nicht die UEFI-Methode.
Es erscheint der GRUB-Bootloader und wir können zwischen den Bootmöglichkeiten auswählen (Normal, Erweiterter Startmouds, System installieren,…).

WICHTIG: Bei mir bootet das System nicht korrekt vom Stick, da die CPU und das Board zicken macht.
Probiere bei dir als erstes das booten der Default-Version. Gelingt dies, ist alles super, falls nicht, müssen wir etwas tricksen.
Startet das System von alleine neu oder es zeigt ein Fehler an, probiere folgendes:
Drücken im GRUB-Bootloader >>E<< um den Startbefehl anzupassen. In dem nun erscheinenden Editor ersetzen wir das quiet splash durch nomodeset und drücken F10. Nun sollte das Live-System booten. Wer möchte kann nun (sofern eine Internetverbindung besteht) die aktuellsten Updates herunterladen und einspielen.
Diese sind aber nur Temporär vorhanden! Soweit wir das System gleich installieren, ist das aber vollkommen ok.

Nun klicken wir auf „Install Mint“ auf dem Desktop und lassen Linux Mint 18.3 installieren.
Klickt euch dazu durch das Setup und gebt eure gewünschten Informationen und Einstellungen an. Beim Installationsort des Systems wählt ihr eure Festplatte aus, auf die das System installiert werden soll. Hier in meinem Fall nutze ich dafür die SSD.
Soll ich LVM aktivieren?
Soweit du die Festplatte auf der das System liegt erweitern möchtest, aktiviere LVM und stelle die gewünschten Parameter ein. Installierst du nur das System auf eine Festplatte und die Daten liegen auf einer anderen, so brauchst du LVM jetzt nicht direkt installieren. Das machen wir im zweiten Schritt direkt im System.
Da ich auf meine SSD nur das System installiere, habe ich LVM nicht direkt installiert.
Soll ich meine Daten verschlüsseln? Kannst du, wenn du auf Sicherheit stehst. Ist eine freiwillige Option.

Ist die Installation durchgelaufen, installiere die aktuellen Updates des Systems. Geh dazu in die Updateverwaltung (Schutzschild rechts unten in der Taskleiste) oder nutze per Befehlszeile die Befehle sudo apt-get update und sudo apt-get upgrade.
Sind alle Updates installiert, kümmern wir uns um Probleme welche das System noch hat.

Zuerst wählen wir die passenden Treiber aus. Dazu klicken wir auf „Menü“ (links unten) und geben in der Suche „Treiber“ ein. Wir öffnen die Treiberverwaltung und wählen dort die jeweils passenden Treiber aus.
Ich kann hier nun einen amd64-microcode-Treiber auswählen. Erkundigt euch im Internet, welcher Treiber für deine Hardware die besten sind. Zum Teil sind die Open Source besser als die von den Herstellern direkt sind.
Mit einer Intel-CPU sollten passende Intel-Treiber zur Verfügung stehen und wer eine extra Grafikkarte verbaut hat und diese richtig erkannt wurde, sollte die passenden Treiber zur Auswahl haben. Nachdem dann die Änderungen angewandt wurden, ist unter Umständen ein Neustart notwendig. Hinweis: Sollten noch Probleme bestehen, damit Linux Mint nicht korrekt booten kann, nutze wieder den „Nomodeset“-Modus oder geh über den Recovery-Modus wieder auf den Desktop.
-> Falls ihr noch weitere Probleme habt, behebt diese noch. Google, IxQuick, DuckDuckGo, Bing, …. sind dabei deine Freunde!
=> Erst wenn dein System korrekt läuft, solltest du mir dieser Anleitung weiter machen.

Ist alles behoben, starten wir das System einmal neu, das es mir den richtigen Einstellungen bootet.
Tipp: Vergebe nach dem Neustart dem Rechner eine feste IP-Adresse, soweit dies noch nicht getan wurde. Somit bleibt die IP-Adresse fest vergeben und du hast immer Zugriff auf den Server mit der gleichen IP-Adresse.

Gab es Probleme bei mir?
Ja.
Ich musste im Grub Bootloader sudo nano /etc/grub.conf den Befehl radeon.dpm=0 noch hinzufügen. Damit wird nicht nach einer extra AMD-Grafikkarte gesucht, sondern direkt die in der CPU verbauten Grafikeinheit gentuzt.
Zusätzlich musste ich in den Recoverymodus und dort alle Pakete reparieren lassen und das System bereinigen lassen.
Erst dann konnte ich Linux Mint ohne Probleme booten.


Schritt 2: Die Festplatten zu einer großen verbinden (LVM)

Da wir den Endnutzern nur schwer beibringen können, auf die Auslastung der Festplatten zu achten und dementsprechend ihre Daten zu verteilen, wäre es doch viel schöner, wenn wir alle Platten zu einer großen zusammenfassen könnten.
Hier könnten wir RAID verwenden, doch nicht alle Motherboards unterstützen RAID, laufen nicht korrekt auf jedem System oder die Einrichtung ist sehr schwer.
Bei meinem Board ist der RAID-Controller nur für Windows ausgelegt und passende Treiber gibt’s nicht für Linux. Da ich auch keine Lust habe, mir hier etwas zusammen zu basteln, nutze ich kein RAID. -> Wer RAID verwenden möchte, kann das sehr gerne tun!
Ich halte hier keine davon ab es zu nutzen.

LVM (Logical Volume Manager) hilft uns dabei, die beiden Festplatten miteinander zu verbinden. Wer möchte kann auch mehrere Festplatten (3, 4 oder 5) miteinander verbinden.
Das Ganze ist Softwarebasierend, was bedeutet, dass wir auch mal das Board im Notfall tauschen können, ohne den Zugriff zu den Daten zu verlieren.
Auch können Daten nach einem Systemcrash (angeblich) einfacher wiederhergestellt werden.
Eine genaue Erklärung wie LVM funktioniert, findest du z.B. auf Wikipedia.
Hier in meinem Fall werden wir zwei 4TB Festplatten miteinander verbinden, damit wir am Ende ganze 8TB Speicherplatz haben.

LVM Einrichten und Festplatten einbinden:

WICHTIG: Bei der Erstellung werden sämtliche Daten auf der / den Festplatte(n) vernichtet! Sichere davor ALLE Daten!
1. Öffne ein neues Terminal-Fenster
2. Nun müssen wir die Festplatten zur Verwendung festlegen.
Dazu den Befehl:
sudo pvcreate /dev/sdX1
Das X steht dabei für die Festplatte, welche genutzt werden soll.
Bei mir sieht der Befehl wie folgt aus:
sudo pvcreate /dev/sdb1 UND sudo pvcreate /dev/sdc1
Da ich zwei Festplatten habe, muss ich den Befehl für beide Platten ausführen.

3. Nun müssen wir eine Gruppe erstellen, zu der die Festplatten zugeordnet werden.
sudo vgcreate GRUPPENNAME /dev/sdX1 /dev/sdY1
Hier kann ein freier Gruppenname vergeben werden und X-beliebige Festplatten hinzugefügt werden. Achtet dabei auf die korrekte Festplattenangabe.
Beispiel:
sudo vgcreate GRUPPENNAME /dev/sdb1 /dev/sdc1


4. Nun legen wir die Festplatte an
sudo lvcreate –L FESTPLATTENGRÖßE GRUPPENNAME FESTPLATTENNAME
Hierbei muss bei FESTPLATTENGRÖßE die Gesammtgröße der neuen Festplatte angegeben werden. Bei mir ist es 7,27t, damit die vollen 8TB genutzt werden.
Bei Gruppenname muss die Gruppe aus Schritt 3 angegeben werden.
Der Festplattenname kann frei definiert werden. Die Festplatte wird dann unter diesem im Explorer zu finden sein.

5. Jetzt muss die Festplatte nur noch Formatiert werden, denn sie besitzt aktuell noch keine Formatierung.
Dazu nutzen wir folgenden Befehl:
sudo mkfs.FORMAT –L FESTPLATTENNAME /dev/GRUPPENNAME/FESTPLATTENNAME
Bei FORMAT kann nun das Format angegeben werden, was genutzt werden soll.
Meine Empfehlung ist hierbei das Format NTFS, da es auch problemlos von Windows gelesen werden kann.
Beispiel:
sudo mkfs.ntfs –L HDD /dev/Gruppenname/Hdd
Dieser Vorgang kann jetzt je nach Festplattengröße sehr lange dauern, da er sämtliche Sektoren nun mit Nullen (0) überschreibt. (8TB ~ 13h!)

Nun haben wir erfolgreich die Festplatten kombiniert und können auf den Speicher ganz normal zugreifen.
Prüfe mit einer Testdatei, ob das Lesen und Schreiben auf die Platten funktioniert.


Schritt 3: Einen Samba-Server (SMB) installieren

Damit wir die Ordner im Netzwerk freigeben können, brauchen wir ein Samba-Server.
Dieses Protokoll versteht auch Windows (und wers nutzt Mac) und nur mit Samba können wir von Windows aus auch auf die Platten zugreifen.
Wer möchte kann damit auch mit seinem Smartphone auf den Server zugreifen. Auch andere Dienste und Geräte unterstützen Samba. Damit ist es uns auch möglich z.B. netzwerkfähige Lautsprecher mit Musik zu versorgen.
Um Samba in der einfachsten Methode zu Installieren und sich nicht mit den Konfigurationsdateien herumärgern zu müssen, ist folgendes Vorgehen meiner Meinung nach am besten:


1. Installiere folgende Pakete über die Paketverwaltung oder per Terminalbefehl:
samba, system-config-samba, Nemo-share, Python-samba, Python-smbc, samba-common, samba-common-bin, samba-libs und libwbclientd
2. Starte das System nun einmal neu (unter Umständen sind die Dienste noch nicht ganz gestartet, was ein Neustart beheben kann)
3. Wechsel nun auf deine Festplatte, welche für die Daten vorgesehen ist mit dem Dateibrowser
4. Klicke auf die Festplatte oder ein bestimmten Ordner mit Rechtsklick
5. Gehe in die Eigenschaften
6. Klicke auf den Tab „Ordner freigeben“
7. Gebe den Ordner / Laufwerk frei, setze ein Freigabename (z.B. Server oder HDD) und setze Lese + Schreibrechte für andere Nutzer.
8. Schließen
Nun können andere Samba-fähige Geräte sich mit dem Server verbinden.
Dazu benötigst du die IP-Adresse des Gerätes und deine Logindaten (Benutzername + Passwort).
Um deine Daten vor Gästen zu schützen, sofern du kein Gast-WLAN besitzt, empfehle ich die Gast-Funktion der Freigabe nicht zu verwenden! An sonst kommt jeder ohne Login auf deine Daten.


Schritt 4: Kodi als Mediaserver und Mediacenter installieren

Damit wir auf dem Server direkt und auch von anderen Geräten aus auf unsere Daten über ein schönes Mediacenter zugreifen können, werden wir Kodi auf dem Rechner installieren.
Kodi ist ein kostenloses Mediacenter, welches vor allem für Fernseher ausgelegt ist und durch Plugins erweitert werden kann.
Unterstützt ein Abspielgerät kein Kodi, kann per Webbrowser Kodi aufgerufen werden.

Warum Kodi und nicht z.B. Plex?
Kodi ist komplett kostenlos, braucht keinen Login über ein Service, der nicht auf unserem System läuft und kann zur Not mit Plex-Plugins erweitert werden.
Kodi ist recht einfach installiert und aktuell gehalten, wenn man die Paketquellen hinzufügt.
Das werden wir hier auch tun.

Wir nutzen hier die offiziellen Releasepakete und keine Nightly-Builds.
1. sudo apt-get install software-properties-common
2. sudo add-apt-repository ppa:team-xmbc/ppa
3. sudo apt-get update
4. sudo apt-get install kodi
5. Kodi wird nun installiert und kann in wenigen Sekunden über das Menü gestartet warden
Wer möchte kann jetzt Kodi auf sämmtlichen Geräten installieren, die Zugriff erhalten sollen.
Kodi funktioniert wunderbar auf Windows, Linux, Xbox One, Android (Smartphone + Tablet), FireTV‘s und Android TV.
Unterstützt dein TV-Gerät oder z.B. Konsole Kodi, kannst du es dort ebenfalls installieren.

Nun müssen wir noch die Freigabe der Daten erlauben, Speicherorte bestimmen und den Webservice aktivieren.
1. Starte Kodi
2. Wechsel in die Einstellungen (Zahnrad links oben)

3. Zuerst  ändern wir in der Benuteroberfläche die Sprache bei Regional

4. Dann gehen wir zurück und wählen System aus, gehen dort auf „Internetzugriff“ und aktivieren diesen. Zusätzlich solltet ihr ein Loginn hinterlegen.
WICHTIG: Ohne Portfreigaben am Router ist Kodi NICHT über das Internet erreichbar! Ihr seid also sicher!

5. Nun gehen wir auf Dienste und dort in den Reiter Steuerung. Hier aktivieren wir die Steuerung per Webinterface. Hinterlegt auch hier ein Login!

6. Nun Aktivieren wir noch UPnP / DLAN und geben dort die Bibliotheken frei und erlauben die Fernsteuerung.

Kodi ist nun einsatzbereit. Ihr könnt Kodi nun so anpassen wie es euch gefällt und auf anderen Systemen Installieren.
Gebt als Medienpfad den Server mit der IP-Adresse und dem passenden Freigabeordner an.


Schritt 5: NextCloud installieren

Warum NextCloud?
Ich nutze NextCloud als private Cloud. Bevor ich Google, Microsoft oder sonstigen Anbietern meine Daten anvertraue, hoste ich diese lieber selbst und zusätzlich verschlüsselt. Das ist aber am Ende ein anderes Thema.
Ihr könnt gerne eure Cloud-Anbieter hier installieren, die Funktionsweise ist identisch.
1. Öffne die Anwendungsverwaltung
2. Suche nach NextCloud (oder deinem Cloud-Anbieter)
3. Suche das passende Paket
4. Drücke auf Installieren
5. Fertig!
Nun kannst du beim ersten Starten dein Account hinterlegen und ein Speicherort definieren. Das war’s schon 🙂

Hinweis: Aktuell ist in dem aktuellen Client (2.3.3) ein Bug vorhanden, der es nicht erlaubt, auf LVM-Festplatten den Speicherort zu definieren. Man kann ihn zwar manuell angeben, aber es kann nichts geschrieben werden.
Ein Forumeintrag habe ich HIER schon erstellt.


Schritt 6: Steam für InHome-Streaming installieren

Da mein Server unter einem TV steht und damit als Wiedergabequelle verwendet werden kann, kann auch über Steam gezockt werden.
Ist doch schön seine Lieblingsspiele in 4K auf einem großen Bildschirm aus zu zocken, wären dessen der Rechner mit voller Kraft und lauten Lüftern in einem anderen Raum arbeitet (was wir zum Glück nicht hören können :D)
Steam funktioniert wunderbar auf Linux und einige Spiele sind darauf schon lauffähig. Da aber der Server keine Grafikkarte besitzt, nutzen wir lieber die Streamingfunktion, bevor wir in 720p und niedrigsten Grafikeinstellungen zocken.
Steam ist auch über die offiziellen Paketquellen verfügbar.
1. Öffne die Anwendungsverwaltung
2. Suche Steam
3. Installiere Steam
4. Starte Steam (Das erste Mal werden ca. 220MB heruntergeladen!)
5. Logge dich mit deinem Account ein
6. Aktiviere InHome-Streaming in den Einstellungen + auf deinem Gaming-PC!
7. Nun kannst du Spiele streamen lassen
Mein Tipp: Stell Steam in den Einstellungen bei Oberfläche auf Deutsch, da es Standardgemäß auf Englisch ist. Wer möchte kann auch direkt Steam im BigPicture-Modus starten.

 

 


Nun ist unser Server Einsatzbereit!

Wir können nun auf die Daten zugreifen, diese über das Internet synchronisieren und drauf zocken.
Was will man mehr?!
Und will man was mehr, dann kann man es sich recht einfach installieren 😉
Wer möchte kann z.B. Fernwartungssoftware wie ein SSH-Server oder TeamViewer installieren, um von einem anderen Rechner aus direkt auf den Server zugreifen zu können.
Dies ist sehr sinnvoll, soweit der Server z.B. kein Monitor, Maus und Tastatur besitzt und im Keller steht.

Ich hoffe die Anleitung hat dir bei der Einrichtung geholfen.
Ich würde mich sehr über Feedback und eure Erfahrungen sowie Fehlerbehebungen in den Kommentaren freuen.
Hinweis: Ich kann euch leider nicht bei jeder Fehlerbehebung helfen, da ich selbst noch ein Linux-Neuling bin.

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.