Pregunta ¿Cómo averiguo qué / dev es una unidad flash USB?


Quiero montar una unidad USB, dos de ellas y necesito dos puntos de montaje diferentes. Desafortunadamente, el kernel de Linux sufrió un cambio de nombre y no puedo entender cuál /dev la ubicación es la correcta. ¿Hay alguna manera de mirar a través de dmesg o /proc o en otro lugar para averiguar qué nodo del dispositivo es una unidad USB.

(Estoy usando ArchLinux si eso ayuda .../dev/sda es el primer disco duro, /dev/sr0 es una unidad de DVD, etc.)

editar: la unidad USB está conectada a un concentrador USB. Miré a través de dmesg y dice que el hub se conectó y escaneó en busca de los 3 dispositivos conectados a él. Todavía no puedo ver dónde está mi unidad USB.


152


origen


No se puede ver? Tal vez espere un poco. O pruebe con otro puerto USB. Mira qué diferencias hay en 'lsusb' - Nick Devereaux
Puede que quieras volver a formular la pregunta: después de todo, no todos los dispositivos usb son discos. - Arafangion
los df comando muestra dónde fue montado - Will Sheppard


Respuestas:


La manera más fácil: mira la salida de dmesg después de conectar el dispositivo USB. Debería mostrarte qué /dev nodo se le asignó.


77



dmesg funciona muy bien, pero tengo un caso donde dmesg no muestra el /dev nodo: [421963.864281] usb 3-6: new high-speed USB device number 32 using xhci_hcd ¿Qué significa esto? ¿Cómo puedo montar este dispositivo? El dispositivo aparece en lsusb... - modulitos
En realidad, lo descubrí. Hubo una actualización del kernel desde mi último reinicio que causaba este problema. Después de reiniciar, mi usb se monta bien. ¡Espero que esto ayude a alguien! - modulitos


Mientras estés corriendo udev, puede hacer esto fácilmente haciendo referencia a / dev / disk / by-id / usb-Nombre del Fabricante_número de serie. Aparecen como enlaces simbólicos que puede referenciar directamente dentro de su fstab, o que puede eliminar referencia utilizando readlink -e para determinar el dispositivo de bloque asociado.

Aquí hay un ejemplo del mundo real. En mi máquina, tengo 3 discos duros USB conectados. Estos se muestran en / dev / disk / by-id con números de serie únicos (aunque comparten una cadena de fabricante común). He creado enlaces simbólicos a cada una de estas tres entradas únicas, y ahora puedo determinar rápidamente qué unidad es qué (y qué dispositivo está asociado con cada unidad) ejecutando readlink -e nombre de enlace. Por ejemplo, ejecutando readlink -e / root / disk2 en mi máquina actualmente muestra "/ dev / sde", mientras readlink -e / root / disk3 no produce salida alguna.


53



Corto y simple: for devlink in /dev/disk/by-id/usb*; do readlink -f ${devlink}; done - Felipe Alcacibar


Todas estas son buenas sugerencias, pero el método más rápido y menos detallado es simplemente escribir lo siguiente en la terminal:

mount

que proporcionará una lista de todos los dispositivos montados (esto supone que la unidad USB está montada, lo que suele ser el caso de las distribuciones modernas de Linux).


50



No, no monta mágicamente su dispositivo. Tienes que especificarlo con mount /dev/id /mount/point, entonces eso no funciona. - polym
Mi respuesta responde a la pregunta del usuario '¿Hay alguna manera de ver a través de dmesg o / proc o en otro lugar para averiguar qué dispositivo es una unidad USB' y no tiene la intención de proporcionar orientación sobre la practicidad de montar una unidad bajo Linux . - AnotherLongUsername
Esta respuesta resolvió una pregunta casi idéntica para mí. - Matthew Brown aka Lord Matt
Creo que el comportamiento del automóvil depende mucho del tipo de distribución. - jiggunjer
df también, supongo. - Alexey


Prueba el comando udevinfo -q all -n /dev/sda, dónde /dev/sda es la ruta a tu disco. Esto le proporciona una gran cantidad de información sobre el disco que está mirando: hay una entrada que le informa sobre el bus al que está conectado.

Esto, por supuesto, le ahorra tener que grep a través de dmesg y / o registros.

Actualizar 

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

Desde al menos julio de 2010 [1]  udevinfo fue sustituido en Debian (y derivado) por udevadm info con un poco de transitorio con el que hubo enlaces simbólicos que pronto se desaprobaron y eliminaron (aún se pueden encontrar en máquinas antiguas que no están actualizadas). Siempre desde [1] Podemos leer:

En udev 117, udevadm fue presentado y udevinfo y otros programas convertidos en enlaces simbólicos de compatibilidad. Los enlaces simbólicos fueron desaprobados en udev 128 y eliminado para bien en udev 147.


24



En Debian, udevinfo es renombrado udevadm. - Steve Pomeroy
En Ubuntu, el comando parece ser "udevadm info --query = all -n / dev / sda" - machineghost
Supongo que cambiaron el nombre del comando en algún momento: cuando escribí la respuesta (hace años) el comando funcionó en el sistema ubuntu del que lo publiqué;) - Eltariel
El comando funciona aún en ubuntu, udevadm info --query=all -n /dev/ttyUSB1 - Siddharth
udevadm info --query=all -n /dev/ttyUSB en Fedora también - slm


El método más simple para ver qué está pasando es solo escribir (como raíz, por supuesto):

blkid -c /dev/null

esto le brinda una visión completa de todos los dispositivos de bloques, incluso si no está montado


23



No toda la distribución tiene esto. ¿Cuál estabas usando? - New Alexandria
Esto no produce nada en mi distribución Raspbian. - Igor G.
Comando no encontrado: blkid - Igor G.
No hay salida de este comando en Ubuntu 14.04 de 64 bits. - gbmhunter


/dev/disk/by-* es la forma más fácil en este caso, si por alguna razón quieres hacer la vida más interesante, puedes usar HAL.

Para enumerar todos los dispositivos que usa:

hal-device

Para obtener una propiedad específica que usa (esto retornará /dev/sd* en un dispositivo de almacenamiento USB):

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

También hay:

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

Si quieres hacerlo aún más complicado, puedes escribir una Montador automático basado en HAL, que puede ser bastante útil si quieres automatizar las cosas completamente.

Y para completar, también hay:

lsusb -v
lshw

Que proporciona cierta información general sobre USB y su hardware en general.


11



/ dev / disk / by-id / * usb * es muy útil. - Rob
/ dev / disk / by-label ftw. Gracias :) - Triptych


Utilizar

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

Bajo las reglas de udev predeterminadas, que le mostrará la mayoría de los dispositivos usb y le mostrará el enlace simbólico al nombre de su dispositivo de bloque en el sistema.

Si eso no funciona, mira /dev/disk/by-id/ directamente.


8