Question Comment puis-je savoir quel / dev est un lecteur flash USB?


Je veux monter un lecteur USB, deux d’entre eux et deux points de montage différents. Malheureusement, le noyau Linux a subi un changement de nom et je ne peux pas déterminer /dev l'emplacement est le bon. Y a-t-il un moyen de regarder à travers dmesg ou /proc ou ailleurs pour savoir quel nœud de périphérique est un lecteur USB.

(J'utilise ArchLinux si cela aide tout .../dev/sda est le premier disque dur, /dev/sr0 est un lecteur de dvd, etc.)

edit: Le lecteur USB est connecté à un concentrateur USB. J'ai regardé à travers dmesg et il est dit que le concentrateur était connecté et il a analysé les 3 périphériques connectés. Je ne peux toujours pas voir où se trouve ma clé USB.


152
2017-09-16 03:51


origine


Vous ne pouvez pas le voir? Peut-être attendre un peu. Ou essayez un autre port USB. Voyez quelles différences il y a dans 'lsusb' - Nick Devereaux
Peut-être voudrez-vous reformuler quelque peu la question - tous les périphériques USB ne sont pas des disques, après tout. - Arafangion
le df commande vous montre où il a été monté - Will Sheppard


Réponses:


La manière la plus simple: Regardez la sortie de dmesg après avoir connecté le périphérique USB. Ça devrait vous montrer quoi /dev nœud lui a été assigné.


77
2017-09-16 03:53



dmesg fonctionne très bien, mais j'ai un cas où dmesg ne montre pas le /dev nœud: [421963.864281] usb 3-6: new high-speed USB device number 32 using xhci_hcd Qu'est-ce que ça veut dire? Comment puis-je monter cet appareil? L'appareil apparaît sur lsusb... - modulitos
En fait, je l'ai compris. Il y a eu une mise à jour du noyau depuis le dernier redémarrage à l'origine de ce problème. Après un redémarrage, mon USB se monte très bien. J'espère que cela aide quelqu'un! - modulitos


Tant que tu cours udev, vous pouvez le faire facilement en référençant / dev / disk / by-id / usb-Nom du Fabricant_numéro de série. Celles-ci apparaissent sous la forme de liens symboliques que vous pouvez soit référencer directement dans votre fstab, soit en utilisant readlink -e pour déterminer le périphérique de bloc associé.

Voici un exemple concret. Sur ma machine, 3 disques durs USB sont connectés. Celles-ci apparaissent dans / dev / disk / by-id avec des numéros de série uniques (bien qu'elles partagent une chaîne de fabricant commune). J'ai créé des liens symboliques vers chacune de ces trois entrées uniques et je peux maintenant déterminer rapidement quel lecteur (et quel périphérique est associé à chaque lecteur) est en cours d'exécution en exécutant readlink -e nom de lien. Par exemple, en cours d'exécution readlink -e / root / disk2 sur ma machine affiche actuellement "/ dev / sde", tandis que readlink -e / root / disk3 ne produit aucune sortie que ce soit.


53
2017-09-16 19:29



Bref et simplement: for devlink in /dev/disk/by-id/usb*; do readlink -f ${devlink}; done - Felipe Alcacibar


Toutes ces suggestions sont bonnes, mais la méthode la plus rapide et la moins verbeuse consiste à taper simplement ce qui suit dans le terminal:

mount

qui donnera une liste de tous les périphériques montés (cela suppose que le lecteur USB est monté, ce qui est généralement le cas avec les distributions Linux modernes).


50
2017-09-04 18:51



Non, il ne monte pas comme par magie votre appareil. Vous devez le spécifier avec mount /dev/id /mount/point, donc ça ne marche pas. - polym
Ma réponse répond à la question de l'utilisateur: «Existe-t-il un moyen de consulter dmesg ou / proc ou un autre endroit pour savoir quel nœud de périphérique est un lecteur USB?». . - AnotherLongUsername
Cette réponse a résolu une question presque identique pour moi. - Matthew Brown aka Lord Matt
Je pense que le comportement du montage automatique dépend beaucoup du type de distribution. - jiggunjer
df aussi, je suppose. - Alexey


Essayer la commande udevinfo -q all -n /dev/sda, où /dev/sda est le chemin d'accès à votre disque. Cela vous donne une foule d'informations sur le disque que vous regardez - il y a une entrée qui vous indique le bus auquel elle est connectée.

Cela vous évite bien sûr d'avoir à passer à travers dmesg et / ou les journaux.

Mettre à jour 

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

À partir de juillet 2010 au moins [1]  udevinfo a été substitué dans Debian (et dérivé) par udevadm info avec un petit transitoire avec lequel il y avait des liens symboliques bientôt obsolètes et supprimés (vous pouvez toujours les trouver dans une vieille machine non mise à jour). Toujours de [1] nous pouvons lire:

Dans udev 117, udevadm a été introduit et udevinfo et d'autres programmes sont devenus des liens symboliques de compatibilité. Les liens symboliques étaient déconseillés dans udev 128 et enlevé pour de bon dans udev 147.


24
2017-09-16 03:59



Dans Debian, udevinfo est renommé udevadm. - Steve Pomeroy
Sur Ubuntu, la commande semble être "udevadm info --query = all -n / dev / sda" - machineghost
Je suppose qu'ils ont renommé la commande à un moment donné - lorsque j'ai écrit la réponse (il y a longtemps), la commande fonctionnait sur le système Ubuntu à partir duquel je l'avais posté;) - Eltariel
La commande fonctionne toujours dans Ubuntu, udevadm info --query=all -n /dev/ttyUSB1 - Siddharth
udevadm info --query=all -n /dev/ttyUSB dans Fedora aussi. - slm


la méthode la plus simple pour voir ce qui se passe est de taper (en tant que root bien sûr):

blkid -c /dev/null

Cela vous donne un aperçu complet de tous les périphériques de bloc même s'ils ne sont pas montés


23
2018-01-02 08:37



Tous les distro n'ont pas cela. Tu utilisais quoi? - New Alexandria
Cela ne produit rien sur ma distribution Raspbian. - Igor G.
Commande introuvable: blkid - Igor G.
Pas de sortie de cette commande sur Ubuntu 14.04 64-bit. - gbmhunter


/dev/disk/by-* est la manière la plus simple dans ce cas, si pour une raison quelconque vous voulez rendre la vie plus intéressante, vous pouvez utiliser HAL.

Pour répertorier tous les appareils que vous utilisez:

hal-device

Pour obtenir une propriété spécifique que vous utilisez (cela reviendra /dev/sd* sur un périphérique de stockage USB):

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

Il y a aussi:

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

Si vous voulez le rendre encore plus compliqué, vous pouvez relativement facilement écrire un Mounter automatique basé sur HAL, ce qui peut être très pratique si vous voulez automatiser complètement les choses.

Et pour être complet, il y a aussi:

lsusb -v
lshw

Qui fournit des informations générales sur l'USB et votre matériel en général.


11
2017-09-24 22:36



/ dev / disk / by-id / * usb * est très utile. - Rob
/ dev / disk / by-label ftw. Merci :) - Triptych


Utilisation

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

Sous les règles udev par défaut, cela vous montrera la plupart des périphériques USB et vous montrera le lien symbolique vers leur nom de périphérique de bloc sur le système.

Si cela ne fonctionne pas, regardez /dev/disk/by-id/ directement.


8
2017-09-16 04:18





sudo fdisk -l

Et juste analyser le résultat.


7
2017-11-10 02:47



page de manuel fdisk "Si aucun appareil n'est fourni, ceux mentionnés dans / proc / partitions (le cas échéant) sont utilisés." Lancer fdisk n'est peut-être pas une option ... Basé sur un système Debian que je sais ne pas l'avoir installé, certains systèmes GPT pourraient ne pas installer les logiciels inutiles. Néanmoins, la vérification de / proc / partitions doit être une option. - TOOGAM
C'était la seule option qui fonctionnait bien pour moi. Je suis désolé si cela n'a pas fonctionné pour vous! - Felipe


Pour les périphériques USB, vous pouvez simplement faire

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. Script simple et concis pour faire la tâche automatiquement. - leesei


Regardez l'arbre sous /dev/disk. Il répertorie les disques et leurs partitions (systèmes de fichiers) par différents schémas.


2
2017-09-16 03:55





/ var / log / message si dmesg n'a plus les informations.


2
2017-09-16 03:56