**Dies ist eine alte Version des Dokuments!**
Inhaltsverzeichnis
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
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