Installation: Raspbian auf dem Raspberry Pi

Aus Gargi.org
Zur Navigation springen Zur Suche springen

In der Box

Auf der Pi ein Raspbian zu installieren geht relativ einfach. Der hier beschriebene Weg funktioniert auf Basis eines beliebigen Linux auf dem Desktop. Ich verwende derzeit das aktuelle openSUSE.

Zuerst muss dazu sich eine microSD Karte angeschafft werden. Ich verwende hierfür eine 32GB Karte, 16 GB reichen aber auch aus, insbesondere falls Ihr vor habt, Euer /home und /var Verzeichnis auf einen externen Datenträger auszulagern.

Ihr benötigt zudem einen Kartenleser, damit Ihr die Karte an Eurem Linuxrechner vorbereiten könnt. Formatiert werden muss die Karte nicht.

Raspbian herunterladen und "installieren"

Unter Linux ladet Ihr dann erstmal das aktuelle Raspbian (zur Zeit Stretch) herunter:

Raspberry Downloads

Ihr entpackt die Datei und erhaltet Damit ein Image (bin Datei). Dieses Image muss nur noch auf die Karte geschrieben werden:

dd bs=1M if=Dateiname.img of=/dev/sdx

Bei Dateiname bitte den genauen Namen des Imges verwenden. Das Device /dev bitte ohne Partitionsnummer angeben. Also sollte die Karte als sde im System zu finden sein, dann /dev/sde. Solltet Ihr nicht sicher sein, welches Device die Karte im Kartenleser ist, dann mit einem

fdisk -l

anzeigen lassen.

Booten und konfigurieren

That's it! Wenn dd fertig geschrieben hat, dann die Karte in die Pi einstecken und mit dem Lan und via HDMI an einem Monitor anschließen. Zudem mindestens eine USB Tastatur dran für den Anfang. Jetzt Strom auf die Kiste geben und starten lassen. Zunächst bekommt Ihr einen Hinweis, dass das Root Dateisystem auf die komplette Disk expandiert wird. Es erfolgt ein Reboot. Ihr landet nach dem Boot recht schnell auf der grafischen Benutzeroberfläche. Für unseren Server benötigen wir diese nicht, deshalb switchen wir mit

STRG+ALT+F1

zurück zur Konsole. Wir sind bereits als "pi" angemeldet. Meldet Euch erstmal als Root an:

sudo su

Dann ändert das root Passwort auf ein individuelles ab:

passwd

Startet nun das Raspi Konfigurationsmenü:

raspi-config

Konfiguration

Danach geht Ihr auf Network Options und stellt den Hostnamen ein:

Unter den Boot Options stellt bei Desktop /CLI ein, dass Ihr nur in die Konsole booten wollt:

An der Ecke deaktiviert auch gleich den Splash Screen.

Bei den Localisation Options werden dann die Sprache und Tastatur nebst Zeitzone eingestellt:

Bei den Interfacing Options aktiviert noch den ssh Demon:

Danach kann die Konfiguration mit finish abgeschlossen werden:

Jetzt starten wir die Kiste neu. Wenn Ihr wieder dieses Menü aufrufen wollt, dann startet dieses mittels

raspi-config

Kleine Nacharbeiten

Kleine Helfer nachinstallieren

Loggt Euch nochmal als pi ein und werdet root:

sudo su

Aktualisiert erstmal die Kiste:

apt-get update
apt-get upgrade

Ich installiere gerne noch folgende Programme nach:

apt-get install mc htop



Netzwerkkonfiguration

Danach nehmen wir uns noch unsere Netzwerkkonfiguration vor, solltet Ihr Eurer pi eine feste IP zuweisen wollen:

nano /boot/cmdline.txt

Die Datei besteht nur aus einer Zeile. Setzt hier nur hinten Eure gewünschte IP dazu:

ip=192.168.X.X

(die X durch Eure echte IP Werte ersetzen)

Danach die Änderung speichern!

ALTERNATIV:
Solltet Ihr mit obiger Methode 2 IP Adressen hinterlegt haben (eine statische, eine von Eurem DHCP Server geliefert), dann könnt Ihr anstatt wie kürz vorher beschrieben wie folgt vorgehen: Entfernt die IP aus Eurer /boot/cmdline.txt. Editiert die Datei /etc/dhcpcd.conf und fügt folgende Zeilen zum Schluss ein:

interface eth0
static ip_address=192.168.XXX.XXX/24
static routers=192.168.XXX.1
static domain_name_servers=192.168.XXX.1

Verwendet entsprechend die passende IPs.



ipv6 deaktivieren

Wenn Ihr ipv6 nicht benötigt, dann fügt in der /boot/cmdline.txt folgendes hinten in die Zeile ein:

ipv6.disable=1



Die Swap Datei

Jetzt kümmern wir uns noch um die SWAP Datei. Diese richten wir auf doppelte Größe Eures RAMs ein. Also wenn Ihr ein pi mit 1024 MB habt, dann auf 2048MB Swap.

Editiert zunächst die Datei /etc/dphys-swapfile:

nano /etc/dphys-swapfile

Sucht folgende Zeile:

CONF_SWAPSIZE=100

Der Wert 100 wird dann auf die gewünschte Größe geändert. Speichert die Änderung und führt noch folgende Befehle als root aus:

dphys-swapfile setup
dphys-swapfile swapon



Sprache und Tastatur

