So starten Sie Ihren Raspberry Pi direkt vom USB-Stick

Raspberry Pi muss ebenso wie Banana Pi oder Odroid auf einer Micro-SD-Karte bereitgestellt werden. Alternativ ist aber auch das Starten vom USB-Stick möglich. Wir zeigen Ihnen wie.

Das Betriebssystem vom USB-Stick zu starten hat grundsätzlich Vorteile. USB-Sticks sind nicht so winzig und daher etwas handlicher wie SD-Karten. Bei Letzteren muss zum Beispiel manchmal umständlich das Gehäuse geöffnet werden. Vorteilhaft ist auch, dass USB-Sticks bei gleicher Speichergröße günstiger und in beliebigen Kapazitäts-Varianten erhältlich sind. Kaum Vorteile dürfen Sie hingegen hinsichtlich der Geschwindigkeit erwarten, denn USB-Sticks sind in etwa so schnell wie SD-Karten. Das gilt aber nur für USB der Generation 2.0. Entscheiden Sie sich für einen Stick mit USB 3.0, fällt der Geschwindigkeits-Unterschied sogar gravierend aus. Leider erwarten Betriebssysteme wie Raspberry zwingend eine SD-Karte als Bootumgebung. Erst wenn diese vorhanden ist, können Sie in einem zweiten Schritt auf USB ausweichen.

So gelingt die Einrichtung für Raspbian

Die Platine mit der höchsten Verbreitung heißt Raspberry Pi, entsprechend bezieht sich unser Beispiel auf diese Platine. Raspberry Pi wiederum greift in den meisten Fällen auf das Platinensystem Raspbian zurück, das wir ebenfalls in unserer Beispiel-Einrichtung verwenden. So können möglichst viele Nutzer unsere Anleitung direkt auf ihrem System umsetzen. Sie können sich an unserer Anleitung aber selbstverständlich auch dann orientieren, wenn Sie einen anderen Mini-Rechner mit einem anderen Betriebssystem verwenden. Das Konzept ist immer gleich. Allerdings gibt es doch einen Unterschied bei allen Betriebssystemen: Der Abzweigungspunkt vom Bootloader der SD-Karte auf USB ist immer ein anderer.

Folgende Schritte sind unbedingt für eine erfolgreiche Installation erforderlich:

Laden Sie das erforderliche System aus dem Internet herunter. Die entsprechende Image-Datei laden Sie auf den USB-Stick. Unter Windows verwenden Sie hierfür den Win 32 Disk Imager, unter Linux hilft dd weiter.
Die Bootumgebung müssen Sie dann auf Ihrem Linux-PC vom USB-Stick auf die SD-Karte kopieren. Dazu benötigen Sie Zugriff auf die Bootpartition und die dort befindlichen Daten. Unter Ubuntu gelingt das besonders einfach, indem Sie über Strg-L den Dateimanager aufrufen und "computer:///" eingeben. Sie finden den eingesteckten Stick nun als "boot" und als "Datenträger" in der Geräteliste vor.
Kopieren Sie einfach alles, was Sie unter "boot" finden, in das Hauptverzeichnis der SD-Karte. Sie müssen hierfür kein zusätzliches Verzeichnis auf der Karte anlegen. Zu den zu kopierenden Dateien gehören zum Beispiel "bootcode.bin" und "kernel.img".

In welcher Textdatei die Systempartition definiert ist, hängt vom verwendeten Platinensystem ab. Im Falle von Raspbian finden Sie die Definition in der Datei "cmdline.txt". Die Definition besteht aus nur einer Zeile. Bei anderen Platinensystemen finden Sie die Information in der Datei "boot.scr". Die für uns interessante Anweisung beginnt dabei mit "root=". Das Gerät der Systempartition nennt sich meistens "/dev/mmcblk0b2". Hierbei handelt es sich um die zweite Partition auf der SD-Karte.

