Benutzer-Werkzeuge

Webseiten-Werkzeuge


raspberrypi-nas

**Dies ist eine alte Version des Dokuments!**

Raspberry Pi2 mit Arch Linux als NAS

Hier schildere ich meine Erfahrungen bei der Installation und Konfiguration eines Raspberry Pi2 mit der Linux-Distribution Arch Linux und dem anschliessenden Betrieb einer 2TB-USB-Festplatte als NAS.

Ein paar Angaben zu den vorhandenen Geräten in meinem Netzwerk

Router: O2 Box 6431
Notebook 1: Win7
Notebook 2: Linux Manjaro
Netbook: WinXP
Smartphone 1: Android
Smartphone 2: Android

microSD-Karte vorbereiten

in einen Linux-Rechner SDcard einstecken und Device der SD-Card herausfinden

sudo blkid

oder

sudo lsblk

unmounten (hier im Beispiel /dev/sda) alle Parition unmounten, SD-Card nicht auswerfen!

sudo umount /dev/sda1

falls mehrere Partitionen vorhanden, Beispiel für Partition Nr.1 und Nr.2

sudo umount /dev/sda{1,2}

microSD-Karte formatieren und Partitionen anlegen

GParted starten eventuell vorhandene Partition(en) löschen erste Partition (Bootpartition) als FAT32 mit 100MB anlegen zweite Partition (/) als ext4 anlegen GParted schliessen

Installation vorbereiten und Arch installieren

formatieren

sudo mkfs.vfat /dev/sdi1
sudo mkfs.ext4 /dev/sdi2

installieren

mkdir mnt
sudo mount /dev/sdi2 mnt
sudo mkdir mnt/boot
sudo mount /dev/sdi1 mnt/boot
wget http://archlinuxarm.org/os/ArchLinuxARM-rpi-2-latest.tar.gz
sudo bsdtar -xpf ArchLinuxARM-rpi-2-latest.tar.gz -C mnt
rm ArchLinuxARM-rpi-2-latest.tar.gz
sync
sudo umount mnt/boot mnt
rmdir mnt

Raspi mit der microSD-Karte starten

mit angeschlossenem Monitor als

root:root

oder via

ssh alarm@alarmpi
password: alarm
su
password: root

erster Start - Grundeinstellungen

Tastaturlayout temporär auf Deutsch umstellen

loadkeys de

hostname einstellen

hostnamectl set-hostname raspbpi2

/etc/locale.gen für die Schweiz einstellen: deCH.UTF-8 UTF-8 auskommentieren deCH.UTF-8 UTF-8:

sed -i 's/.\(de_CH.UTF-8*.\)/\1/g' /etc/locale.gen

kommentieren en_US.UTF-8 UTF-8:

sed -i 's/en_US.UTF-8.*/#&/g' /etc/locale.gen

Tastaturlayout permanent für die Schweiz einstellen

echo LANG=de_CH.UTF-8 > /etc/locale.conf
echo KEYMAP=sg-latin1 > /etc/vconsole.conf
ln -s /usr/share/zoneinfo/Europe/Zurich /etc/localtime

HardwareUhr auf UTC stellen. Lokalzeit kommt von Zeitzonenangabe

timedatectl set-local-rtc 0

Nach der Konfiguration werden die Locales generiert

locale-gen

Zeit überprüfen

timedatectl status
systemctl status systemd-timesyncd

ODER mit journalctl

journalctl -u systemd-timesyncd.service

Paketmanager einstellen

pacman -Syy
pacman -S archlinux-keyring
pacman-key --init
pacman-key --populate archlinux

Pacman einrichten

nano /etc/pacman.d/mirrorlist

gewünschte Spiegelserver z.B. Deutschland auskommentieren CTRL-X = beenden

pacman -Scc
pacman -Sy
pacman -S wget rsync

nano /etc/pacman.conf /etc/pacman.conf bearbeiten

UseDelta    = 0.7

System aktualisieren

pacman -Syu

wichtige Systemeinstellungen

FIX boot/config.txt

cat  /boot/config.txt | grep gpu

Ausgabe: gpumem=64 auf gpumem=320 ändern und USB Stromversorgung sicherstellen

nano /boot/config.txt
gpu_mem=320
max_usb_current=1

Neustart

reboot

Neuer Benutzer einrichten

OPTIONAL User „alarm“ mit der UID=1000 löschen USER alarm löschen nicht über ssh möglich!!! über Bildschirm (tty) als root anmelden, password: root

userdel -rf alarm

USER einrichten (mit gelöschtem „alarm“)

useradd -m -G wheel -u 1000 -s /bin/bash neuerBenutzer

Passwort für neuen USER vergeben

passwd neuerBenutzer

optional Gruppen vergeben (je nach Bedarf)

usermod -aG games,rfkill,users neuerBenutzer
usermod -aG storage,network,video,audio,power,log neuerBenutzer
usermod -aG systemd-journal neuerBenutzer

für bluetooth

usermod -aG lp neuerBenutzer

SUDO installieren

Sudo kann ein Sicherheitsrisiko sein. Nur installieren wenn man es wirklich braucht.

pacman -S sudo
EDITOR=nano visudo

