Mastodon katzenjens' Technik-Blog: Preiswertes Selbstbau NAS mit Raspberry PI4 Mastodon

13.11.2021

Preiswertes Selbstbau NAS mit Raspberry PI4

Da mein altes Western Digital NAS inzwischen am Ende seiner Lebensdauer angekommen ist, musste etwas neues her. Diesmal aber etwas, was man selbst managen kann und nach eigenem Gusto erweitern kann.

Das Prinzip wäre recht einfach. Raspbian installieren. Samba drauf, fertig... Soviel zur Theorie. In der Praxis ist der Durchsatz eher mäßig. Man kann es durch einige Tweaks etwas besser hinbekommen, aber ich hatte da wenig Glück. Lesen klappte zwar mit 1 GBit übers Netzwerk. Aber Schreiben war so eine Sache. 700MBit war Ende der Fahnenstange, meist sogar bedeutend weniger. Ach ja, stabiles Netzteil ist schonmal Pflicht bei über USB gespeisten Geräten. Theoretisch könnte man auch einen Hub verwenden. Der braucht dann aber auch wieder Saft. Und jede Kabelverbindung ist eine zusätzliche Fehlerquelle. Puristen versorgen den Raspberry eh über die GPIO-Leiste mit 5 Volt. Ist aber keine Pflicht. Ich habe ein Original RP4 Netzteil verwendet. So, wie es auf dem Bild aussieht, so liegt es bei mir im "Serverschrank", welcher eine einfache Anrichte ist. Verbunden über ein Netzwerkkabel. WLAN wäre eine blöde Idee...

Ich hatte mich schon fast mit dem Durchsatz abgefunden, aber solange man nicht zufrieden ist, bastelt man weiter.

Mein nächster Versuch ging so:

Sich ein Minimal Debian direkt ziehen: https://raspi.debian.net/ und dieses dann mit den üblichen Bordmitteln auf eine SD-Karte schieben. Ich empfehle hochwertige Karten. Ich habe für das Projekt diese hier genommen: https://www.amazon.de/gp/product/B07FCMBLV6 . Wenn man auf der Debian Seite sich die RasPi FAQ ansieht, was eh zu empfehlen ist, sieht man, es ist ein 64 Bit Image!

Update 11.03.2023:
Inzwischen kann man das Original 64Bit Minimal Raspian Image nehmen. Funktioniert auch! Am besten mit dem Original Raspberry Imager.

Nachdem das System hoffentlich hochgefahren ist und nach einem Reboot die komplette Speicherkarte partitioniert ist, einmal Tastatur und Monitor dran und ein Rootpasswort setzen und ggfs. in der SSHD Config das Einloggen von root erlauben. Wenn das erledigt ist, kann man, nachdem man die IP des RPI4 kennt, sich ab nun über seinen Arbeitsrechner über SSH als root einloggen.

Update 11.03.2023
Bei den Original Raspi-Images muss man inzwischen selbst einen Usernamen und ein Passwort setzen. Am besten macht man das bereits vor dem Kopieren der Daten auf die SD-Karte. Dazu auf das Zahnrad klicken. Rest ist selbsterklärend. So kann man ein "Headless" System bauen, welches kein Monitor oder Tastatur braucht.

sudo su
apt update
apt upgrade
apt install samba

wer lieber NTFS formatierte externe HDD verwenden mag, zusätzlich:

apt install ntfs-3g

Ich wollte die externe HDD lieber ext4 formatieren, habe dieses an einem anderen Rechner gemacht, weil ich zu bequem war, das von Hand zu Fuß im laufenden Betrieb zu machen. Entweder unter Windows komfortabel mit Mini Tool Partition Wizard oder nicht weniger komfortabel unter Linux mit GParted. Wenn das erfolgt ist, die externe Festplatte an einen der USB3 Ports anstecken.

Beim Einbinden in das System mittels fstab bin ich nach dieser Anleitung vorgegangen. Die fstab sieht nun so aus: 

# The root file system has fs_passno=1 as per fstab(5) for automatic fsck.
LABEL=RASPIROOT / ext4 rw 0 1
# All other file systems have fs_passno=2 as per fstab(5) for automatic fsck.
LABEL=RASPIFIRM /boot/firmware vfat rw 0 2
PARTUUID="fbdf81b2-ee74-4033-9a6a-b50c6defb556" /media/usbhdd ext4 defaults 0 1

