Como descubro qual / dev é uma unidade flash USB?

155

Eu quero montar uma unidade USB, dois deles e preciso de dois pontos de montagem diferentes. Infelizmente, o kernel Linux sofreu uma mudança de nome e não consigo descobrir qual /dev location é a correta. Existe uma maneira de procurar por dmesg ou /proc ou outro lugar para descobrir qual nó de dispositivo é uma unidade USB.

(Eu estou usando o ArchLinux se isso ajudar qualquer ... /dev/sda é o primeiro disco rígido, /dev/sr0 é um drive de dvd, etc.)

edit: a unidade USB está conectada a um hub USB. Eu olhei através de dmesg e ele diz que o hub estava conectado e varreu os 3 dispositivos conectados a ele. Ainda não consigo ver onde está o meu drive USB.

    
por Rudolf Olah 16.09.2008 / 05:51

12 respostas

77

Caminho mais fácil: observe a saída de dmesg após conectar o dispositivo USB. Ele deve mostrar a você o que /dev node foi atribuído a ele.

    
por 16.09.2008 / 05:53
53

Desde que você esteja executando o udev , você pode fazer isso facilmente referenciando / dev / disk / by -id / usb- nome_do_computador _ número_de_serial . Eles aparecem como links simbólicos que você pode referenciar diretamente em seu fstab ou que você pode excluir usando readlink -e para determinar o dispositivo de bloco associado.

Aqui está um exemplo do mundo real. Na minha máquina, tenho 3 discos rígidos USB conectados. Cada um deles aparece em / dev / disk / by-id com números de série exclusivos (embora eles compartilhem uma string de fabricante comum). Criei links simbólicos para cada uma dessas três entradas exclusivas e agora posso determinar rapidamente qual unidade é qual (e qual dispositivo está associado a cada unidade) executando readlink -e linkname . Por exemplo, a execução readlink -e / root / disk2 na minha máquina exibe atualmente " / dev / sde ", enquanto readlink -e / root / disk3 não produz nenhum resultado.

    
por 16.09.2008 / 21:29
51

Todas essas são boas sugestões, mas o método mais rápido e menos detalhado é simplesmente digitar o seguinte no terminal:

mount

, que fornecerá uma lista de todos os dispositivos montados (isso pressupõe que a unidade USB esteja montada, o que geralmente é o caso das distribuições Linux modernas).

    
por 04.09.2012 / 20:51
24

Experimente o comando udevinfo -q all -n /dev/sda , em que /dev/sda é o caminho para o seu disco. Isso lhe dá um monte de informações sobre o disco que você está olhando - há uma entrada que informa sobre o barramento ao qual está conectado.

Isso, é claro, evita que você tenha que passar pelo dmesg e / ou logs.

Atualizar

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

Pelo menos a partir de julho de 2010 [ 1 ] udevinfo foi substituído no Debian (e derivado) por udevadm info com um pequeno transitório com o qual existiam links simbólicos em breve descontinuados e removidos (você ainda pode encontrá-los em máquinas antigas não atualizadas). Sempre de [ 1 ], podemos ler:

In udev 117, udevadm was introduced and udevinfo and other programs turned into compatibility symlinks. The symlinks were deprecated in udev 128 and removed for good in udev 147.

    
por 16.09.2008 / 05:59
23

o método mais simples para ver o que está acontecendo é apenas digitar (como root, é claro):

blkid -c /dev/null

isto fornece uma visão geral completa sobre todos os dispositivos de bloco, mesmo que não estejam montados

    
por 02.01.2013 / 09:37
11

/dev/disk/by-* é a maneira mais fácil neste caso, se por algum motivo você quiser tornar a vida mais interessante, você pode usar o HAL.

Para listar todos os dispositivos que você usa:

hal-device

Para obter uma propriedade específica que você usa (isso retornará /dev/sd* em um dispositivo de armazenamento USB):

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

Existe também:

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

Se você quiser torná-lo ainda mais complicado, é relativamente fácil escrever para você um HAL com base em auto mounter , que pode ser bastante útil se você quiser automatizar as coisas completamente.

E apenas para completar, há também:

lsusb -v
lshw

O que fornece algumas informações gerais sobre o USB e seu hardware em geral.

    
por 25.09.2009 / 00:36
8
sudo fdisk -l

E apenas analise o resultado.

    
por 10.11.2015 / 03:47
8

Use

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

Sob as regras padrão do udev, isso mostrará a maioria dos dispositivos usb e mostrará o link simbólico para o nome do dispositivo de bloco no sistema.

Se isso não funcionar, veja /dev/disk/by-id/ diretamente.

    
por 16.09.2008 / 06:18
6

Para dispositivos USB, você pode simplesmente fazer

REMOVABLE_DRIVES=""
for _device in /sys/block/*/device; do
    if echo $(readlink -f "$_device")|egrep -q "usb"; then
        _disk=$(echo "$_device" | cut -f4 -d/)
        REMOVABLE_DRIVES="$REMOVABLE_DRIVES $_disk"
    fi
done
echo Removable drives found: "$REMOVABLE_DRIVES"
    
por 24.08.2012 / 19:37
2

Dê uma olhada na árvore sob /dev/disk . Ele lista discos e suas partições (sistemas de arquivos) por vários esquemas.

    
por 16.09.2008 / 05:55
2

/ var / log / message se o dmesg não tiver mais as informações.

    
por 16.09.2008 / 05:56
0

Se você desconectar o drive USB e ligá-lo de volta, você deve vê-lo inicializar a partir do kernel (dmesg)

    
por 16.09.2008 / 05:53

Tags