Frage Wie finde ich heraus, welches / dev ein USB-Stick ist?


Ich möchte ein USB-Laufwerk, zwei von ihnen und ich brauche zwei verschiedene Mount-Punkte. Leider hat der Linux-Kernel eine Namensänderung erfahren und ich kann nicht herausfinden, welche /dev Standort ist der richtige. Gibt es eine Möglichkeit, durchzusehen? dmesg oder /proc oder woanders, um herauszufinden, welcher Geräteknoten ein USB-Laufwerk ist.

(Ich benutze ArchLinux, wenn das hilft .../dev/sda ist die erste Festplatte, /dev/sr0 ist ein DVD-Laufwerk, etc.)

Bearbeiten: Das USB-Laufwerk ist mit einem USB-Hub verbunden. Ich schaute durch dmesg und es heißt, der Hub wurde angeschlossen und es wurde nach den 3 angeschlossenen Geräten gesucht. Ich kann immer noch nicht sehen, wo mein USB-Laufwerk ist.


152
2017-09-16 03:51


Ursprung


Kann es nicht sehen? Sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch Da sch sch sch sch sch sch sch sch sch dieser Dieser sch sch sch Da sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch dieser Sehen Sie, welche Unterschiede es in 'lsusb' gibt - Nick Devereaux
Vielleicht möchte ich die Frage etwas umformulieren - nicht alle USB-Geräte sind schließlich Festplatten. - Arafangion
Das df Befehl zeigt Ihnen, wo es montiert wurde - Will Sheppard


Antworten:


Einfachster Weg: Sehen Sie sich die Ausgabe von an dmesg nach dem Anschließen des USB-Geräts. Es sollte dir zeigen was /dev Knoten wurde ihm zugewiesen.


77
2017-09-16 03:53



dmesg funktioniert gut, aber ich habe einen Fall, wo dmesg zeigt nicht die /dev Knoten: [421963.864281] usb 3-6: new high-speed USB device number 32 using xhci_hcd Was bedeutet das? Wie kann ich dieses Gerät montieren? Das Gerät erscheint auf lsusb... - modulitos
Eigentlich habe ich es herausgefunden. Seit meinem letzten Neustart gab es ein Kernel-Update, das dieses Problem verursachte. Nach einem Neustart mounten meine USB-Anschlüsse gut. Hoffentlich hilft das jemandem! - modulitos


Solange du rennst udev, können Sie dies leicht tun, indem Sie auf / dev / disk / by-id / usb-Herstellername_Ordnungsnummer. Diese erscheinen als symbolische Links, auf die Sie entweder direkt innerhalb Ihrer fstab verweisen oder die Sie dereferenzieren können readlink -e um das zugehörige Blockgerät zu ermitteln.

Hier ist ein Beispiel aus der realen Welt. Auf meinem Rechner habe ich 3 USB-Festplatten angeschlossen. Diese werden jeweils in / dev / disk / by-id mit eindeutigen Seriennummern angezeigt (obwohl sie eine gemeinsame Herstellerzeichenfolge haben). Ich habe symbolische Verknüpfungen zu jedem dieser drei eindeutigen Einträge erstellt und kann nun schnell feststellen, welches Laufwerk welches ist (und welches Gerät mit jedem Laufwerk verknüpft ist), indem es ausgeführt wird readlink -e Verknüpfungsname. Zum Beispiel läuft readlink -e / root / disk2 auf meinem Computer wird derzeit angezeigt "/ dev / sde", während readlink -e / root / disk3 produziert überhaupt keine Ausgabe.


53
2017-09-16 19:29



Kurz und einfach: for devlink in /dev/disk/by-id/usb*; do readlink -f ${devlink}; done - Felipe Alcacibar


All das sind gute Vorschläge, aber die schnellste und am wenigsten ausführliche Methode besteht darin, einfach folgendes in das Terminal einzugeben:

mount

Hier wird eine Liste aller angeschlossenen Geräte angezeigt (vorausgesetzt, das USB-Laufwerk ist gemountet, was bei modernen Linux-Distributionen normalerweise der Fall ist).


50
2017-09-04 18:51



Nein, Ihr Gerät wird nicht magisch angehängt. Sie müssen es mit angeben mount /dev/id /mount/point, damit funktioniert das nicht. - polym
Meine Antwort bezieht sich auf die Frage des Benutzers "Gibt es eine Möglichkeit, dmesg oder / proc oder woanders zu suchen, um herauszufinden, welcher Geräteknoten ein USB-Laufwerk ist". Es soll keine Anleitung geben, wie ein Laufwerk unter Linux installiert werden kann . - AnotherLongUsername
Diese Antwort löste eine fast identische Frage für mich. - Matthew Brown aka Lord Matt
Ich denke, dass Automount-Verhalten sehr vom Distributionstyp abhängt. - jiggunjer
df Ich nehme auch an. - Alexey


Probieren Sie den Befehl aus udevinfo -q all -n /dev/sda, woher /dev/sda ist der Pfad zu Ihrer Festplatte. Dies gibt Ihnen eine Menge Informationen über die Festplatte, die Sie gerade betrachten - es gibt einen Eintrag, der Sie über den Bus informiert, mit dem es verbunden ist.