Um die Sprache, Zeitzone und Tastatur auf der Konsole einzustellen, könnt Ihr folgende Befehle ausführen.
Zeitzone:

dpkg-reconfigure tzdata

Sprache:

dpkg-reconfigure locales

(hier de_de UTF8 verwenden und die eng Markierung herausnehmen)

Tastatur:

dpkg-reconfigure keyboard-configuration

(hier die Tastatur auf German stellen. Den Rest einfach übernehmen)

Die Systemzeit

Hinweis: Dieser Abschnitt ist eventuell bei neueren Raspbian Versionen obsolet. Solltet Ihr nach einer Weile starke Zeit Abweichungen feststellen, dann probiert folgende Anleitung aus. Die aktuelle Zeit könnt Ihr Euch mit dem Befehl

date

ausgeben lassen.

Da der Raspberry Pi keine echte hardwaregestützte Systemzeit besitzt, kann es sein, dass sich der Pi mal in der Zeit verirrt. Man versucht das zwar mit dem Programm "fake-hwclock" zu stützen, aber ich habe leider selbst schon erlebt, dass nach einem Reboot die Zeit nicht mehr stimmt.

Der NTP Dämon soll zwar dafür sorgen, dass die Zeit immer wieder korrigiert wird, aber wir wollen auch hier etwas nachhelfen.

Zum einen werden wir dafür sorgen, dass nach einem Reboot die Zeit mit einem Zeitserver aktualisiert wird. Ebenso dann beim Laufenden System alle 12 Stunden.

Installiert dazu erstmal ntpdate:

apt-get install ntpdate

Legt nun ein neues Script an:

nano /usr/local/bin/timefix

Füllt dieses Skript wie folgt:

#!/bin/sh

rm /var/log/timefix.log
echo "old time" >> /var/log/timefix.log
date  >> /var/log/timefix.log

echo "" >> /var/log/timefix.log
/etc/init.d/ntp stop

echo "[...] updating time clock"

/usr/sbin/ntpdate ptbtime1.ptb.de >> /var/log/timefix.log

echo "Done!"

/etc/init.d/ntp start

echo "" >> /var/log/timefix.log
echo "new time" >> /var/log/timefix.log
date >> /var/log/timefix.log

Dieses Skript muss ausführbar gemacht werden:

chmod +x /usr/local/bin/timefix

Nun legen wir in der crontab fest, dass das Skriptalle 12 Stunden gestartet werden soll:

crontab -e

Für fügen folgende Zeilen ein:

# Timefix every 12 hours
0 */12 * * *   /usr/local/bin/timefix > /dev/null

Damit die Zeit kurz nach dem Booten ausgeführt wird editieren wir die /etc/rc.local . Dort fügen wir VOR dem exit 0 folgendes ein:

/etc/init.d/ntp stop
echo "wait 10 seconds"
sleep 10
echo "updating timeclock"
/usr/sbin/ntpdate ptbtime1.ptb.de
/etc/init.d/ntp start

Das war es dann schonmal. Mit einem

reboot

startet die Kiste neu.

Langsamer ssh login

Wenn Ihr jetzt nur noch die pi als Server verwenden wollt, dann könnt Ihr ab jetzt die Tastatur und den Monitor weg lassen und Euch via ssh an die dafür vergebene IP Adresse einloggen und weiter konfigurieren.

Wenn es beim Login am ssh dauert, bis die Passwortabfrage kommt, dann kann es sein, dass der DNS nicht korrekt eingestellt ist. Überprüft mit einem

cat /etc/resolv.conf

ob der DNS korrekt auf der Kiste eingetragen ist. Falls nicht, editiert die Konfiguration entsprechend:

nano /etc/resolv.conf



Backup der Installation

Wenn man viel (gerade am Anfang) mit dem Pi experimentiert, dann macht es Sinn, seine Basisinstallation zu sichern. Man benötigt entweder ein weiteres Linux dazu (und einen Kartenleser), oder eine zweite Karte mit einem installierten Linux, um das Backup direkt am Pi zu machen. Beides verläuft ähnlich. Ich erkläre das an der Variante am Pi mit einer zusätzlichen externen Festplatte.

Startet den Pi mit einem Linux und steckt danach den Kartenleser mit Eurer Karte an, auf der sich Euer zu sicherndes System befindet. Mit einem

fdisk -l

findet Ihr heraus, um welches Device es sich bei Eurer Karte handelt. Bei mir ist es beispielsweise /dev/sdd

Ich lege unter /home (meine Festplatte) ein weiteres Verzeichnis an:

mkdir /home/image

Jetzt kopiere ich die komplette Karte in ein Image. Achtung, bei einer 16GB Karte sind das eben auch 16GB!

dd bs=1M if=/dev/sdd of=/home/image/wheezy.img

Dies dauert dann eine Weile.

Die Sicherung spielen wir dann wieder mit einem

dd bs=1M if=/home/image/wheezy.img of=/dev/sdd

Jetzt noch ein Kniff. In meinem Fall kopiere ich beispielsweise von einer 16GB Karte auf eine 32GB Karte. D.h. nun sind rund 16 GB nicht benutzt. Wheezy verteilt sich ja auf 2 Partitionen. D.h. die zweite (root) Partition kann nach hinten expandiert werden.

Dazu checken wir erstmal die die zweite Partition:

e2fsck -f /dev/sdd2

Danach können wir die Partition hochziehen:

resize2fs /dev/sdd2

Steckt die Karten nun um und testet die "geclonte" Karte auf dem PI.