Obrigado a todos por suas respostas
O módulo usb-storage não foi carregado no kernel
modprobe usb-storage
Como posso encontrar qual / dev /? dispositivo para montar o meu disco rígido USB no Red Hat 3 Taroon? Eu tenho pesquisado muito e verificado arquivos de log e ainda não tenho idéia. Estou tentando minha última chance com vocês especialistas,
# /sbin/fdisk -l
não informa nada sobre o drive USB.
# lsusb -vv
Bus 004 Device 005: ID 059f:0951 LaCie, Ltd
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x059f LaCie, Ltd
idProduct 0x0951
bcdDevice 0.00
iManufacturer 10 LaCie
iProduct 11 LaCie Hard Drive USB
iSerial 5 9F908FFFFFFF
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 32
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 4
bmAttributes 0xc0
Self Powered
MaxPower 2mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 80 Bulk (Zip)
iInterface 6 MSC Bulk-Only Transfer
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type none
wMaxPacketSize 512
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type none
wMaxPacketSize 512
bInterval 0
Language IDs: (length=4)
0409 English(US)
e aqui estão mais alguns que podem ser interessantes
# /var/log/message
May 23 18:17:13 mypc kernel: USB.c: USB disconnect on device 00:1d.7-5 address 4
May 23 18:18:00 mypc kernel: hub.c: new USB device 00:1d.7-5, assigned address 5
May 23 18:18:00 mypc kernel: USB.c: USB device 5 (vend/prod 0x59f/0x951) is not claimed by any active driver.
Obrigado a todos por suas respostas
O módulo usb-storage não foi carregado no kernel
modprobe usb-storage
O dmesg é o lugar para encontrar essa informação.
Por exemplo, aqui está a saída de um 'dmesg | cauda 'depois de ligar um pendrive USB na minha caixa
verrall@granite:~$ dmesg | tail
[4296470.550538] sd 46:0:0:0: [sdg] Write Protect is off
[4296470.550538] sd 46:0:0:0: [sdg] Mode Sense: 00 00 00 00
[4296470.550538] sd 46:0:0:0: [sdg] Assuming drive cache: write through
[4296470.555971] sd 46:0:0:0: [sdg] 16058440 512-byte hardware sectors (8222 MB)
[4296470.555971] sd 46:0:0:0: [sdg] Write Protect is off
[4296470.555971] sd 46:0:0:0: [sdg] Mode Sense: 00 00 00 00
[4296470.555971] sd 46:0:0:0: [sdg] Assuming drive cache: write through
[4296470.555971] sdg: sdg1
[4296470.764472] sd 46:0:0:0: [sdg] Attached SCSI removable disk
[4296470.764509] sd 46:0:0:0: Attached scsi generic sg7 type 0
Daqui eu posso ver que meu dispositivo é / dev / sdg e que tem uma partição nele / dev / sdg1. Então, para montar isso em / mnt eu faria,
# sudo mount /dev/sdg1 /mnt
Se você sabe o rótulo da partição que você deseja montar (digamos, o volume chamado "LaCie"), você pode fazer um
sudo findfs LABEL="LaCie"
imprimirá o nome do dispositivo correspondente a essa partição.
O que eu costumo fazer é executar dmesg|tail
, depois de desconectar e conectar o dispositivo usb.
Provavelmente existe um método melhor, mas isso funciona bem o suficiente para mim. : -)
Eu fiz muita pesquisa no Google e a melhor solução que consegui encontrar foi usar o dmesg. No entanto, esta não é uma resposta satisfatória para o script. Eu poderia analisar a saída do dmesg, mas então alguém inocentemente ajustando uma mensagem de log quebraria meu script.
Eu encontrei uma resposta que funciona para uma distribuição Debian com um kernel 2.6.32-5-amd64. Parece que os arquivos envolvidos não são muito dependentes da distribuição, mas eu não verifiquei isso.
O segredo é lembrar que, no que diz respeito ao kernel do Linux, as unidades USB também são unidades SCSI. O comando 'ls-l / sys / bus / scsi / devices' mostrará o conteúdo do diretório como um conjunto de links simbólicos. Você descobrirá que todas as unidades USB serão vinculadas a um caminho que contenha a string 'usb', enquanto as unidades não USB não terão a string no caminho do link simbólico.
Existem três conjuntos de diretórios em / sys / bus / scsi / devices, o?:?:?:? diretório, o host? diretório e o alvo?:?:? diretório. Você descobrirá que o diretório apropriado / sys / bus / scsi / devices /?:?:?:? / Contém um diretório com o nome do arquivo de dispositivo que ele usa.
Aqui está um fragmento Perl que mostra como obter uma lista de arquivos do dispositivo, um para cada unidade USB:
opendir(DIR,"/sys/bus/scsi/devices") or die "Cannot enumerate SCSI devices\n"; while(my $file=readdir(DIR)) { next if($file eq '.'); next if($file eq '..'); next if(!(-l "/sys/bus/scsi/devices/$file")); next if(!($file=~/\d*:\d*:\d*:\d*/)); if(readlink("/sys/bus/scsi/devices/$file")=~/usb/) { opendir(INNER_DIR,"/sys/bus/scsi/devices/$file/block") or die "Cannnot open $file/block\n"; while(my $inner_file=readdir(INNER_DIR)) { next if($inner_file eq '.'); next if($inner_file eq '..'); push @dev_files, "/dev/$inner_file"; } closedir INNER_DIR; } } closedir DIR; die "No USB devices found\n" unless(scalar @dev_files); for my $line (@dev_files) { print "$line\n"; }