Auskommentieren für Mitglieder der Gruppe wheel ausführen von Befehlen erlauben

%wheel ALL=(ALL) ALL

Neustart und Abschluss der Installation

ssh neuerBenutzer@raspbpi2

Passwort: wie oben vergeben Message-of-the-day löschen oder ändern

sudo nano /etc/motd

BASH helper

sudo pacman -S bash-completion

SCREEN

sudo pacman -S screen

HTOP

sudo pacman -S htop lsof strace

diverse Archiver

sudo pacman -S unace unarj unrar zip p7zip mtools cabextract

base-devel = develop Voraussetzungen (14 von 25 Paketen schon installiert gewesen)

sudo pacman -S abs base-devel

Fixe IP vergeben

Netctl installieren

pacman -S netctl

Konfigurationsdatei kopieren und bearbeiten

sudo cp /etc/netctl/examples/ethernet-static /etc/netctl
sudo nano /etc/netctl/ethernet-static
Address=('192.168.1.61/24')
Gateway= '192.168.1.1'
DNS='192.168.1.1'

Gestartete Dienste anzeigen

systemctl --typ=service

Network.service beenden und deaktivieren

systemctl stop systemd-networkd.service
systemctl disable systemd-networkd.service

Netzwerkadapter stoppen

sudo ip link set down dev eth0

Netctl starten und aktivieren

sudo netctl start ethernet-static
sudo netctl enable ethernet-static

Bei Änderungen an netctl, Dienst neu aktivieren

sudo netctl reenable ethernet-static

USB-HDD einbinden

USB-HDD anschliessen und mit blkid die UUID auslesen

sudo blkid

bei mir wird folgendes angezeigt

/dev/sda1: LABEL="WinDaten" UUID="A4A0-44AF" TYPE="vfat" PARTUUID="0005a791-01"
/dev/sda2: LABEL="LinuxDaten" UUID="db3bacd1-c55c-49b1-9799-a148eaacfd5d" SEC_TYPE="ext2" TYPE="ext3" PARTUUID="0005a791-02

Die ermitellten UUID's mit den Mountpoints in /etc/fstab eintragen

sudo nano /etc/fstab
UUID=145188C22601432A  /mnt/Win  ntfs    defaults,rw       0       0
UUID=4fa08102-f8b1-4664-8264-f07a56ccee0e  /mnt/Linux  ext4    defaults,rw       0       0

Hier mal den Raspi neu starten schadet nicht

sudo reboot

Jetzt die USB-HDD einbinden

sudo mount -a

Samba einrichten

Installieren

sudo pacman -S samba

Benutzer einrichten

Samba verwendet Systembenutzer. Daher legen wir einen neuen Benutzer ohne Login und ohne Passwort an

sudo adduser --disabled-password --disabled-login BenutzerName

Diesen Benutzer auch in Samba anlegen

sudo smbpasswd -a BenutzerName

Konfigurieren

sudo cp /etc/samba/smb.conf.default /etc/samba/smb.conf
sudo nano /et/samba/smb.conf

folgendes soll angepasst werden

# Global Parmeters
[Global]
    workgroud = Workgroup
    netbios name = <HOSTNAME-DES-RASPI>
    security = User

Shares konfigurieren

# Share
[Verzeichnisname]
    path = /mnt/Win/Verzeichnisname
    valid users = <DER-ZUVOR-ANGELEGTE-BENUTZER>
    read only = No
    create mask = 0777
    directory mask = 0777

vorschläge für Shares

Samba starten und testen

sudo systemctl start smbd.service
testparm -s

Zugriff von extern

Für den externen Zugriff auf das NAS benötigen wir als erstes eine Port-Weiterleitung. Diese richten wir komfortabel in unserem Router ein.
Port 22 (SSH) soll auf unseren Raspi weitergeleitet werden.

öffentliche IP ermitteln

Der externe Zugriff funktioniert nur über die Öffentliche-IP. Da diese aber meistens in der Nacht geändert wird, behelfen wir uns einem Skript und senden die öffentliche IP an unsere E-Mail-Adresse.
Als erstes aber ermitteln wir die IP

curl -s http://canhazip.com

SSMTP

Damit wir das Skript versenden können, benötigen wir ssmtp.

sudo pacman -S ssmtp

ssmtp konfigurieren

sudo nano /etc/ssmtp/ssmtp.conf

# /etc/ssmtp.conf -- a config file for sSMTP sendmail.

# The person who gets all mail for userids < 1000

Make this empty to disable rewriting.

root=DEIN-ABSENDER-NAME@DOMAIN.TLD

The place where the mail goes. The actual machine name is required

no MX records are consulted. Commonly mailhosts are named mail.domain.com

The example will fit if you are in domain.com and you mailhub is so named.

mailhub=SMTP-SERVER:465

Where will the mail seem to come from?

rewriteDomain=DOMAIN.TLD

The full hostname

hostname=(none) AuthUser=BENUTZERNAME-VON-MAILADRESSE AuthPass=PASSWORT-VON-MAILADRESSE FromLineOverride=YES UseTLS=YES

raspberrypi-nas.1453370764.txt.gz · Zuletzt geändert: 2025/05/03 09:10 (Externe Bearbeitung)