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/sdxdispositivos; -
listusbdisks sdboulistusbdisks /dev/sdboulistusbdisks 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 .