Bei Raspbian geben Sie einfach "root=/dev/sda2" ein - ohne Umbrüche. Verändern Sie keine der anderen Angaben in der Datei. Der Kernel wird nun beim Starten das System auf der zweiten Partition suchen. Die erste Partition des Bootsticks enthält die Bootinformationen, die nun eigentlich überflüssig sind. Auf eines müssen Sie allerdings achten: Schließen Sie an den Rechner neben dem USB-Stick mit dem Betriebssystem noch weitere USB-Laufwerke an, muss die Angabe der Kennung "sda2" in einigen Fällen auf "sdb2" geändert werden. Bei anderen Systemen funktioniert das ganz ähnlich wie bei Raspbian. In einigen Fällen werden Sie nicht auf die Gerätebezeichnung "/dev/mmc..." stoßen, sondern auf einen Hexadezimal-Code, der die UUID-Kennung enthält. Doch auch hier können Sie nach dem Root-Eintrag einfach eine normale Partitionsbezeichnung verwenden wie etwa "/dev/sda2".

Manuelle Erweiterung des Dateisystems

Starten Sie nun den Rechner neu, SD-Karte und USB-Stick sind eingesteckt. Der Rechner fährt wie erwartet hoch? Dann war das Experiment erfolgreich. Das muss es in diesem Fall sein, denn auf der SD-Karte befindet sich kein Betriebssystem mehr, nur die Bootumgebung ist hier noch vorhanden. Die Dateien des Betriebssystems befinden sich jetzt auf dem USB-Stick.

Geben Sie nun das Kommando df -h ein, wird sofort ein Problem sichtbar: Die Systempartition nutzt nur einen sehr kleinen Teil der zur Verfügung stehenden Speichergröße auf dem Stick. Den noch freien Speicherplatz möchten Sie natürlich nicht verschenken. Die Verschwendung des Speicherplatzes ist nach der oben beschriebenen Installation normal und kann mit entsprechenden Tools behoben werden. Raspi-config zum Beispiel bietet über "Expand Filesystem" die Möglichkeit, den Speicherplatz wieder nutzbar zu machen. Leider funktioniert das nicht, wenn Sie Ihr System so wie in unserem Beispiel auf USB installiert haben.

Zum Glück können Sie mit ein wenig Handarbeit das gleiche erreichen wie mittels raspi-config. Die Vorbereitungen hierfür sollten Sie bereits auf dem Linux-PC treffen - unter Rückgriff auf die Funktionen von Gparted. Das Tool zeigt Ihnen den auf dem Stick noch nicht zugewiesenen Speicher an.

Klicken Sie mit der rechten Maustaste auf die Systempartition, die die Ziffer "2" trägt. Nun können Sie deren Größe ändern oder die Partition verschieben. In unserem Fall sollten Sie den Schieberegler ganz nach rechts ziehen und dann auf "Größe ändern" klicken. Über "Bearbeiten -> Alle Vorgänge ausführen" wird die Änderung bestätigt.

Sie möchten das Problem lieber direkt über die Kommandozeile lösen? Auch das ist möglich. Geben Sie in fdisk den Befehl "sudo fdisk /dev/sda" ein, um sich zuerst die benötigten Informationen über die Partition zu besorgen. Hier erfahren Sie zum Beispiel, an welcher Stelle die zweite Partition genau anfängt bzw. in welchem Sektor dies geschieht. Im Falle des von uns verwendeten Raspbian handelt es sich um den Sektor 122880. Mit neuen Versionen kann sich der Sektor aber in der Zukunft natürlich noch verändern. Merken Sie sich den angegebenen Wert, diesen benötigen Sie beim Neuanlegen der Partition.

Nun geben Sie das Kommando "d" für das Löschen von Partitionen ein. Die Systempartition verschwindet nun, nachdem Sie die entsprechende Partitionsnummer "2" eingegeben haben. Fdisk fordert Sie hierzu auf. Geben Sie gleich danach "n" ein, worauf die Partition neu angelegt wird. Fdisk wird Sie nun nach dem Partitionstyp fragen. Geben Sie hier "p" für eine primäre Partition ein. Die "Partition number" ist wieder die "2". Nun müssen Sie letztendlich den Startsektor angeben. Verwenden Sie hier den Wert, den Sie oben ermittelt haben. Mit dem Befehl "w" werden die Änderungen auf den Datenträger geschrieben.

Starten Sie abschließend den Rechner neu und überprüfen Sie mit "sudo resize2fs /dev/sda2", ob der Speicher erfolgreich zugewiesen wurde.