Üblicherweise wird das Betriebssystem des Raspberry Pi auf einer Micro-SD Karte installiert. Leider vertragen diese Karten nur eine begrenzte Anzahl von Schreibvorgängen, bevor sie den Geist aufgeben. Hochwertige USB-Sticks sind hier haltbarer, Festplatten oder SSDs sowieso.

Anzeige:

Es kann also Sinn machen, das Betriebssystem nicht auf der SD-Karte zu lassen, sondern auf einen USB-Stick oder eine externe SSD zu übertragen und von dort zu starten. Ganz ohne SD-Karte.

Ein neuer Raspberry Pi unterstützt das Booten von USB von Haus aus. Bei einer Neuinstallation kann somit einfach das Raspbian Image auf einen USB-Stick kopiert und direkt von dort gebootet werden.

Wer aber bereits über einen laufenden und fertig eingerichtetes System auf einer Micro SD-Karte verfügt, der will wahrscheinlich keine Neuinstallation und anschließende Neukonfiguration vornehmen. Außerdem gibt es Images, die sich bei mir nicht direkt von einer SSD über USB installieren und booten ließen. Das übertragen einer bereits funktionierenden Installation auf eine SSD, die über USB angeschlossen ist, hat jedoch einwandfrei funktioniert. So ließ sich das Image von Openmediavault nicht direkt auf eine SSD kopieren und über USB booten. Nachdem OMV jedoch auf einer SD-Karte installiert und eingerichtet war, konnte ich das System auf eine SSD übertragen und problemlos von der SSD über USB booten.

Aber auch andere, bereits vorhandene Installation eines Raspberry Pi Betriebssystems, lassen sich auf einen USB-Stick übertragen und anschließend von dort booten.

Prüfen ob das Booten von USB auf dem Raspberry Pi aktiviert ist

Im Gegensatz zu “richtigen” Computern verfügt der Raspberry Pi nicht über ein Bios oder UEFI, in dem umfangreiche Einstellungen zum Bootvorgang vorgenommen werden können. Stattdessen findet sich auf der Boot-Partition der SD-Karte eine Konfigurationsdatei, in welcher Einstellungen die den Bootvorgang betreffen vorgenommen werden können. Zuerst muss geprüft werden, ob der Raspberry Pi bereits korrekt konfiguriert ist. Während neue Raspberry Pi Installationen bereits entsprechend konfiguriert zu sein scheinen, sind ältere Installationen standardmäßig nicht zum Booten von USB-Sticks oder externen Festplatten eingerichtet.

Außerdem muss man beachten, dass lediglich die Modelle Raspberry Pi 3 und neuer, sowie Raspberry Pi Zero und Zero W von USB-Datenträgern booten können. Altere Modelle unterstützen das leider nicht.

Für diese und alle weiteren Arbeiten wird das Terminal benötigt, das im Startmenü über Himbeere > Zubehör > LXTerminal gestartet wird. Hier wird nun folgender Befehl eingegeben.

vcgencmd otp_dump | grep 17:

Nur wenn als Ausgabe 17:3020000a angezeigt wird, ist der Raspberry Pi bereits zum Booten von USB konfiguriert. Du kannst dann direkt zur Überschrift “USB Stick zum Booten für den Raspberry Pi einrichten” springen.
Wenn Du als Ausgabe etwas anderes angezeigt bekommst, ist der Raspberry Pi noch nicht richtig konfiguriert. Dann musst du zuerst die folgenden Schritte vornehmen.

Raspberry Pi für das Booten von USB konfigurieren

Zuerst wird das System aktuell laufende System und alle installierten Programme auf den neuesten Stand gebracht mit folgendem Befehl.

Anzeige:
sudo apt update && sudo apt -y upgrade

Dann wird die Firmware noch auf den aktuellsten Stand gebracht, mit folgendem Befehl. Hierbei wird immer die aktuellste, und nicht unbedingt die stabilste, veröffentlichte Version eingespielt. Bei einem bereits laufenden System sollte es im Normalfall nicht nötig sein, diesen Befehl auszuführen.

sudo BRANCH=next rpi-update

Diese Datei zum Konfigurieren des Bootvorgangs liegt unter /boot/config.txt und kann mit normalen Rechten nicht mit dem Texteditor bearbeitet werden. Aus diesem Grund öffnen wir die Datei mit Root-Rechten im Texteditor. Hierzu wird der Ausführen Dialog geöffnet. Entweder über die Tastenkombination ALT+F2, oder über das Startmenü über Himbeere > run. Hier gibt man folgenden Befehl ein.

sudo -H leafpad /boot/config.txt

Nun öffnet sich die Datei im Texteditor. Hier fügt man als letzte Zeile folgendes hinzu, um das Booten von USB zu aktivieren.

program_usb_boot_mode=1 
Raspberry Pi USB Mode aktivieren

Damit die Änderung aktiv wird, muss der Raspberry Pi einmal neu gestartet werden.

USB Stick zum Booten für den Raspberry Pi einrichten

Nun muss der USB-Stick vorbereitet werden und anschließend das Betriebssystem von der SD-Karte auf den USB Stick kopiert werden.

Zuerst müssen wir herausfinden unter welchem Gerätenamen der USB-Stick dem Raspberry Pi bekannt ist. Dazu geben wir den folgenden Befehl im Terminal ein.

