Diese Frage habe ich im englischen Forum gestellt und eine gute Antwort erhalten die hier vielleicht auch Interessenten hat

Kann man an einem RPi5 festlegen von welchem USB Geräte zu booten ist wenn mehrere USB Geräte angeschlossen sind?
-
framp -
March 11, 2025 at 6:27 PM -
Thread is Resolved
-
-
Kann man an einem RPi5 festlegen von welchem USB Geräte zu booten ist wenn mehrere USB Geräte angeschlossen sind?? Schau mal ob du hier fündig wirst!
-
in der "cmdline.txt" steht doch die PARTUUID des /-Verzeichnisses, wenn man also hier den richtigen Eintrag einpflanzt, sollt das System zwar vom /boot des ersten auffindbaren FAT32-Datenträgers starten, doch die Einbindung von /boot könnte man nach dem Starten doch an das entsprechende Verzeichnis des /-Datenträgers anpassen.
Denn /boot ist dann doch nicht mehr im Zugriff, oder?
-
wenn, dann würde ich von ner SD booten und per PARTUUID oder UUID auf das gewünschte USB-Speichermedium verweisen (wie schon Rasp-Berlin vorgeschlagen hat).
Mit dem Vorteil, man kann per SD-Wechsel den entsprechenden Datenträger aussuchen.
Aber: nach einem Update des Kernels muss /boot auf der SD auch aktualisiert werden. Im Falle mehrere SDs eben alle involvierten Datenträger.
Ich hab damit nur schlechte Erfahrungen gemacht. -
Ich fürchte ihr habt beide das Problem nicht verstanden! (oder ich euch nicht)
Folgendes Szenario: Ein aktiver USB-Hub hängt am RPi. In diesem Hub stecken zwei USB-Sticks, auf denen jeweils ein komplettes OS installiert ist. Eine SD oder einen NVMe-Hat gibt es nicht.
Frage: Welcher der beiden USB-Sticks wird gewinnen und als System starten?
Antwort: Es ist nicht der, bei dem Du vorher die config.txt umbenannt hast.
-
sollt das System zwar vom /boot des ersten auffindbaren FAT32-Datenträgers starten, doch die Einbindung von /boot könnte man nach dem Starten doch an das entsprechende Verzeichnis des /-Datenträgers anpassen.
Ich habe das eben mal ausprobiert - beide HDs haben dasselbe OS und dasselbe /boot - und es funktioniert wie Du vermutest
Diese Methode gefällt mir auch besser da ich dann nicht jedesmal im RPI5 das EEPROM ändern muss. Keine Ahnung wie die Lifetime des EEPROMs ist. Aber sicherlich nicht unendlich. Und ich möchte meinen einzigen RPi5 doch noch etwas länger nutzen können
. Der ist schon um eine Hausnummer schneller als der RPi4 den ich immer zum raspiBackup Testen genutzt habe.
Ich werde diese Methode im englischen Thread beschreiben. Mal sehen was da an Feedback kommt.
-
Diese Methode gefällt mir auch besser da ich dann nicht jedesmal im RPI5 das EEPROM ändern muss
Warum das denn? Du bootest ja bald von einer NVMe. Dann stell die Bootreihenfolge dauerhaft so ein, dass zuerst von SD, dann von USB und dann von NVMe gebootet wird.
Wenn Du nun mit dem Vorhandensein einer config.txt arbeiten kannst, dann ist es doch eine einfache Sache zu bestimmen, was booten soll.
Der Vorteil davon ist, dass auf allen Datenträgern verschiedene OS in verschiedenen Versionen liegen können. Die PARTUUIDs dürfen natürlich nicht gleich sein.
Falls Du versehentlich bei allen die config.txt umbenannt haben solltest, kannst Du einfach eine andere SD mit einem Lite OS in den Slot des RPi stecken, die NVMe mounten und dessen config.txt wieder gerade biegen.
-
Ich empfehle einen USB-Hub mit Schalter
USB-Port 1 Raspi-OS , Port2 -- Ubuntu , Port3 BSD, Port 4 Stick mit Daten (/home). Dann nur mehr den Schalter umlegen und alles ist gut.
Das funktioniert von Raspi 3 aufwärts gut und problemlos.Übrigens die Port werden anhand ihrer anschluss-nummer durchlaufen. der erste gefundene gewinnt.
-
Stimmt
. Die Configmethode habe ich aus den Augen verloren. Das ist das wohl die beste Methode.
Im englischen Forum hat jemand auch eine Methode vorgestellt mit GPIOs das zu steuern. Entweder manuell durch einen Schalter oder auch mit einem Pico o.ä. automatisch.
juhu01 Ich brauche eine automatische bzw durch SW gesteuerte Umschaltung. Ich will Ja den Regressiontest unattended durchlaufen lassen.
-
In Deinem Anwendungsfall ist es sogar noch einfacher und ohne config.txt umbenennen machbar, auch wenn ich diese Möglichkeit richtig gut finde.
Du stellst die Bootreihenfolge wie oben geschrieben ein und bootest von USB das OS, wovon ein Backup getestet werden soll und in den SD-Slot des RPi steckst Du (ggf. mit Verlängerung) eine SD, auf die restored werden soll. Dann schubst Du nach dem Backup (evtl. auch von ein am USB angestecktem Laufwerk oder NAS) das Restore an und wenn das fertig ist, bootest Du den RPi einfach neu. Jetzt wird automatisch von der SD gebootet und Du das Restore testen. Ist alles schick, dann RPi runter fahren, SD raus und RPi starten....
Färtsch!
So ähnlich mache ich das bei meinen Backups auf dem RPi 5, allerdings mit NVMe und rpi-clone direkt auf SD-Cardreader am USB.
-
Um ein Backup zu testen funktioniert Dein Ansatz sehr gut.
Ich will aber alle möglichen Backuptypen und Modi von raspiBackup durchtesten - also dd, ddz, tar, tgz und rsync - sowie diverse Restoreoptionen. Der momentane Regressiontest per QEMU testet aktuell 20 verschiedene Kombinationen. Je nachdem wie schnell das dann mit dem RPi5 läuft werde ich u.U noch weitere Optionen dazubringen. D.h. ich kann der Wechsel der Bootgerätes nur automatisch über die PARTUUID in der config.txt oder das Vorhandensein der config.txt steuern. Ich denke das Renamen der config.txt ist einfacher zu handeln. Ich probiere das mal aus.
-
Ah ok! Ja dann ist das Umbenennen der config.txt in diesem Fall wohl doch der einfachste Weg.
-
Oder wie wäre es einen Schaltbaren HUB mit zB. 4xUSB-Ports zu verwenden, meine Idee ist es auf einer nVME 2-3 root Partitionen zu erstellen, dann auf 3 verschiedenen Stick's nur die boot mit 3 verschiedenen PARTUUID einzurichten, danach können alle 3 boot-Sticks im HUB verbleiben und bei bedarf Stick 1-3 einschalten und booten, so bräuchte man nicht jedes mal die config.txt zu renamen!
IMHO
EDIT:
Da kann auch ein kernel update kommen da immer die richtige boot zur entsprechenden root verwendet wird, so wie ich mir das gedacht habe.
Lg Qvrgre
-
Schaltbaren HUB
Ist für meinen Anwendungsfall leider unbrauchbar da alles ja unattended laufen soll. Ist aber interessant was jetzt so Ideen hochkommen wie man verschiedene OSe booten kann
-
Participate now!
Don’t have an account yet? Register yourself now and be a part of our community!