Quiero montar una unidad USB, dos de ellas y necesito dos puntos de montaje diferentes. Desafortunadamente, el kernel de Linux experimentó un cambio de nombre y no puedo averiguar qué /dev
ubicación es la correcta. ¿Hay alguna manera de mirar a través dmesg
o /proc
en otro lugar para averiguar qué nodo de 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 dmesg
y dice que el hub estaba conectado y escaneó los 3 dispositivos conectados a él. Sin embargo, todavía no puedo ver dónde está mi unidad USB.
df
comando te muestra dónde estaba montadoRespuestas:
La forma más fácil: mira la salida de
dmesg
después de conectar el dispositivo USB. Debería mostrarle qué/dev
nodo se le asignó.fuente
dmesg
funciona muy bien, pero tengo un caso en eldmesg
que 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 enlsusb
...Mientras esté ejecutando udev , puede hacerlo fácilmente haciendo referencia a / dev / disk / by-id / usb- manufacturername _ serialnumber . Estos aparecen como enlaces simbólicos a los que puede hacer referencia directamente dentro de su fstab, o que puede desreferenciar usando readlink -e para determinar el dispositivo de bloqueo asociado.
Aquí hay un ejemplo del mundo real. En mi máquina, tengo 3 discos duros USB conectados. Cada uno de ellos aparece 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 cuál (y qué dispositivo está asociado con cada unidad) ejecutando readlink -e linkname . Por ejemplo, ejecutar readlink -e / root / disk2 en mi máquina muestra actualmente " / dev / sde ", mientras que readlink -e / root / disk3 no produce ningún tipo de salida.
fuente
for devlink in /dev/disk/by-id/usb*; do readlink -f ${devlink}; done
Todas estas son buenas sugerencias, pero el método más rápido y menos detallado es escribir lo siguiente en el terminal:
que proporcionará una lista de todos los dispositivos montados (esto supone que la unidad USB está montada, que suele ser el caso con las distribuciones modernas de Linux).
fuente
mount /dev/id /mount/point
, para que eso no funcione.df
también, supongo.Pruebe el comando
udevinfo -q all -n /dev/sda
, donde/dev/sda
está la ruta a su disco. Esto le brinda una gran cantidad de información sobre el disco que está viendo: hay una entrada que le informa sobre el bus al que está conectado.Por supuesto, esto le ahorra tener que pasar por dmesg y / o registros.
Actualizar
Desde al menos julio de 2010 [ 1 ]
udevinfo
fue sustituido en Debian (y derivado) porudevadm info
un poco transitorio con el que pronto hubo enlaces simbólicos en desuso y eliminados (aún puede encontrarlos en una máquina antigua no actualizada). Siempre desde [ 1 ] podemos leer:fuente
udevinfo
se renombraudevadm
.udevadm info --query=all -n /dev/ttyUSB1
udevadm info --query=all -n /dev/ttyUSB
en Fedora también.El método más simple para ver lo que está sucediendo es simplemente escribir (como raíz, por supuesto):
Esto le ofrece una visión general completa de todos los dispositivos de bloque, incluso si no está montado
fuente
/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:
Para obtener una propiedad específica que use (esto regresará
/dev/sd*
en un dispositivo de almacenamiento USB):También hay:
Si desea que sea aún más complicado, puede escribirse relativamente fácilmente un montador automático basado en HAL , que puede ser bastante útil si desea automatizar las cosas por completo.
Y solo para completar, también hay:
Que proporciona información general sobre USB y su hardware en general.
fuente
Y solo analiza el resultado.
fuente
Utilizar
Según las reglas predeterminadas de udev, eso le mostrará la mayoría de los dispositivos usb y le mostrará el enlace simbólico a su nombre de dispositivo de bloque en el sistema.
Si eso no funciona, mira
/dev/disk/by-id/
directamente.fuente
Para dispositivos USB simplemente puedes hacer
fuente
Echa un vistazo al árbol debajo
/dev/disk
. Enumera los discos y sus particiones (sistemas de archivos) por varios esquemas.fuente
/ var / log / message si dmesg ya no tiene la información.
fuente
Si desconecta la unidad USB y la vuelve a conectar, debería ver que se inicializa desde el núcleo (dmesg)
fuente
Basado en la excelente respuesta de stormlash y con una dependencia de udev para llenar el árbol de dispositivos "/ dev / disk / by-id / usb", puede definir un predicado (Bash) de la siguiente manera:
Y luego úsalo:
fuente