Aus Raspberry Pi Geek 02/2020

Multiboot für Raspbian (Seite 2)

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

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

Installation

Nach diesen Vorarbeiten nehmen Sie die SD-Karte aus dem Kartenleser und stecken Sie im Raspberry Pi ein. Eine Kontrolle des Dateisystems mit df -h sollte Ihnen die aktuelle verkleinerte Systempartitionsgröße ausgeben.

Nutzen Sie Raspbian Lite, installieren Sie zunächst Git (Listing 1, erste Zeile), mit dem Sie die Daten aus dem Pi-Boot-Switch-Projekt [1] klonen und installieren (ab Zeile 2). Die Kommandos installieren einige notwendige Tools und kopieren das eigentliche Skript pi-boot-switch ins Verzeichnis /usr/local/sbin/.

Listing 1

$ sudo apt-get -y install git
$ git clone https://github.com/bablokb/pi-boot-switch.git
$ cd pi-boot-switch
$ sudo tools/install

Das Skript implementiert eine Reihe von Funktionen wie Kopieren (copy, -c) oder Wechseln (switch, -s). In aller Regel lassen sich mehrere Funktionen auf einmal ausführen; um die Funktionsweise zu erläutern, zeigen die nächsten Abschnitte die Kommandos aber einzeln.

Das Standardszenario

Das Standardszenario besteht im Kopieren der aktuellen Systempartition auf eine zweite Partition und anschließendem Wechsel. Zunächst einmal informieren Sie sich mit dem Info-Kommando -I über die vorhandenen Partitionen (Listing 2). Die rechte Spalte der Ausgabe zeigt, dass das System aktuell von der ersten Partition bootet. Die aktuelle Systempartition liegt auf der zweiten Partition (current root); auch beim nächsten Hochfahren würde diese die Systempartition bleiben (next root).

Listing 2

$ sudo pi-boot-switch -I
info: no partition descriptions available
Partition       | Label            | Role           | Description
----------------|------------------|----------------|---------------
/dev/mmcblk0p1  | boot             | curr boot      |
/dev/mmcblk0p2  | rootfs           | curr/next root |
/dev/mmcblk0p3  |                  |                |
/dev/mmcblk0p4  |                  |                |

Um sich das Identifizieren der Partitionen zu erleichtern, vergeben Sie ein neues Label für die aktuelle Systempartition auf /dev/mmcblkp02 und ergänzen über die Option -D zusätzlich eine Beschreibung (Listing 3, erste Zeile). Der Autor verwendet als Konvention für das Label immer die Raspbian-Version (im Beispiel “Buster” Lite vom September 2019), den Hostnamen sowie die Partitionsgröße. Die Ausgabe mit -I zeigt anschließend den Labelnamen an.

Danach kopieren Sie mit dem zweiten Kommando aus Listing 3 die aktuelle Systempartition eins zu eins auf die dritte Partition /dev/mmcblk0p3. Nutzen Sie die grafische Oberfläche von Raspbian, könnte Ihnen der Automounter wieder in die Quere kommen – in diesem Fall müssten Sie vorher die dritte Partition aushängen.

Listing 3

$ sudo pi-boot-switch -L "BL1909 pi0w 2G" -D "Original" -t /dev/mmcblk0p2
$ sudo pi-boot-switch -c -t /dev/mmcblk0p3 -F

Dank der Option -F formatiert das Skript das Ziel vor dem Kopieren. Haben Sie die Partition schon beim Anlegen mit Gparted formatiert, lassen Sie diesen Schalter weg. Das Kopieren dauert je nach Partitionsgröße eine Weile; anschließend zeigt das Info-Kommando den neuen Zustand. Hier fällt auf, dass das Skript die Partition automatisch mit einem Label versieht. Sie ändern das mit dem in Listing 3 beschriebenen Label-Kommando auf Test (Kopie). Listing 4 zeigt das komplette Prozedere.

Listing 4

$ pi-boot-switch -c -t /dev/mmcblk0p3 -F
info: formatting partition /dev/mmcblk0p3 with ext4
/dev/mmcblk0p3 hat ein ext4-Dateisystem
        zuletzt auf Fri Nov 24 11:23:41 2017
 eingehängt info: mounting /dev/mmcblk0p3 on /tmp/pi-boot-switch.ncFxrS
info: copying / to /tmp/pi-boot-switch.ncFxrS
info: fixing /etc/fstab on /dev/mmcblk0p3
info: copying /boot/ to /tmp/pi-boot-switch.ncFxrS/_boot
info: fixing /tmp/pi-boot-switch.ncFxrS/_boot/cmdline.txt
info: copied system to /dev/mmcblk0p3
info: use pi-boot-switch with option '-s /dev/mmcblk0p3' to boot from new partition
info: setting label for /dev/mmcblk0p3: raspbian 10
$ sudo pi-boot-switch -I
[...]
$ sudo pi-boot-switch -L "BL1909 pi0w 2G" -D "Test (Kopie)" -t /dev/mmcblk0p3
$ sudo pi-boot-switch -I
[...]

Aktuell existieren nun auf der SD-Karte also das Original und eine Kopie. Mit dem Switch-Kommando -s (Listing 5, erste Zeile) wechseln Sie die Systempartition. Das kommt aber erst beim nächsten Boot-Vorgang zum Tragen, den Sie mit sudo reboot einleiten. In einer grafischen Umgebung klappt das auch über das normale Menü. Alternativ erweitern Sie das Switch-Kommando um die Option -R: Dann erfolgt der Reboot nach dem Wechsel der Systempartition automatisch.

Listing 5

$ sudo pi-boot-switch -s -t /dev/mmcblk0p3
info: copying /boot/ to /_boot
info: mounting /dev/mmcblk0p3 on /tmp/pi-boot-switch.HkGWiP
info: copying /tmp/pi-boot-switch.HkGWiP/_boot/ to /boot
info: unmounting /dev/mmcblk0p3
info: reboot the system to start from /dev/mmcblk0p3
$ sudo pi-boot-switch -I
info: reading partition descriptions from /boot/pi-boot-switch.txt
Partition       | Label            | Role           | Description
----------------|------------------|----------------|---------------
/dev/mmcblk0p1  | boot             | curr boot      |
/dev/mmcblk0p2  | BL1909 pi0w 2G   | curr root      | Original
/dev/mmcblk0p3  | BL1909 pi0w 2G   | next root      | Test (Kopie)
/dev/mmcblk0p4  |                  |                |

Während sich das Kopieren der Systempartition langwierig gestaltet, geht der Wechsel zwischen den verschiedenen Systempartitionen flott vonstatten. So können Sie bei Bedarf schnell in eine Testumgebung auf eine anderen Partition wechseln, um etwas auszuprobieren. Anschließend gelangen Sie genauso schnell wieder zurück zur produktiven Arbeitsumgebung.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 6 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben