Seite 1 von 2

Raspberry Pi 3B/3B+/4B/400: Von USB booten

Verfasst: 27.08.2016, 13:51
von Outi
History:
10.11.2020 - Anleitung aktualisiert
22.05.2020 - Hinweis zum USB- und Netzwerk-Boot zum RasPi 4B geändert
29.06.2019 - Hinweis zum USB- und Netzwerk-Boot zum RasPi 4B hinzugefügt
23.06.2019 - Hinweis zur USB Bootfunktion des Pi 3B+ aktualisiert
28.03.2018 - Hinweis zur USB Bootfunktion des Pi 3B+ hinzugefügt
17.04.2017 - Anleitung auf neues Image angepasst (USB Boot Unterstützung ist jetzt integriert)
27.08.2016 - Erste Fertigstellung



Hinweis:
Diese Anleitung/Information erhebt keinen Anspruch auf Vollständigkeit und kann Fehler enthalten und die Benutzung erfolgt auf eigene Gefahr.
Es wird keinerlei Haftung für Schäden und/oder Datenverluste übernommen.

Info:
Raspberry Pi 3B+, 4B und 400 und USB Boot:
Das Konfigurieren nach dieser Anleitung ist auf den oben genannten Raspberry Pis nicht mehr nötig.
Man kann einfach das Raspbian Image statt auf eine SD Karte direkt auf einen USB Stick oder Festplatte/SSD flashen ohne jegliche Änderung.

Die meisten USB Sticks und USB/SATA Adapter sollten funktionieren aber leider scheinen nicht alle zu funktionieren !!
Daher keine Gewähr auf Funktion aber auf den meisten USB Sticks und Festplatten/SSDs sollte es klappen.

Ich habe Raspbian Buster und Ubuntu Server 2.10 (Groovy) 64Bit z.B. erfolgreich mit einem SanDisk Ultra USB 3.0 128 GB Stick und in einem anderen Fall mit einer 500er Festplatte starten können (ohne SD Karte).

Es kann sein, dass man u.U. einmalig über das Raspberry Pi OS in der raspi-config das Booten von USB einstellen muss.
Hier gibt es 2 Modi: USB Boot & Netzwerk Boot (sobald keine SD Karte entfernt wird).

Info:
Diese Anleitung dient nur für den Pi 3B (ohne +) und setzt ein bootfähiges RASPBIAN auf SD Karte voraus (Lite Version ausreichend).
Diese bootfähige SD Karte wird nur einmalig für das dauerhafte Aktivieren der USB Bootfunktion des Pi 3B benötigt, sofern es sich um einen neuen/unmodifizierten Raspberry Pi 3B handelt.
Pi3B, die bereits früher schon einmal für USB Boot modifiziert wurden, können den Teil mit der SD Karte ignorieren.

Hintergrund:
Der Raspberry Pi3(+), 4B und 400 sind die einzigen Pis, die das Booten von USB und Netzwerk beherrschen. Um dies auf einem Pi 3B (ohne +) zu ermöglichen, muss diesem Pi in einem Baustein (sogenannter SoC / System on Chip) ein Register umgeschrieben, somit also die hier beschriebene Bootfunktion aktiviert werden. Dies ist aber nur im Betrieb mit einem laufenden Raspbian möglich, weshalb eben die genannte SD Karte benötigt wird. Ist die Umstellung vollzogen, kann die SD Karte anderweitig verwendet werden und wird danach nicht mehr benötigt.


Um von einem USB Gerät booten zu können, muss eine SD Karte für die Umstellung des Pi 3B auf USB Boot installiert werden.
Wie das funktioniert, steht in dieser Anleitung: Raspberry Pi installieren: RASPBIAN Buster (+Full +Lite)

Es ist völlig ausreichend, wenn das Lite Image hierfür genutzt wird und es können auch viele Konfigurationen und Umstellungen weggelassen werden, die nachher sowieso auf dem USB Stick endgültig durchgeführt werden sollen.
Wichtig ist nur, dass man den Anfang der anderen Anleitung soweit durchführt, dass man den Pi mit der SD Karte booten und sich per SSH oder Monitor und Tastatur einloggen kann. Für Ersteres muss nach wie vor auch wieder die leere SSH Datei angelegt werden, da sonst kein Zugriff per Putty möglich ist (siehe oben verlinkte Anleitung).

Parallel hierzu wird das endgültige Image (Pixel oder Lite) wie gehabt (und in der anderen Anleitung beschrieben) auf den später verwendeten USB Stick geflasht. Auch hier wird gleich die SSH Funktion aktiviert.

Nun wird die SD Karte aus dem Reader genommen und in den Pi gesteckt und der Pi gebootet.

Die USB-Boot-Funktion wird mit dem folgenden Befehl in der Datei config.txt aktiviert:

Code: Alles auswählen

echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt
Der Befehl setzt die gewünschte Erweiterung automatisch ans Ende der Datei /boot/config.txt.

Nun muss der Pi heruntergefahren werden (Achtung: kein Reboot !!):

Code: Alles auswählen

sudo shutdown now
Nach dem Herunterfahren wird der zuvor mit Raspbian geflashte USB Stick in den Pi eingesteckt und der Pi wieder gestartet.
Dies wäre zwar normalerweise nicht nötig, da aber nach der Umstellung die SD Karte nicht mehr startet (da ja von USB gebootet werden soll), bleibt der Pi beim Restart stehen (weil der USB Stick fehlt) und man müsste den Strom abziehen, was sehr häufig zu Datenverlusten auf der SD Karte führt. Diese sollten wir aber mindestens 1x noch starten, um die Umstellung zu aktivieren und zu überprüfen.

Nach dem Start muss geprüft werden, ob die Änderung Erfolg hatte.
Dafür ist folgender Befehl einzugeben:

Code: Alles auswählen

vcgencmd otp_dump | grep 17
Hier sollte als Ergebnis Folgendes ausgegeben werden:

Code: Alles auswählen

pi@raspberrypi:~ $ vcgencmd otp_dump | grep 17
17:3020000a
Weicht die ausgegebene Zahl in der zweiten Zeile von der hier angezeigten ab, ist was schief gelaufen oder es wurde etwas vergessen.

Passt die Zahl, wird der Pi wieder heruntergefahren:

Code: Alles auswählen

sudo shutdown now
Danach wird die Stromversorgung abgezogen und die SD Karte herausgezogen.
Wenn alles korrekt verlaufen ist, startet der Pi ohne SD Karte direkt vom USB Gerät nach dem erneuten Einstecken der Stromversorgung.

Nach erfolgreichem Login kann der Pi nun mit der ganz oben verlinkten Anleitung weiter konfiguriert werden.


Fortsetzungen, Korrekturen, Änderungen möglich ....

Copyright © 2024 by RasPiFun.de

Re: RaspBerry Pi 3 B: Von USB booten

Verfasst: 29.09.2016, 01:53
von wominator
Hallo in die Runde!

Ich besitze 1 x RPi2 (mit LibreELEC und Kodi) und 2 x RPi3 mit WD Pi-Drive (314 GB und passenden Gehäusen und Kabelsatz).

Ich konnte bisher keine Lösung im Netz finden und versuche daher mein Glück hier.

Auf einem von den RPi3 habe ich nach obiger Anleitung 2016-05-27-raspbian-jessie-lite und Nextcloud installiert, was auch alles bestens, inkl. LetsEncrypt usw., funktioniert. Auf dem zweiten RPi3 habe ich das gleiche Image drauf, nur bisher "leer", ohne Nextcloud o.ä. Nun standen heute Updates von raspberrypi-bootloader raspberrypi-kernel raspi-config welche ich auf dem zweiten RPi3 installiert habe. Ich konnte noch sehen, wie die Updates wohl alle "Hacks" rückgängig gemacht haben und natürlich bootet der RPi3 nicht mehr.
Daher habe ich, verständlicherweise, vom Update meines anderen RPi3 mit Nextcloud abgesehen.

Irgendeine Idee, wie man 2016-05-27-raspbian-jessie-lite nach Installation auf USB-HDD updaten kann, ohne dass die ganze Konfiguration zerschossen wird?

Für einen Tipp bin ich sehr dankbar!

Gruß aus Berlin
Wominator

Re: RaspBerry Pi 3 B: Von USB booten

Verfasst: 29.09.2016, 13:37
von Outi
Hallo wominator,

herzlich willkommen im Forum.

Hast Du schon mal das aktuelle Image vom 2016-09-23 probiert oder meintest Du das Update darauf ??

Das von mir in der Anleitung geschilderte rpi-update sollte nur dem Zweck dienen, die USB-Boot-Fähigkeit zu implementieren.
Generell wird dieser Befehl aber nur für solche und andere Sachen empfohlen, wenn sonst etwas nicht läuft oder nicht unterstützt wird.
Daher ist es angeraten, diesen Befehl ganz am Anfang durchzuführen, bevor man mit der Konfiguration anfängt und dann nur noch bei den zuvor genannten Notwendigkeiten.

Mir ist auch schon aufgefallen, dass bei einem solchen Upgrade diverse Dateien ersetzt werden (wie auch z.B. die Datei CONFIG.TXT).
Daher kann ich im Moment nur raten, von den veränderten Dateien ein Backup durchzuführen.
Gerade die CONFIG.TXT wird oft erneuert, da meist neue oder andere Optionen hinzugefügt werden.

Hilfreich ist es auch, irgend eine etwas weniger wichtige SD Karte zu verwenden, die nur für die USB-Boot-Konfiguration verwendet wird, damit man im Notfall die Bootfähigkeit wieder herstellen kann.

Im Moment kann ich Dir auf die Schnelle nicht helfen und kann nur empfehlen mal zu schauen, ob Du nicht mit einer bootfähigen SD auf die Platte schaust und dort die Änderungen aus der Anleitung wieder herstellen oder nacharbeiten kannst.

Einen Tipp zum gefahrlosen Firmwareupdate habe ich leider (noch) nicht (außer Backup für den Notfall), da ich das Booten von USB aus Geschwindigkeitsgründen wieder verworfen habe. Ich hatte aber damals einen USB Stick für die Anleitung verwendet, evtl. ist das bei einer Festplatte ein wenig anders, wobei die Geschwindigkeitsbegrenzung beim USB Port liegt.

Ich werde bei Gelegenheit (hab grad viel um die Ohren) die Anleitung auch mal mit dem neuen Image der Foundation testen und Anpassungen vornehmen.

Nachtrag:
Evtl. mal ein Image machen, dann statt ein sudo rpi-update ein sudo apt-get dist-upgrade.
Hier wird nur die Distribution upgedated und nicht gleich die Firmware angepasst.
Wenn alles schief läuft, kannst Du das Backupimage wieder zurückspielen und ggf. auch so weiter arbeiten.
Never touch .... und so .... ;) :D

Re: RaspBerry Pi 3 B: Von USB booten

Verfasst: 17.04.2017, 01:27
von Outi
Eine neue Image Version von Raspbian mit Pixel und Raspbian Lite ist draußen:
2017-04-10:
  • ....
  • ....
  • Use PARTUUID to support USB boot
Interessant ist hier der Punkt, dass nun im Image der direkte USB Boot implementiert wurde, also das Image auf einen USB Stick gespielt werden kann.
Dies wird aber wohl nach wie vor dem Raspberry Pi 3 vorbehalten bleiben.

Sobald ich dieses Image getestet habe, wird diese Anleitung angepasst oder evtl. in die Hauptanleitung integriert.

Re: RaspBerry Pi 3 B: Von USB booten

Verfasst: 17.04.2017, 19:03
von Outi
Anleitung ans neue Image angepasst.

Re: RaspBerry Pi 3 B: Von USB booten

Verfasst: 13.03.2018, 00:25
von Peter_S
Ich habe da mal ne Frage ;-)
Wenn ich das richtig versteh soll ich nach dem Schreiben der Anweisung zum Setzen des Boot USB Flags an das ende der config.txt mit dem USB-Stift starten.
Zitat:
Nach dem Herunterfahren wird der zuvor mit Raspbian geflashte USB Stick in den Pi eingesteckt und der Pi wieder gestartet.
Dies wäre zwar normalerweise nicht nötig, da aber nach der Umstellung die SD Karte nicht mehr startet (da ja von USB gebootet werden soll), bleibt der Pi beim Restart stehen (weil der USB Stick fehlt)
Zitat Ende:

Anmerkung:
Erst muss die Anweisung ausgeführt und das Bit gesetzt sein, sonst wird das nix.
Dazu startest Du den Pi nochmal mit der SD-Karte, beim Boot wird die Anweisung ausgeführt, die das USB-Boot Flag im SoC permanent setzt.

Ich habe gelesen, dass mit gesetztem USB Flag lediglich die Suche nach startfähigen Bootlaufwerken auf USB ERWEITERT wurde.
Ergo:
Der Start von SD-Karte ist nach wie vor möglich.
Um von einem USB-Laufwerk zu staren macht dann entweder den Steckplatz leer,
belegt ihn mit einer leeren SD-Karte (wird die Suche schneller abgebrochen)
oder bootet im ersten Schritt von der SD-Karte eine Boot-Konfiguration, die dann das Root-System auf dem USB-Stift anspricht.

Re: RaspBerry Pi 3 B: Von USB booten

Verfasst: 13.03.2018, 13:59
von Outi
Hallo Peter_S,

willkommen im Forum und Danke für die Info.

So, wie ich es noch in Erinnerung habe, ging es nicht anders, da die Registerumschreibung ja erst durch ein erneutes Booten von SD durchgeführt wird.
Du bootest also von der SD, machst die Änderung in der Config.txt und bootest erneut von der SD, um das Register beim Hochfahren von SD umzuschreiben. Dann entfernst Du nach dem Shutdown die SD und bootest von USB.

Ich muss mal schauen, ob ich das nicht ein wenig besser beschreiben kann.

Re: RaspBerry Pi 3 B: Von USB booten

Verfasst: 28.03.2018, 02:17
von Outi
Hinweis zur USB Bootfunktion des Pi 3B+ hinzugefügt.

Re: RaspBerry Pi 3 B: Von USB booten

Verfasst: 23.06.2019, 18:17
von Outi
Hinweis zur USB Bootfunktion des Pi 3B+ aktualisiert.

Man kann auf dem Raspberry Pi 3B+ normalerweise direkt ohne Konfiguration von einem USB Stick booten, ohne vorher irgendetwas zu konfigurieren oder mit einer SD Karte vorzubereiten.

Sollte mit den meisten USB Sticks klappen aber leider scheint es auch Ausnahmen zu geben, daher keine Gewähr und bitte selbst ausprobieren.

Re: Raspberry Pi 3B/3B+/4B: Von USB booten

Verfasst: 29.06.2019, 15:59
von Outi
Hinweis zum USB- und Netzwerk-Boot zum RasPi 4B hinzugefügt.