Dies erspart Ihnen natürlich das Durchforsten von dmesg und / oder Logs.

Aktualisieren 

udevadm info --query=all -n /dev/sda 

Ab mindestens Juli 2010 [1]  udevinfo wurde in Debian ersetzt (und abgeleitet von) udevadm info mit einem kleinen transient, mit dem es symlinks gab, verwarf man sie bald und entfernte sie (man kann sie immer noch in alten, nicht aktualisierten Maschinen finden). Immer von [1] wir können lesen:

In udev 117, udevadm wurde eingeführt und udevinfo und andere Programme verwandelten sich in Symlinks zur Kompatibilität. Die Symlinks wurden in veraltet udev 128 und entfernt für immer in udev 147.


24
2017-09-16 03:59



In Debian, udevinfo wird umbenannt udevadm. - Steve Pomeroy
Unter Ubuntu scheint der Befehl "udevadm info --query = all -n / dev / sda" zu sein. - machineghost
Ich nehme an, sie haben den Befehl irgendwann umbenannt - als ich die Antwort schrieb (vor langer Zeit), arbeitete der Befehl an dem Ubuntu-System, von dem ich ihn gepostet habe;) - Eltariel
Befehl funktioniert immer noch in ubuntu, udevadm info --query=all -n /dev/ttyUSB1 - Siddharth
udevadm info --query=all -n /dev/ttyUSB auch in Fedora. - slm


Die einfachste Methode, um zu sehen, was gerade passiert, ist einfach zu tippen (als root natürlich):

blkid -c /dev/null

Dies gibt Ihnen einen vollständigen Überblick über alle Blockgeräte, auch wenn sie nicht installiert sind


23
2018-01-02 08:37



Nicht alle Distributionen haben dies. Was hast du benutzt? - New Alexandria
Dies gibt nichts auf meiner Raspbian-Distribution aus. - Igor G.
Befehl nicht gefunden: blkid - Igor G.
Keine Ausgabe von diesem Befehl auf Ubuntu 14.04 64-Bit. - gbmhunter


/dev/disk/by-* ist der einfachste Weg in diesem Fall, wenn Sie aus irgendeinem Grund das Leben interessanter machen möchten, können Sie HAL verwenden.

So listen Sie alle verwendeten Geräte auf:

hal-device

Um eine bestimmte Eigenschaft zu erhalten, die Sie verwenden (dies wird zurückkehren /dev/sd* auf einem USB-Speichergerät):

hal-get-property --udi $UDI --key block.device

Es gibt auch:

hal-find-by-capability
hal-find-by-property

Wenn Sie es noch komplizierter machen möchten, können Sie relativ einfach selbst einen schreiben Dieser Da sch sch Da sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch dieser, was sehr praktisch sein kann, wenn Sie die Dinge komplett automatisieren wollen.

Und nur der Vollständigkeit halber gibt es auch:

lsusb -v
lshw

Hier finden Sie einige allgemeine Informationen zu USB und Ihrer Hardware im Allgemeinen.


11
2017-09-24 22:36



/ dev / disk / by-id / * usb * ist sehr hilfreich. - Rob
/ dev / disk / by-label ftw. Vielen Dank :) - Triptych


Benutzen

ls -l /dev/disk/by-id/usb*

Unter den standardmäßigen udev-Regeln werden Ihnen die meisten USB-Geräte angezeigt, und Sie sehen den Symlink zu ihrem Block-Gerätenamen auf dem System.

Wenn das nicht funktioniert, schau dir das an /dev/disk/by-id/ direkt.


8
2017-09-16 04:18





sudo fdisk -l

Da sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch sch dieser


7
2017-11-10 02:47



fdisk man Seite "Wenn keine Geräte vorhanden sind, werden die in / proc / Partitionen genannten (falls vorhanden) verwendet." Das Ausführen von fdisk ist möglicherweise keine Option ... Basierend auf einem Debian-System, von dem ich weiß, dass es nicht installiert ist, vermute ich, dass einige GPT-Systeme die nicht benötigte Software möglicherweise nicht installieren. Dennoch sollte die Überprüfung / Proc / Partitionen eine Option sein. - TOOGAM
Dies war die einzige Option, die für mich gut funktionierte. Es tut mir leid, wenn es nicht für dich funktioniert hat! - Felipe


Für USB-Geräte können Sie einfach tun

REMOVABLE_DRIVES=""
for _device in /sys/block/*/device; do
    if echo $(readlink -f "$_device")|egrep -q "usb"; then
        _disk=$(echo "$_device" | cut -f4 -d/)
        REMOVABLE_DRIVES="$REMOVABLE_DRIVES $_disk"
    fi
done
echo Removable drives found: "$REMOVABLE_DRIVES"

6
2017-08-24 17:37



+1. Einfaches und prägnantes Skript, um die Aufgabe automatisch auszuführen. - leesei


Sieh dir den Baum unter an /dev/disk. Es listet Festplatten und ihre Partitionen (Dateisysteme) nach verschiedenen Schemata auf.


2
2017-09-16 03:55