Externe Festplatte statt SD Karte an Raspi, Odroid & Co.

Einrichtung der Partitionen

SSD Platten und USB/SATA Adapter gibt es inzwischen zu extrem günstigen Preisen, oft billiger als SD Karten. Es spricht also alles dafür auf SSD umzusteigen, was HIER beschrieben ist.

Abgesehen von der hohen Lebensdauer gibt es noch eine weitere bestechend interessante Möglichkeit:

Partitionen auf der SSD Platte:

SSD Platten haben in der Regel mindestens 100 GB oder mehr. Für eine Partition auf Raspi, Odroid usw. benötigt man maximal 32 GB. Die Platte bietet also Platz für 3 Partitionen, welche man wahlweise booten kann.

Ich teile die Partitionen so auf:

Partition-1: /dev/sda1 ... aktuell benutztes System. Hier befindet sich das Betriebssystem für täglichen Gebrauch

Partition-2: /dev/sda2 ... Backup Kopie von Partition-1. Diese Partition kann auf Partition-1 kopiert werden wenn das System nicht mehr läuft

Partition-3: /dev/sda3 ... frische Installation des vom Hersteller angebotenen Betriebssystems ohne irgendwelche Zusätze, jedoch schon leicht angepasst (z.B. Spracheinstellungen usw.)

allein aus dieser Aufstellung kann man schon erkennen welche Vorteile sich hier bieten: Gefahrloses Spielen mit neuen Programmen mit der Möglichkeit sofort auf ein funktionierendes Backup zurückgreifen zu können wenn etwas schief geht.

Erstellung der Partitionen:

für folgende Arbeiten steckt man die Platte an einen Linux PC an. Alternativ auch an Odroid/Raspi...., wobei das System in dem Fall auf SD Karte laufen muss. Die Platte darf für die Einrichtung nicht im aktiven Betrieb sein.

Partionierung mit: fdisk

In aller Regel heißt die Platte am Odroid/Raspi: /dev/sda. An einem PC bekommt sie eine andere Bezeichnung: VORSICHT: diese Bezeichnung genauestens beachten da man sich sonst irrtümlich die PC Platte löschen kann !!! Um den Namen festzustellen meldet man die Platte im PC an und schreibt dann in der Konsole:  df
Das druckt alle Device-Namen aus

Jetzt wollen wir die 4 Partitionen erstellen, in meinem Fall heißt die Platte /dev/sde

fdisk  /dev/sde

Partitionen anzeigen: p

Vorhandene Partitionen löschen: d

Neue Partition anlegen: n, p, 1
den Startsektor übernimmt man wie von fdisk vorgegeben.
Als Endsektor gibt man ein:  +33G

Mit p kann man überprüfen, dass jetzt die erste Partition /dev/sde1 mit 33GB angelegt ist.

Das selbe macht man jetzt für die weiteren Partitionen. 

Man hat jetzt 4 Partitionen zu je 33 GB:

       

die Platte hätte noch ein wenig mehr Platz, aber ich möchte 3 exekt gleich große Partition damit es später beim Kopieren keine Probleme gibt.

Formatieren der neuen Partitionen:

mkfs.ext4  /dev/sde1
mkfs.ext4  /dev/sde2
mkfs.ext4  /dev/sde3

Installation und Aktivierung des Betriebssystems:

das habe ich auf dieser Seite beschrieben.

Backupkopie des Betriebssystems:

unser täglich genutztes System befindet sich zB auf Partition-1 und es soll auf Partition-2 ein Backup erstellt werden. Wie oben erwähnt darf die Platte für diese Arbeiten nicht aktiv in Benutzung sein !

Wir haben 2 Alternativen:

1) mit dd

dd if=/dev/sde1 of=/dev/sde2 status=progress

(wie immer der Hinweis, dass die Namen entsprechend dem eigenen System anzupassen sind. sde gilt nur für mein System !)

der dd Befehl erstellt eine 100% exakte Kopie des Originals. Er kopiert alle 33GB der Festplatte, egal ob belegt oder nicht. Danach erhält man eine Partition-2 welche ein genaues Abbild der Partition-1 ist.

2) mit rsync

damit geht es genauso gut, allerdings kopiert rsync nur die Dateien, also keine Leerräume (wie dd es macht) und ist daher in der Regel schneller fertig. Die beiden Partitionen müssen vorher gemounted werden (im Gegensatz zu dd, wo sie NICHT gemounted sein dürfen):

mkdir /tmp/hd1
mkdir /tmp/hd2
mount /dev/sde1 /tmp/hd1
mount /dev/sde2 /tmp/hd2

jetzt wird kopiert:

rsync -avxP  /tmp/hd1/  /tmp/hd2   (bitte auf die Schrägstriche achten, diese müssen genau so eingegeben werden !).

Genauso kann auch zurückkopiert werden indem man einfach die Nummern vertauscht.

die weitere Partitionen 3:

auf P3 habe ich ein originales System installiert. Man kann sie natürlich genauso gut für eine weitere Kopie nutzen oder für sonst einen Zweck.

Vorbereitung einer Partition zum booten:

Nach dem Kopieren ist eine Partition noch NICHT bootfähig. Wenn man sie nur als Backup verwendet, ist das ok, und man läßt alles so wie es ist. Möchte man eine Partition jedoch booten, so muss man ihr noch sagen wo sie installiert ist. Dazu geht man (in dieser Partition, evt vorher mounten) in das Verzeichnis /etc und öffnet mit einem Editor (als root) die Datei fstab:

dort steht der Mount-Point der Rootpartition:
/dev/sda1 / ext4 errors=remount-ro,noatime 0 1
(anstelle von /dev/sda1 evt auch eine lange UUID Nummer, die ich immer mit /dev... auswechsle).

Anstelle von sda1 muss man hier die Nummer der Partition eintragen, also zB sda2. 
Danach ist sie bootfähig.

Auswahl der zu bootenden Partition:

diese Auswahl wird auf der SD Karte gemacht. Auch wenn wir von SSD Arbeiten, der Bootvorgang findet immer auf SD Karte statt.

Diese Auswahl kann auch bei gebootetem und laufenden System erfolgen. Am Raspi/Odroid... mounted man sich die Boot-Partition /dev/mmcblk1p1 (oder ähnlich):

diese Partition ist oft schon gemounted (prüfen mit "df"), wenn nicht dann bindet man sie selbst ein:
mount  /dev/mmcblk1p1  /mnt
cd /mnt
ls

jetzt sieht man die verschiedenen Boot Dateien. Mit einem Editor (mit sudo) öffnet man die Datei: boot.ini

Die zu bootende Partition wird in dieser Zeile ausgewählt:

setenv bootrootfs "console=tty1 console=ttySAC2,115200n8 root=/dev/sda1 rootwait ro fsck.repair=yes net.ifnames=0" (oder so ähnlich)

um von Partition 2 zu booten, ändert man /dev/sda1 auf /dev/sda2. Im Original steht dort of eine lange UUID Nummer, welche ich aber wegen der besseren Übersicht immer mit /dev/sda... austausche was genauso gut funktioniert.

Durch Änderung dieser Angabe kann man also von jeder beliebigen Partition booten.