Kann man an einem RPi5 festlegen von welchem USB Geräte zu booten ist wenn mehrere USB Geräte angeschlossen sind?

  • 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?

    Computer ..... grrrrrr

  • 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.

    ---

    Alles ist relativ - ob in dieser oder deiner Welt :biggrin:

  • 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 :thumbsup1:

    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 :shy:. 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.

    :no_sad: ... Kein raspiBackup - kein Mitleid ... :no_sad:

    Wenn dann Dir raspiBackup den Ar*** gerettet hat

    solltest Du fairerweise diese Seite besuchen und ein Trinkgeld spendieren :shy:

    Mein Raspberry Zoo

    3 * RPi1B, 2 * RPi3B, 2 * RPI4, 1 * CM4, 1 * RPi5

  • 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.

    Meine Antwort ist 21 und nicht 42.
    Also die Hälfte der Antwort
    auf die Frage aller Fragen: "Wo ist das Bier hin?"

  • Stimmt :thumbsup1:. 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.

    :no_sad: ... Kein raspiBackup - kein Mitleid ... :no_sad:

    Wenn dann Dir raspiBackup den Ar*** gerettet hat

    solltest Du fairerweise diese Seite besuchen und ein Trinkgeld spendieren :shy:

    Mein Raspberry Zoo

    3 * RPi1B, 2 * RPi3B, 2 * RPI4, 1 * CM4, 1 * RPi5

  • In Deinem Anwendungsfall ist es sogar noch einfacher und ohne config.txt umbenennen machbar, auch wenn ich diese Möglichkeit richtig gut finde. :green_wink:

    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! :cool:

    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.

    :no_sad: ... Kein raspiBackup - kein Mitleid ... :no_sad:

    Wenn dann Dir raspiBackup den Ar*** gerettet hat

    solltest Du fairerweise diese Seite besuchen und ein Trinkgeld spendieren :shy:

    Mein Raspberry Zoo

    3 * RPi1B, 2 * RPi3B, 2 * RPI4, 1 * CM4, 1 * RPi5

  • 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

    Meine Pi-Familie

    RaspbeeryPi 4B 4GB Rev: 1.4, RasbianOS
    Seit 2023 noch ein Pi4 8GB mit Ubuntu 20.04 Raspberry Pi OS Bookworm 64 bit!
    Zuwachs 2025: Pi3b+ mit 7“ WS-170120 LCD-Display.

  • 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 :green_smile:

    :no_sad: ... Kein raspiBackup - kein Mitleid ... :no_sad:

    Wenn dann Dir raspiBackup den Ar*** gerettet hat

    solltest Du fairerweise diese Seite besuchen und ein Trinkgeld spendieren :shy:

    Mein Raspberry Zoo

    3 * RPi1B, 2 * RPi3B, 2 * RPI4, 1 * CM4, 1 * RPi5

  • Ich hatte auf Intel einmal so ein Multi-Boot-System.......
    Da konnte man unterschiedlich Plattendevices damit steuern. Das setzt die jeweilige Partition auf bootable.
    Man müsste nachlesen, wie die Firmware vom Raspi den USB-Bus händelt.

    Meine Antwort ist 21 und nicht 42.
    Also die Hälfte der Antwort
    auf die Frage aller Fragen: "Wo ist das Bier hin?"

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!