USB-Gerät führt zu Neuverbindung anderer Geräte

  • Hallo,


    folgendes Vorhaben:

    1. Booten des rpi 4
    2. Ersten USB Datenträger (sandisk ssd) in USB 3 einstecken und mounten
    3. Zweiten USB Datenträger in USB 3 einstecken und mounten

    Der zweite USB Datenträger ist ein günstiger XQD/SD-Cardreader USB 3.0 mit XQD-Karte.

    Das erste Gerät bekommt sda zugewiesen. Sobald der cardreader eingesteckt wird, verschwindet sda aber und wird als sdb neu eingehängt, die XQD-Karte bekommt dann sdc.

    Beide Geräte funktionierenden dann einwandfrei. Warum fliegt sda raus? Und kann ich das verhindern?


    Vielen Dank,

    Stefan

  • Go to Best Answer
  • Wie mountest Du die beiden Geräte ?


    O vollautomatisch, automount, ich kümmere mich nicht darum

    O über /etc/fstab und UUID/PARTUUID/LABEL

    O über eine mount.unit


    Nur eine Angabe erlaubt.


    Servus !

    RTFM = Read The Factory Manual, oder so

  • Per Script. Zunächst wird gewartet, bis das erwartete device erscheint, dann per mount-Befehl. Daher ist auch die stabile Zuordnung so wichtig.

  • Ich als Laie würde sagen da entsteht in erster Linie ein "udev"-Gewitter und bis es sich beruhigt hat funkt auch noch dein Script dazwischen :)


    Hier steht etwas zu udev und wie man eine rule (Regel) baut

    https://wiki.ubuntuusers.de/udev/


    Zuerst kommt eben immer udev bevor alles andere passiert. Meiner Ansicht nach braucht es eine udev rule die exact feststellt was eingesteckt wird und welches Script ausgeführt werden soll. Ist aber nicht einfach

  • Das geht auch ohne Script schief. Auch ohne mounten fliegt sda raus, wird zu sdb und der cardreader bekommt die sdc.

  • Im Augenblick habe ich keinen Zugriff, kann also dmesg erst gegen Abend auslesen.

    Aber das Problem tritt auch mit dual power cable auf. Vor allem aber, läuft alles nach der Umstellung auf sdb/sdc stabil. Dann kann ich sogar den cardreader aus- und einstecken und es bleibt bei sdb/sdc.

    Aber das Power-Problem dürfte damit ausgeschlossen sein, oder?

    • Best Answer

    Die (SCSI) LUN (Logical Unit Number) bestimmt ein Block-Device in aufsteigender alphabetischen Reihenfolge [sda sdb sdc sdd ....]. Jede LUN wird nur einmal verwendet. Bei einer Neuinitialisierung eines Blockdevices werden die nächsten freien LUNs verwendet, sodass das ursprüngliche /dev/sda als /dev/sdb(c,d,e,f) erscheint. Deshalb ist es so wichtig, nicht nach den Geräten, z.B. /dev/sda1, sondern nach der UUID/PARTUUID/LABEL des Filesystems zu mounten.

    Wenn Dein Script auf /dev/sda, oder /dev/sda1 wartet, um /dev/sda1 zu mounten, macht es das nur einmal, wenn zwischendurch ein weiteres (USB3) Blockdevice am USB-Controller angesteckt wird. Da werden die LUNs von dev/sdb an neu vergeben.


    Servus !

    RTFM = Read The Factory Manual, oder so

  • Falls du ein Problem mit der Stromversorgung hast und die Verbindung zu den Festplatten beim mounten instabil ist, der Eintrag "program_usb_timeout=1" in der /boot/config.txt sorgt dafür, dass das System etwa 5 Sekunden wartet, bis die USB-Geräte sich vollständig initiiert haben.
    Ansonsten: siehe RTFM, mounten nur via UUID-Eintrag in der /etc/fstab oder eben per Skript. Ein "sudo blkid" zeigt dir die UUIDs der angeschlossenen Festplatten.

    Edited once, last by picollo ().

  • Aber das Power-Problem dürfte damit ausgeschlossen sein, oder?


    Beide Seiten des Dual Power Cables am RPI angeschlossen?

    Man sollte generell ein aktives USB3.0 Hub zum Testen haben.

    So könnte man zumindest das mögliche Problem mit der Spannungsversorgung ausschließen.

  • Mit viel Geduld könnte man herausfinden welcher USB Anschluss von den 4 als erstes, zweites, drittes und viertes abgearbeitet wird. Dann muss man eben die Reihenfolge genau einhalten, in welchen Port was einsteckt, damit es am Ende sda sdc sdd usw beibehält :)


    Mir ist eingefallen, dass bei mir vor ca. 2,4 Jahren ich eine ssd Festplatte angehängt hatte an den Raspberry 4b. Alles ist wunderbar gelaufen nur hatten die Dateien falsch md5sum gehabt erst nach richtigem Netzteil am Raspberry hatten die md5sum's gestimmt. Damals hab ich noch 3 Monate später die md5sum gecheckt. Mit dem richtigen offiziellen Netzteil lief es.

    Ahso ich hab noch einen Powerd USB2 Hub mit eigener Spannungsversorgung.

    Wollte das nur richtig stellen, wie wichtig es ist ausreichend Power zu haben :)

  • Aktuell ein noname 3A. Später soll alles an der Anker-Powerbank hängen. Daran hing der rpi und per dual-power-Kabel auch der cardreader. Interessant ist ja aber, dass Reader und SSD einwandfrei funktionieren, nur wird mit dem Einstecken des 2. devices sda->sdb und das zweite Gerät sdc. Ab hier läuft alles perfekt. Ich denke, das lässt sich tatsächlich per uuid-mount lösen. Allerdings fliegt auch der uuid-mount von sda raus, sobald ich den cardreader einstecke. Per uuid kann ich dies aber (hoffentlich) zuverlässig korrigieren.

  • Per uuid kann ich dies aber (hoffentlich) zuverlässig korrigieren.

    Naja, zuverlässig ist da nichts. Solange Du das Versorgungsproblem nicht gelöst hast, wirst Du immer mit Ausfällen rechnen müssen.

    Btw. das Problem ist übrigens nicht neu, dass das zweite Laufwerk beim anschließen das erste Laufwerk rauswirft. Eine wirksame Lösung war und ist ein aktiver USB-Hub. Ob das am Ende eine Powerbank lösen kann weiß ich nicht, habe aber da echte Zweifel.

  • RasBees

    Selected a post as the best answer.
  • Das Problem ist wohl von beiden Seiten lösbar:

    1. Die externe SSD zieht relativ viel Leistung und geht verloren, sobald die XQD-Karte (Cardreader) eingesteckt wird. Ein aktiver USB-Hub wäre evtl. die Lösung, das ist mir aber zu sperrig und da ich keinen fand, der per USB versorgt werden kann, hätte eine mobile Lösung mit Powerbank eh nicht funktioniert.
    2. Ich habe das mount-script nun auf uuid umgestellt. So kann ich die Geräte nach so einem Ereignis wieder sicher zuordnen und mounten. Danach funktioniert aus meiner Sicht alles recht stabil.

    Danke!