Usando o udev:
Você pode obter informações úteis consultando udev
(em sistemas que o utilizam - quase todos os Linuxes do tipo desktop com certeza). Por exemplo, se você quiser saber qual unidade anexada está associada a /dev/sdb
, use:
udevadm info --query=property --name=sdb
Ele mostrará uma lista de propriedades desse dispositivo, incluindo a serial (ID_SERIAL_SHORT). Com essa informação, você pode ver a saída de lsusb -v
e descobrir coisas como o nome do fabricante e do produto.
Um caminho mais curto para fazer isso seria
udevadm info --query=property --name=sdb | grep "\(MODEL_ID\|VENDOR_ID\)"
e veja a linha com correspondência de $ID_VENDOR_ID:$ID_MODEL_ID
na saída muito mais curta de lsusb
.
Outra opção útil é udevadm monitor
. Use-o se quiser saber qual nó de dispositivo é criado no ponto de conexão do dispositivo . Então, primeiro corra
udevadm monitor --udev --subsystem-match=block
Em seguida, conecte o dispositivo. Você verá os nomes dos dispositivos de bloco detectados (discos / partições) impressos no final de cada linha de saída.
Um exemplo prático de função shell:
Aqui está uma função que você pode colocar em seu .bashrc
(ou .zshrc
):
listusbdisks () { [[ "x$1" == "x-v" ]] && shift && local VERBOSE=-v for dsk in ${@-/dev/sd?} do /sbin/udevadm info --query=path --name="$dsk" | grep --colour=auto -q usb || continue echo "===== device $dsk is:" ( eval $(/sbin/udevadm info --query=property --name="$dsk" | grep "\(MODEL\|VENDOR\)_ID") [ "$ID_VENDOR_ID:$ID_MODEL_ID" == ":" ] && echo "Unknown" || \ lsusb $VERBOSE -d "$ID_VENDOR_ID:$ID_MODEL_ID" ) grep -q "$dsk" /proc/mounts && echo "----- DEVICE IS MOUNTED ----" echo done }
Use assim:
-
listusbdisks
- para reconhecer todos os/dev/sdx
dispositivos; -
listusbdisks sdb
oulistusbdisks /dev/sdb
oulistusbdisks sdb sdc
- para obter informações apenas sobre determinados dispositivos; -
listusbdisks -v [optional devices as above]
- para mostrar saídas detalhadas delsusb
[Editar]: Adicionada alguma funcionalidade como consultar muitos dispositivos, verificar montagens e controlar o detalhamento de lsusb
.