sudo fdisk -l

Als Ausgabe bekommen wir eine lange Liste. Am Ende finden sich zwei Geräte mit den Namen /dev/mmcblk0 (oder ähnlich) und /dev/sda (oder ähnlich). Bei /dev/mmcblk0 handelt es sich um die SD-Karte, dev/sda ist der USB Stick. Sicherheitshalber sollte man prüfen, ob der angegebene Speicherplatz auch mit der Größe des USB-Sticks übereinstimmt. Um Fehler zu vermeiden, sollte man keine weiteren USB-Datenträger anschließen, bis die Konfiguration abgeschlossen ist.

Ausgabe von fdisk

Standardmäßig bindet das Betriebssystem den USB-Stick, wenn er eingesteckt wird automatisch in das Dateisystem ein. Damit wir den Stick neu formatieren können, muss dieser zuerst ausgehängt werden. Dies geschieht über den Button oben rechts in der Menüleiste von Raspbian.

Raspbian unmount button

Alternativ kann der Stick mit dem Befehl sudo umount /dev/sda ausgehängt werden.

Im nächsten Schritt wird die Partitionierung vorgenommen. Es wird eine kleine Partition mit 100 Megabyte und dem Dateisystem FAT32 für die Bootpartition erstellt. Dann wird eine weitere Partition mit dem Linux-Dateisystem EXT4 erstellt, die den gesamten restlichen Speicherplatz in Anspruch nimmt. Die Partitionierung erfolgt mit folgenden Befehlen.

Anzeige:
sudo parted /dev/sda

mktable msdos
mkpart primary fat32 0% 100M
mkpart primary ext4 100M 100%
quit
Formattieren mir parted

Im nächsten Schritt werden die soeben angelegten Partitionen formatiert.

sudo mkfs.vfat -n BOOT -F 32 /dev/sda1 
sudo mkfs.ext4 /dev/sda2

Damit ist der USB-Stick vorbereitet. Im nächsten Schritt werden die Partitionen in das Dateisystem eingehängt, also als Ordner verfügbar gemacht. Anschließend wird das Betriebssystem von der SD-Karte auf den USB-Stick kopiert. Der erste Befehl erstellt den Ordner /mnt/usbstick. Der zweite Befehl macht die Partition für das Betriebssystem des USB-Sticks unter dem Ordner /mnt/usbstick verfügbar. Der dritte und vierte Befehl machen das selbe für die zukünftige Bootpartition unter /dev/sda1, die unter /mnt/usbstick/boot eingebunden wird.

sudo mkdir /mnt/usbstick
sudo mount /dev/sda2 /mnt/usbstick
sudo mkdir /mnt/usbstick/boot
sudo mount /dev/sda1 /mnt/usbstick/boot
USB-Stick mounten

Im folgenden Schritt wird das Betriebssystem von der SD-Karte auf den USB-Stick kopiert. Dieser Vorgang kann relativ lange dauern, da unter Umständen mehrere Gigabyte kopiert werden müssen.

sudo rsync -ax --progress / /boot /mnt/usbstick

Im letzten Schritt müssen noch die IDs der Partitionen in zwei Konfigurationsdateien aktualisiert werden. Dann kann das Betriebssystem vom USB-stick gebootet werden.

Partition-IDs im Betriebssystem aktualisieren

Damit das Betriebssystem die Datenträger neu initialisiert,

Um die IDs herauszufinden geben wir untenstehenden Befehl in das Terminal ein.

sudo blkid

Hier benötigen wir die Zeichenfolgen die zwischen den Anführungszeichen hinter PARTUUID stehen. Jeweils aus den Zeilen für /dev/sda1 und /dev/sda2.

PARTUUID anzeigen

Diese IDs müssen nun in zwei Dateien aktualisiert werden, die wir hierzu im Texteditor öffnen. Die erste Datei die angepasst werden muss ist die /mnt/hd/boot/cmdline.txt. Dazu verwenden wir folgenden Befehl, um die Datei im Texteditor mit Rootrechten zu öffnen.

sudo -H leafpad /mnt/usbstick/boot/cmdline.txt

Hier scrollt man, bis der Eintrag PARTUUID erscheint. Diese wird ersetzt, durch die ID der neuen Systemplatte /dev/sda2, in diesem Fall also a0c95494-02.

Über Datei > Speichern und Datei > Beenden wird der Editor wieder geschlossen.

Anzeige:
PARTUUID aktualisieren

Als letzten Schritt müssen wir die IDs noch in der Datei /etc/fstab aktualisieren.

sudo -H leafpad /mnt/usbstick/etc/fstab

Hier müssen beide IDs aktualisiert werden. Die von /dev/sda1 und die von /dev/sda2. Anschließend wird auch diese Datei wieder gespeichert und der Texteditor geschlossen.

PARTUUID in /etc/fstab aktualisieren

Damit ist der Raspberry Pi endlich bereit um das Betriebssystem vom USB-Stick zu booten.

Der Raspi muss nun heruntergefahren werden. Dann kann man die SD-Karte entfernen und den Pi erneut starten. Diesmal ohne eingelegte SD-Karte, nur vom USB-Stick.

Hinterlasse einen Kommentar

Please enter your comment!
Die Angabe von Name oder Webseite ist optional. Weitere Informationen: siehe Datenschutzerklärung

Please enter your name here