Daraus folgt, hier ist /media/usbhdd die externe Festplatte im Dateisystem. Natürlich ist die PARTUUID bei jeder Festplatte anders. Auch deswegen habe ich mich nicht für USB Auto Mount entschieden. Das kann beim Umstöpseln schonmal zu Verwirrung führen. Jetzt einmal kurz prüfen, ob man Daten auf die Platte schreiben und löschen kann. Prima.

Jetzt nur noch Samba konfigurieren. Ich habe eine recht simple Konfiguration vorgezogen. Wer noch weiteres mit dem System machen will, sollte vielleicht zusätzliche Sicherheiten einbauen. Aber das kommt auf den jeweiligen Einsatz an. Ich bin bei mir zu Hause der einzige im Netz, von daher...

[global]
workgroup = GULP
security = auto
map to guest = Bad Password
min protocol = SMB2
read raw = Yes
write raw = Yes

[public]
path = /media/usbhdd/
public = yes
writable = yes
create mask = 0777
directory mask = 0777
comment = smb share
printable = no
guest ok = yes

 Nun Samba neustarten mit 

service smbd restart

und dann mit 

testparm

prüfen, ob das alles so passt. Nun ist der Moment gekommen, von aussen auf SMB zuzugreifen. Im Windows Netzwerkordner \\IP-des-Raspberrys eingeben und hoffen, dass etwas erscheint. Als nächstes dann was hoch und runterladen. Läuft? Prima. Wenn nicht, Fehler suchen.

Ich hatte bei mir noch das Problem, dass die Festplatte sich nicht bei Nichtbenutzung ausgeschaltet hatte. Auch die erste Methode mit hdparm funktionierte bei meiner neuen externen 5TB WD-Platte nicht. Alternative war dann HD-IDLE

[Update 14.11.2021 neuere Installation]
Setup geändert, da ich mich vorher auf eine alte, nicht weiter gepflegte Version bezogen hatte. HD-IDLE wird nun weitergepflegt von Andoni del Olmo. Den passenden Download auf der Releases-Seite finden. Die Lektüre der Anleitung dort wird empfohlen.

apt install wget https://github.com/adelolmo/hd-idle/releases/download/v1.16/hd-idle_1.16_arm64.deb
dpkg --install hd-idle_1.16_arm64.deb
nano /etc/default/hd-idle
    START_HD_IDLE=true
    HD_IDLE_OPTS="-i 600 -l /var/log/hd-idle.log"

Nun startklar machen mit:

systemctl start hd-idle
systemctl enable hd-idle
Und gucken, ob es läuft:
systemctl status hd-idle
Dann sollte das Raspi4-NAS mit Minimalkonfiguration laufen. Die Auslastung bei Kopiervorgängen ist ok:

Wenn man den Raspberry4 zusätzlich für andere Sachen mitbenutzen will, ist es unbedingt notwendig, zusätzliche Nutzer dafür einzurichten und auch sonst die Sicherheit hochzusetzen. Eine Nextcloud Instanz mit Rootzugriff will man nicht!!!!

Update 11.03.2023
Damit die Laufwerke auch in Windows-Netzwerken angezeigt werden, muss man etwas tätig werden. Nämlich WSDD installieren. Als root folgendes eingeben:

sudo su
wget -O- https://pkg.ltec.ch/public/conf/ltec-ag.gpg.key | gpg --dearmour > /usr/share/keyrings/wsdd.gpg
source /etc/os-release
echo "deb [signed-by=/usr/share/keyrings/wsdd.gpg] https://pkg.ltec.ch/public/ ${UBUNTU_CODENAME:-${VERSION_CODENAME:-UNKNOWN}} main" > /etc/apt/sources.list.d/wsdd.list
apt update
apt install wsdd
mv /etc/wsdd.conf /etc/wsdd.conf.bak
echo WSDD_PARAMS='"-i eth0 --shortlog --workgroup meine_arbeitsgruppe"' > /etc/wsdd.conf
service wsdd restart
service wsdd status
"meine_arbeitsgruppe" sollte gegen die gewünschte Arbeitsgruppe im Netz ausgetauscht werden. der letzte Befehl sollte keine Fehler ausgeben. Für weitere Infos schaut man auf der Seite von WSDD nach.

Leicht off-topic:

Wenn man das NAS nur für sich nutzt und das auch unterwegs will, installiert man sich auf dem Raspberry einen OpenVPN Server, auf dem Android Phone den passenden Client und schon kann man mit einem Dateimanager oder z.B. mit VLC direkt unterwegs auf Daten, Musik oder Filmchen aus dem NAS zugreifen.





Keine Kommentare:

Kommentar veröffentlichen