Disons que je branche plusieurs clés USB qui ne sont pas montées automatiquement. Comment puis-je savoir quel fichier d'appareil appartient à quel appareil physique, donc je peux le monter par exemple?
J'utilise Mac OS X mais j'aime plutôt une réponse qui fonctionne sur tous les systèmes Unix (ou du moins les plus populaires). J'ai eu ce problème avec Linux dans le passé.
Réponses:
Utiliser udev:
Vous pouvez obtenir des informations utiles
udev
(sur les systèmes qui l'utilisent - presque tous les Linux de type bureau à coup sûr). Par exemple, si vous voulez savoir à quel lecteur connecté est associé/dev/sdb
, vous pouvez utiliser:Il vous montrera une liste des propriétés de cet appareil, y compris la série (ID_SERIAL_SHORT). Ayant ces informations, vous pouvez regarder la sortie de
lsusb -v
et découvrir des choses comme le fabricant et le nom du produit.Un chemin plus court pour ce faire serait
et voir la ligne avec correspondance
$ID_VENDOR_ID:$ID_MODEL_ID
dans la sortie beaucoup plus courte delsusb
.Une autre option utile est
udevadm monitor
. Utilisez-le si vous souhaitez savoir quel nœud de périphérique est créé au moment de connecter le périphérique . Donc, première courseEt puis connectez l'appareil. Vous verrez les noms des périphériques des blocs détectés (disques / partitions) imprimés à la fin de chaque ligne de sortie.
Un exemple pratique de fonction shell:
Voici une fonction que vous pouvez mettre dans votre
.bashrc
(ou.zshrc
):Utilisez-le comme ceci:
listusbdisks
- reconnaître tous les/dev/sdx
appareils;listusbdisks sdb
oulistusbdisks /dev/sdb
oulistusbdisks sdb sdc
- pour obtenir des informations sur certains appareils uniquement;listusbdisks -v [optional devices as above]
- pour afficher des sorties verbeuses delsusb
[Modifier]: Ajout de certaines fonctionnalités comme interroger de nombreux appareils, vérifier les montages et contrôler la verbosité de
lsusb
.la source
udev
.lsusb
c'est aussi un programme optionnel. Mais les deux sont extrêmement courants.dmesg
. Mais cela ne sera pas utile si l'appareil est déjà branché et s'il y a plus d'appareils connectés après le premier. :)Il n'y a pas de réponse universelle. Sous Linux, le moyen le plus simple consiste probablement à simplement lancer l'utilitaire de disque gnome et il affichera tous les disques détectés, qu'ils soient montés ou non. Depuis la ligne de commande, vous pouvez consulter la sortie de
blkid
ouudevadm info --export-db
.la source
Sous Mac OS X, vous pouvez essayer d'utiliser
diskutil list
.la source
En ce qui concerne tous les Unix, je ne pense pas que ce soit possible.
Les bus externes habituels n'utilisent pas aujourd'hui un schéma de numérotation fixe pour leurs ports, comme l'IDE. Ainsi, les seules sources de données restantes pour le mappage dont vous avez besoin sont les noms de fabricants des lecteurs, leurs numéros de série ou les UID des partitions.
Les noms de fabricants ne sont pas nécessairement uniques sur une machine donnée (supposons que vous connectez deux disques externes de la même série - ils s'identifieront de manière identique). Les numéros de série ne sont pas "visibles de l'extérieur", comme le sont les UID de partition.
Donc, la seule solution universelle à laquelle je peux penser est d'étiqueter les disques physiques avec le numéro de série et d'utiliser la commande udevadm donnée dans la réponse de rozcietrzewiacz, si UDEV est disponible.
la source