Multiboot für Raspbian

© Lubos Chlubny, 123RF

Schaltzentrale

Speziell bei verbauten RasPis erweist sich der Wechsel der SD-Karte oft als mühsam. Hier hilft der Pi-Boot-Switch aus der Klemme, der remote unterschiedliche Systeme bootet.

Der fest im Regal eingebaute Mini-Server, der Pi Zero im Internet-Radio und selbst der im Standardgehäuse der Raspberry Pi Foundation steckende Pi0: Sie alle verbindet, dass sich die Speicherkarte nicht mehr ohne Weiteres austauschen lässt. Liegt ein Update an oder möchte man neue Funktionen hinzufügen, bleibt dann nur noch die Änderung direkt am produktiven System. Das aber widerspricht der alten IT-Weisheit "never change a running system" – laufende Systeme fasst man aus Prinzip nicht mehr an.

Doch die Welt ist nicht statisch, Updates und neue Funktionen drängen und locken. Aus dieser Motivation heraus entstand das hier beschriebene Boot-System. Es zielt darauf ab, auf einer SD-Karte mehrere Raspbian-Systeme parallel vorzuhalten, um flexibel zwischen ihnen hin- und herzuwechseln. Vor einem Update etwa ziehen Sie so eine Kopie auf eine zweite Partition, probieren dort die Neuerungen aus und lassen dann entweder die Kopie weiterlaufen oder wechseln zurück – all das in wenigen Minuten und beliebig oft.

Booten auf dem RasPi

Der Boot-Prozess verläuft auf dem RasPi anders als auf anderen Systemen. Das liegt am speziellen Chip, der die Basis bildet: So startet beim RasPi zuerst die VideoCore genannte Grafikkomponente, bevor die eigentliche CPU übernimmt und das System hochfährt.

Dieses technische Konzept verhindert einen klassischen Boot-Manager, wie er etwa im normalen PC zum Einsatz kommt. Deswegen unterscheidet sich der hier vorgestellte Boot-Manager von seinen klassischen Vorbildern: Statt direkt nach dem Systemstart müssen Sie schon vorab das nächste zu bootende System auswählen.

Raspbian legt normalerweise zwei Partitionen an. Die erste, sehr kleine FAT-Partition enthält die für das Booten notwendigen Dateien wie Firmware und Kernel. Die zweite, System- oder Root-Partition genannt, enthält das eigentliche Linux-System. Während die Boot-Partition zwingend die erste sein muss, darf die Systempartition auch auf der dritten oder einer weiteren Partition liegen. Erst der Parameter root in der Datei cmdline.txt aus der Boot-Partition bestimmt die Systempartition.

Diese Konstellation machen wir uns zunutze, um im Betrieb flexibel zwischen verschiedenen Systemen zu wechseln. Allerdings belegt normalerweise die zweite Partition den gesamten restlichen Platz der SD-Karte – zumindest dann, wenn Sie bei der Ersteinrichtung, wie allgemein empfohlen, mit Raspi-config den entsprechenden Menüpunkt ausgewählt haben.

Im ersten Schritt müssen Sie also entsprechend Platz schaffen. Dazu benötigen Sie ein weiteres Linux-System, etwa ein Raspbian mit grafischer Oberfläche. Der nächste Abschnitt geht davon aus, dass Sie die aktuelle Version betreiben. Des Weiteren benötigen Sie einen SD-Kartenleser, um damit das zu verkleinernde System auszulesen und zu beschreiben.

Platz schaffen

Für den vorgesehenen Zweck kommt das Programm Gparted (Abbildung 1) zum Einsatz, dass Sie über die grafische Paketverwaltung oder per sudo apt-get gparted über die Kommandozeile installieren. Anschließend finden Sie Gparted im Menü und starten es von dort.

Abbildung 1: Gparted erlaubt es auf einfache Weise, Datenträger umzuformatieren.

Achten Sie auf die Auswahl des richtigen Laufwerks in der Ausklappliste oben rechts. Sofern Sie keine zusätzliche Festplatte im System betreiben, handelt es sich dabei normalerweise um /dev/sda. Im Zweifel identifizieren Sie das Laufwerk über seine Größe oder über die Zusatzinformationen, die Sie über die Menüpunkte Laufwerk und Partition erreichen.

Wie Sie in Abbildung 1 sehen, besitzt die verwendete SD-Karte zwei Partitionen. Davor befindet sich ein kleiner, nicht zugeteilter Bereich von 4 MByte. Das Schlüsselsymbol zeigt an, dass beide Partitionen eingehängt sind und sich deshalb nicht bearbeiten lassen. In unserem Fall liegt das an dem in Raspbian integrierten Automounter, der angesteckte Massenspeicher automatisch unter /media/User/ einhängt.

Da es gilt, die große Partition /dev/sda2 zu verkleinern, wechseln Sie ins Menü Partition und hängen dort die Partition aus. Der Schlüssel verschwindet nun. Ebenfalls über das Partitionsmenü wählen Sie jetzt den Menüpunkt Größe Ändern/Verschieben aus (Abbildung 2). Im Dialog wählen Sie die neue Größe, entweder über die Eingabefelder oder per Maus. Die Software merkt sich die Änderungen und wendet sie erst ganz am Ende mit der Übernahmebestätigung an.

