4

Как я могу найти какой /dev /? устройство для подключения моего жесткого диска USB на Red Hat 3 Taroon?  Я много гуглял и проверял лог-файлы и до сих пор не знаю. Я пробую свой последний шанс с вами, экспертами,

# /sbin/fdisk -l

ничего не дает о 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)

и вот еще кое-что, что может быть интересно

# /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.

5 ответов5

4

Спасибо всем за ваши ответы

Модуль usb-storage не был загружен в ядро

modprobe usb-storage
1

dmesg - это место, где можно найти эту информацию.

Например, вот вывод из 'dmesg | tail 'после подключения USB-накопителя в мою коробку

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

Отсюда видно, что мое устройство - /dev /sdg и на нем есть один раздел /dev /sdg1. Так что для монтирования в /mnt я бы сделал,

# sudo mount /dev/sdg1 /mnt

0

Я много гуглил, и лучшее решение, которое я смог найти, это использовать dmesg. Тем не менее, это не является удовлетворительным ответом для сценариев. Я мог бы проанализировать вывод dmesg, но тогда кто-то невинно настраивающий сообщение журнала сломал бы мой сценарий.

Я нашел ответ, который работает для дистрибутива Debian с ядром 2.6.32-5-amd64. Кажется, что файлы не сильно зависят от дистрибутива, но я не проверял это.

Секрет заключается в том, что в отношении ядра Linux USB-накопители также являются SCSI-накопителями. Команда 'ls -l /sys /bus /scsi /devices' покажет содержимое каталога как набор символических ссылок. Вы обнаружите, что все USB-накопители будут связаны с путем, содержащим строку «usb», в то время как не-USB-накопители не будут иметь строку в символьном пути ссылки.

В /sys /bus /scsi /devices есть три набора каталогов:?:?:?:? каталог, хост? каталог и цель?:?:? каталог. Вы найдете соответствующий /sys /bus /scsi /devices /?:?:?:?Каталог /block содержит каталог, названный в честь файла устройства, который он использует.

Вот фрагмент Perl, который показывает, как получить список файлов устройств, по одному для каждого 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";
}
0

Если вам известна метка раздела, который вы хотите смонтировать (скажем, том "LaCie"), вы можете сделать

sudo findfs LABEL="LaCie"

он распечатает имя устройства, соответствующее этому разделу.

0

Обычно я запускаю dmesg|tail после отключения и подключения USB-устройства.

Вероятно, есть лучший метод, но для меня это работает достаточно хорошо. :-)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .