Bootreihenfolge der USB-Ports?

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hi,

    gibt es bei Rasbian Jessie eine bestimmte Reihenfolge, in der die USB-Ports beim Starten abgefragt werden?

    Mein kleines Problem:

    Wenn ich sudo reboot oder sudo shutdown -h now eingebe, dann erscheint beim Neustart eine Fehlermeldung: kernel panic no working init found (sinngemäß)

    Wenn ich dann den Stromstecker ziehe und wieder dran stecke, dann bootet der Pi normal. Das Reboot-Problem ist aber störend, wenn man den Pi mal aus der Ferne neustarten muss.

    Mein Setup:

    - Raspbian Jessie Lite
    - Boot von SD-Karte
    - root auf einem 16 GB USB-Stick
    - home auf einem 128 GB USB-Stick

    Ich habe schon versucht, die USB-Stick in verschiedenen Varianten auf die USB-Ports zu verteilen, aber das hat nichts geholgen.

    Meine /etc/fstab:

    Code
    proc            /proc           proc    defaults          0       0
    /dev/mmcblk0p1  /boot           vfat    defaults          0       2
    /dev/sdb1       /               ext4    defaults,noatime  0       0
    /dev/sdb2       none            swap    defaults          0       0
    /dev/sda1       /home           ext4    defaults,noatime  0       0

    Willst du einen Tag lang glücklich sein, dann saufe.

    Willst du ein Jahr lang glücklich sein, dann heirate.

    Willst du ein Leben lang glücklich sein, dann fahr Yamaha.

  • Blöde Frage: Wie sieht denn deine Konfiguration aus um vom USB-Stick zu booten? Ich vermute mal ins Blaue und behaupte du nutzt nicht die UUID oder LABEL des jeweiligen Sticks? :fies:

    Für /home/ würde ich dir das ebenfalls empfehlen, oder UDEV nutzen.


    PS: Wenn du einen Pi3B hast kannst du die SD Karte eigentlich auch weg lassen
    PPS: Manche USB-Sticks benötigen nach "power on" zu lange bis sie sich melden.

  • Hallo FoCMB,

    ich würde es mit UDEV und UDEV-Regeln probieren. Die USB-Sticks hast Du aber schon gemountet ("eingehängt")?


    Ohne sauberes Mounten bzw. Festlegung von UDEV-Regeln ist vermutlich ist mal der eine mal der andere USB-Stick zuerst auffindbar. Die SD-Karte erwartet offensichtlich immer den gleichen USB-Stick, um den Bootvorgang vom USB-Stick fortsetzen zu können. Mal geht'S und mal hängt's.

    Übrigens: Netzstecker ziehen ist die schlechteste aller Neustart-Varianten. Damit kannst Du Dir ganz leicht mal das Dateisystem zerschießen. Das gilt ebenso für den 128 GB-USB -Stick. Wenn bei einem Schreibvorgang der Netzstecker gezogen wird, dann ist da nur noch Schrott drauf...

    EDIT: Meigrafd war schneller...


    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (22. Januar 2017 um 18:37)

  • Ich nehme nicht die UUID. Ich hab irgendwo gelesen, dass das beim Pi nicht geht, weiss aber nicht genau. Wenn das funktionieren würde, würde ich lieber mit der UUID arbeiten.

    Das der Pi3 von USB booten kann, weiss ich. Ich habe mir das mal angeschaut. Allerdings wollte ich an meinem laufenden System das nicht versuchen, da ich nicht weiss, ob das 1a läuft und soweit ich weiss, das Booten von USB noch beta-Stadium hat und ich den Pi aber laufend benötige.

    Ich werd ma sehen, ob ich beim Pi mit UUID arbeiten kann.

    PS:

    Meine /boot/cmdline.txt:

    Code
    dwc_otg.lpm_enable=0 console=tty1 root=/dev/sdb1 rootfstype=ext4 elevator=noop fsck.repair=yes rootwait ipv6.disable=1

    PSPS: Ich zieh gewöhnlich den Netzstecker nicht, genau aus dem Grund, dass das Dateisystem dabei schaden nehmen kann. Aber wenn der Pi mit einer Kernel Panik stehen bleibt und keine Eingaben mehr annimmt, bleibt mir ja nix anderes übrig.

    Willst du einen Tag lang glücklich sein, dann saufe.

    Willst du ein Jahr lang glücklich sein, dann heirate.

    Willst du ein Leben lang glücklich sein, dann fahr Yamaha.

    Einmal editiert, zuletzt von FoCMB (22. Januar 2017 um 18:47)

  • Andreas: Da er " / " auf einem USB-Stick hat kann er dafür kein udev nutzen da zu dem Zeitpunkt noch kein udev gestartet wurde, das kann ja erst dann passieren wenn der Kernel das System vom rootdevice bootet...


    Wie gesagt, mach es besser über die eindeutige UUID der PARTition, oder dem LABEL des Datenträgers sofern nur eine Partition darauf vorhanden ist.

    Variante 1:

    Das LABEL setzt du wie folgt:

    Code
    sudo e2label /dev/sdXY new_label


    Beispiel:

    Code
    sudo e2label /dev/sda1 system

    Variante 2:

    Die UUID rufst du wie folgt ab:

    Code
    sudo blkid


    Beispiel:

    Spoiler anzeigen
    Code
    root@raspberrypi:~# blkid
    /dev/sda1: LABEL="system" UUID="dbef4de3-e727-4703-ae43-c91b42b34e52" TYPE="ext4" PARTUUID="ca160690-807b-4ae6-86d4-9d92339fe1b7"
    /dev/mmcblk0p1: SEC_TYPE="msdos" LABEL="boot" UUID="70F7-FA1D" TYPE="vfat" PARTUUID="e6969453-01"
    /dev/mmcblk0p2: UUID="3598ef8e-09be-47ef-9d01-f24cf61dff1d" TYPE="ext4" PARTUUID="e6969453-02"
    /dev/mmcblk0: PTUUID="e6969453" PTTYPE="dos"


    Wie gesagt du brauchst nur eins von beidem!

    In /boot/cmdline.txt musst du dann eins von beidem eintragen.

    Variante 1:

    Code
    root=LABEL=system

    Variante 2:

    Code
    root=PARTUUID=ca160690-807b-4ae6-86d4-9d92339fe1b7


    Wichtig:
    In /boot/cmdline.txt muss alles in einer einzigen Zeile stehen!
    Die UUID ändert sich sobald der Datenträger formatiert wurde!


    Für /home/ kannst du ebenfalls die UUID verwenden und wie folgt in /etc/fstab eintragen:

    Code
    UUID="3598ef8e-09be-47ef-9d01-f24cf61dff1d"       /home           ext4    defaults,noatime  0       0

    Voraussetzung:
    Der Datenträger wurde rechtzeitig erkannt. Wenn nicht dann wäre UDEV die nächste Möglichkeit, siehe dazu FAQ => Nützliche Links / Linksammlung => udev


    //EDIT: Wenn es eine Kernel Panik gibt weil er die Systempartition nicht findet besteht auch noch keine Gefahr das Dateisystem zu beschädigen da es ja noch nicht eingehängt wurde ;)

  • Ich habe das nebenbei schonmal gesucht und umgesetzt. In der cmdline.txt wird jetzt die entsprechende Partition auf dem USB-Stick per PartUUID als root eingebunden. In der fstab habe ich auch die entsprechenden Partitionseinträge gegen die UUID der zugehörigen Partitionen getauscht. Es scheint alles geklappt zu haben, jedenfalls habe ich zum Testen ein paar Mal einen Reboot ausgeführt und bisher kam keine Fehlermeldung.

    Danke für den Tipp mit der UUID.

    Willst du einen Tag lang glücklich sein, dann saufe.

    Willst du ein Jahr lang glücklich sein, dann heirate.

    Willst du ein Leben lang glücklich sein, dann fahr Yamaha.

  • meigrafd
    Hast du das mit der cmdline.txt und labels auch getestet?

    Ich habe auch eine SD Karte von der ich boote und ein USB Stick mit "/". Wenn ich die PARTUUID des Sticks nehme, funzt das booten. Mit root=LABEL=usbroot funktioniert es nicht. Wäre klasse wenn es auch mit Label statt PARTUUID gehen würde. Habe testweise auch für SD Karte zum Testen des Label-Verweises genutzt. Habe die Standard root-Partition mmcblk0p2 mit "system" gelabelt und so in die cmdline.txt eingetragen, leider ohne Erfolg. Hat du noch ein Tipp für mich?

  • Hat noch niemand es getestet, ob Die Label Zuordnung in der cmdline für root funktioniert? Bei mir jedenfalls nicht. Wäre toll wenn noch jemand etwas dazu sagen könnte.

    Danke und Gruß,
    Giuseppe

    Einmal editiert, zuletzt von davincino (20. März 2017 um 06:16)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!