Abbildung 2: Im Menü Partition finden Sie das passende Werkzeug, um die Größe einer Partition zu verändern.

Das Verkleinern (Abbildung 3) der alten Systempartition schafft Platz für die neuen Partitionen. Diese legen Sie über Neu aus dem Partitionsmenü an. Unten im Bild sehen Sie die anstehenden Aktionen, oben in der Schalterleiste den grünen Haken. Ein Klick darauf führt nach einer Bestätigung alle Änderungen durch. Da der Vorgang keine Daten verschiebt, sondern nur Verwaltungsinformationen der Partitionen ändert, geht das recht zügig vonstatten. Weitere Tipps zur Partitionierung finden Sie im Kasten "Optimal partitionieren".

Abbildung 3: Mit dem Werkzeug Größe Ändern/Verschieben aus Gparted schaffen Sie Platz für neue Partitionen.

Optimal partitionieren

Die klassische MBR-Partitionstabelle (Master Boot Record) verwaltet aus historischen Gründen nur maximal vier Partitionen. Die erste belegt beim RasPi die Boot-Partition mit mindestens 50, besser 100 MByte. Danach lassen sich noch drei weitere Partitionen anlegen. Was man damit macht, hängt vom Anwendungsfall ab.

Denkbar wären mehrere Systempartitionen, eine getrennte Home-Partition für Benutzerdaten oder eine Datenpartition, etwa für Medien. Damit werden die verfügbaren Partitionen schon knapp. Zwei Systempartitionen wären wünschenswert, um neben einem Produktivsystem auch ein Testsystem bereitzustellen. Damit bleibt nur eine Partition für Daten oder das Home übrig.

Eine spätere Erweiterung des MBR-Formats umgeht das Limit von vier Partitionen. Die letzte der normalen Partitionen (auch primäre Partitionen genannt) machen wir zu einer erweiterten Partition, die als Container für beliebig viele zusätzliche Partitionen dient. Damit lässt sich eine Aufteilung wie in Abbildung 4 realisieren: Neben der Boot-Partition /dev/sda1 und zwei primären Systempartitionen /dev/sda2 und /dev/sda3 gibt es dort noch weitere Systempartitionen (die Nummern 5, 7 und 8) sowie eine Datenpartition /dev/sda6. Die Partition Nummer 4 dient als Container-Partition, was Gparted mit einer hellblauen Umrandung auch grafisch hervorhebt.

Abbildung 4: Die Aufteilung einer SD-Karte mit einer erweiterten Partition.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Raspberry Pi Geek kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Aktuelle Ausgabe

04/2019
TV & Multimedia

Diese Ausgabe als PDF kaufen

Preis € 9,99
(inkl. 19% MwSt.)

Stellenmarkt

Neuigkeiten

  • Finger weg

    Ein Temperatursensor verrät, ob Sie einen Gegenstand gefahrlos berühren dürfen. Beim Messen brauchen Sie dabei noch nicht einmal Kontakt zum Objekt.

  • Aus einer Hand

    Um einen Mikrocontroller zu programmieren, genügt ein Raspberry Pi. Wir zeigen, was Sie dazu noch benötigen.

  • Im Gleichtakt

    Synchronisierte Live-Loops und selbst erstellte Funktionen helfen dabei, Sonic Pi wie ein Live-Instrument zu spielen.

  • Mach mal

    Das Ftduino-Modul schlägt die Brücke zu Fischertechnik und ermöglicht es unter anderem, einen Drei-Achsen-Roboter anzusteuern.

  • Eleganter Diener

    Jeden Morgen dieselben Handgriffe, um zu sehen, ob die S-Bahn fährt und wie das Wetter wird? Ein cleverer Infoscreen auf RasPi-Basis automatisiert den Vorgang.

  • Bienenflüsterer

    Bienenzüchter, die ihre Völker besser kennenlernen möchten, müssen die fleißigen Insekten nicht pausenlos stören. Mit einem Raspberry Pi und verschiedenen Sensoren überwachen sie Temperatur, Luftfeuchtigkeit und bald auch das Gewicht des Bienenstocks.

  • Beerige Musik

    Für echten Hi-Fi-Sound braucht es mehr als einen kleinen Bluetooth-Brüllwürfel. Mit Volumio und einem Raspberry Pi rüsten Sie Ihre klassische Hi-Fi-Anlage mit smarten Funktionen auf.

  • Ton ab!

    Auf den ersten Blick erscheint der RasPi zu schwachbrüstig für den Betrieb leistungshungriger DAW-Software. Doch der Schein trügt.

  • Himbeer-TV

    Der DVB TV µHAT rüstet den Raspberry Pi mit einem DVB-T/T2-Tuner auf. Die deutsche TV-Landschaft schränkt dessen Möglichkeiten allerdings ein.

  • Git à la RasPi

    Mit wenigen Handgriffen zum Git-Hoster: Die dezentrale Arbeitsweise von Git erleichtert in Kombination mit der Netzwerkfähigkeit des RasPi das Verwalten von Quellcode.