Назад | Перейти на главную страницу

USB Mass Storage распознается, но блочное устройство SCSI не отображается

Блочное устройство USB-накопителя не отображается в Ubuntu 16.04, в то время как я положительно вижу это в Ubuntu 14.04. Вопрос: как сделать так, чтобы это отображалось в Ubuntu 16.04?

НОТЫ:

  1. Обе машины виртуальны на одном оборудовании, поэтому это не кабели, проводка, питание, соединение, бла-бла ... Виртуализация USB идентичен, и я трижды проверил, что это не проблема.
  2. Фактически ... слой USB является правильно обнаружен обе в Ubuntu 14.04 и Ubuntu 16.04 (см. логи ниже).
  3. Блочное устройство /dev/sdb появляется в Ubuntu 14.04 (как и ожидалось), но не отображается в Ubuntu 16.04 (тема этого вопроса).
  4. Эта проблема кажется находиться в чем-то названном usb-storage который в Ubuntu 14.04 преодолевает USB в SCSI но, похоже, отсутствует в моей установке Ubuntu 16.04.

Контекст

У меня две машины Vagrant / VirtualBox. Один с Ubuntu 14.04 а другой с Ubuntu 16.04. В хосте у меня есть JMicronдок-станция с подключенным 1T HD (микросхема JMS56x).

Диск не отформатирован и не имеет разделов, я планирую использовать устройство raw-block в пуле для ZFS.

Я хочу использовать ZFS изнутри Ubuntu 16.04.

В Ubuntu 14.04

Я использую бродячий образ config.vm.box = "ubuntu/trusty64" и у меня уже есть usbutils установлены:

root@vagrant-ubuntu-trusty-64:/home/vagrant# apt list --installed | grep usb

WARNING: apt does not have a stable CLI interface yet. Use with caution in scripts.

libusb-0.1-4/trusty,now 2:0.1.12-23.3ubuntu1 amd64 [installed]
libusb-1.0-0/trusty,now 2:1.0.17-1ubuntu2 amd64 [installed]
usbutils/trusty,now 1:007-2ubuntu1 amd64 [installed]

Я говорю VirtualBox подключить JMicron и я успешно получаю блочное устройство как SCSI диск.

Перед подключением

Перед подключением диска вижу sda и его уникальная перегородка sda1:

root@vagrant-ubuntu-trusty-64:/home/vagrant# ls -l /dev/sd*
brw-rw---- 1 root disk 8, 0 Nov 26 13:06 /dev/sda
brw-rw---- 1 root disk 8, 1 Nov 26 13:06 /dev/sda1

После подключения

После подключения я вижу оба sda и sdb (в таком случае, sdb без разделов, как и ожидалось):

root@vagrant-ubuntu-trusty-64:/home/vagrant# ls -l /dev/sd*
brw-rw---- 1 root disk 8,  0 Nov 26 13:06 /dev/sda
brw-rw---- 1 root disk 8,  1 Nov 26 13:06 /dev/sda1
brw-rw---- 1 root disk 8, 16 Nov 26 16:56 /dev/sdb

fdisk дает согласованные результаты с /dev/sd* списки.

Так Ubuntu 14.04 ведет себя так, как ожидалось, как блочное устройство /dev/sdb появляется.

В Ubuntu 16.04

Я использую бродячий образ config.vm.box = "gbarbieru/xenial" и у меня нет usbutils установлены. Я устанавливаю их через apt install usbutils и после этого получаю:

root@vagrant:/home/vagrant# apt list --installed | grep usb

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

libusb-0.1-4/xenial,now 2:0.1.12-28 amd64 [installed]
libusb-1.0-0/xenial,now 2:1.0.20-1 amd64 [installed,automatic]
usbutils/xenial,now 1:007-4 amd64 [installed]

Я говорю VirtualBox подключить JMicron и я не получите никаких дополнительных блочных устройств и это главная проблема.

Перед подключением

Перед подключением диска вижу sda и его несколько разделов sda1, sda2 и sda5:

root@vagrant:/home/vagrant# ls -l /dev/sd*
brw-rw---- 1 root disk 8, 0 Nov 26 10:55 /dev/sda
brw-rw---- 1 root disk 8, 1 Nov 26 10:55 /dev/sda1
brw-rw---- 1 root disk 8, 2 Nov 26 10:55 /dev/sda2
brw-rw---- 1 root disk 8, 5 Nov 26 10:55 /dev/sda5

После подключения

После подключения я не вижу в Ubuntu 16.04 любой sdb как я мог видеть с Ubuntu 14.04:

root@vagrant:/home/vagrant# ls -l /dev/sd*
brw-rw---- 1 root disk 8, 0 Nov 26 10:55 /dev/sda
brw-rw---- 1 root disk 8, 1 Nov 26 10:55 /dev/sda1
brw-rw---- 1 root disk 8, 2 Nov 26 10:55 /dev/sda2
brw-rw---- 1 root disk 8, 5 Nov 26 10:55 /dev/sda5

fdisk дает согласованные результаты с /dev/sd* списки.

Так Ubuntu 16.04 ведет себя не так, как ожидалось, потому что блочное устройство /dev/sdb не появляется. Тем не менее, USB-устройство низкого уровня является на самом деле правильно обнаружен. Смотрите логи:

Следы и журналы

В Ubuntu 14.04 Я получаю следующие следы в tail -f /var/log/kern.log при подключении:

Nov 26 16:14:34 vagrant-ubuntu-trusty-64 kernel: [11313.532808] usb 1-1: new high-speed USB device number 3 using xhci_hcd
Nov 26 16:14:34 vagrant-ubuntu-trusty-64 kernel: [11313.553057] usb 1-1: New USB device found, idVendor=152d, idProduct=9561
Nov 26 16:14:34 vagrant-ubuntu-trusty-64 kernel: [11313.553060] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=5
Nov 26 16:14:34 vagrant-ubuntu-trusty-64 kernel: [11313.553062] usb 1-1: Product: JMS56x Series
Nov 26 16:14:34 vagrant-ubuntu-trusty-64 kernel: [11313.553064] usb 1-1: Manufacturer: JMicron
Nov 26 16:14:34 vagrant-ubuntu-trusty-64 kernel: [11313.553065] usb 1-1: SerialNumber: 00000000000000000000
Nov 26 16:14:34 vagrant-ubuntu-trusty-64 kernel: [11313.557954] usb-storage 1-1:1.0: USB Mass Storage device detected
Nov 26 16:14:34 vagrant-ubuntu-trusty-64 kernel: [11313.557991] scsi2 : usb-storage 1-1:1.0
Nov 26 16:14:35 vagrant-ubuntu-trusty-64 kernel: [11314.557915] scsi 2:0:0:0: Direct-Access     WDC WD10 EAVS-00D7B1      0105 PQ: 0 ANSI: 6
Nov 26 16:14:35 vagrant-ubuntu-trusty-64 kernel: [11314.558304] sd 2:0:0:0: Attached scsi generic sg1 type 0
Nov 26 16:14:35 vagrant-ubuntu-trusty-64 kernel: [11314.564883] sd 2:0:0:0: [sdb] 1953525168 512-byte logical blocks: (1.00 TB/931 GiB)
Nov 26 16:14:35 vagrant-ubuntu-trusty-64 kernel: [11314.566221] sd 2:0:0:0: [sdb] Write Protect is off
Nov 26 16:14:35 vagrant-ubuntu-trusty-64 kernel: [11314.566225] sd 2:0:0:0: [sdb] Mode Sense: 47 00 10 08
Nov 26 16:14:35 vagrant-ubuntu-trusty-64 kernel: [11314.571284] sd 2:0:0:0: [sdb] No Caching mode page found
Nov 26 16:14:35 vagrant-ubuntu-trusty-64 kernel: [11314.572366] sd 2:0:0:0: [sdb] Assuming drive cache: write through
Nov 26 16:14:35 vagrant-ubuntu-trusty-64 kernel: [11314.579291] sd 2:0:0:0: [sdb] No Caching mode page found
Nov 26 16:14:35 vagrant-ubuntu-trusty-64 kernel: [11314.579651] sd 2:0:0:0: [sdb] Assuming drive cache: write through
Nov 26 16:14:36 vagrant-ubuntu-trusty-64 kernel: [11315.056332]  sdb: unknown partition table
Nov 26 16:14:36 vagrant-ubuntu-trusty-64 kernel: [11315.066919] sd 2:0:0:0: [sdb] No Caching mode page found
Nov 26 16:14:36 vagrant-ubuntu-trusty-64 kernel: [11315.067273] sd 2:0:0:0: [sdb] Assuming drive cache: write through
Nov 26 16:14:36 vagrant-ubuntu-trusty-64 kernel: [11315.070669] sd 2:0:0:0: [sdb] Attached SCSI disk

Вместо этого в Ubuntu 16.04 Я получаю эти следы tail -f /var/log/kern.log при подключении устройства:

Nov 26 11:14:59 vagrant kernel: [ 1178.761744] usb 1-1: new high-speed USB device number 4 using xhci_hcd
Nov 26 11:14:59 vagrant kernel: [ 1179.088626] usb 1-1: New USB device found, idVendor=152d, idProduct=9561
Nov 26 11:14:59 vagrant kernel: [ 1179.088632] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=5
Nov 26 11:14:59 vagrant kernel: [ 1179.088636] usb 1-1: Product: JMS56x Series
Nov 26 11:14:59 vagrant kernel: [ 1179.088638] usb 1-1: Manufacturer: JMicron
Nov 26 11:14:59 vagrant kernel: [ 1179.088641] usb 1-1: SerialNumber: 00000000000000000000

Первая недостающая строка:

usb-storage 1-1:1.0: USB Mass Storage device detected

Итак, сравнивая оба журнала, кажется, что "что-то названное usb-storage"нет. Возможно usb-storage вещь мост к SCSI.

Вопросы

  1. Является usb-storage все еще предстоит пройти путь в 2016 году? Или использовать другой мост?
  2. Как мне получить usb-storage вещь активная в Ubuntu 16.04 поэтому он продолжает процесс, предоставляет хранилище для SCSI и я получаю /dev/sdb заблокировать устройство в списке?

Проблема в том, что вы используете обычное ядро ​​без модуля usb-storage. Чтобы USB-накопитель работал, просто установите linux-image-extra пакет

Например. в ubuntu 16.04:

apt-get install linux-image-extra-$(uname -r) -y

А потом загрузите модуль usb-накопителя или отключите / подключите ваше устройство

root@ubuntu-xenial:~# modprobe usb-storage
root@ubuntu-xenial:~# dmesg | tail
[  698.649461] scsi host3: usb-storage 1-1:1.0
[  698.650107] usbcore: registered new interface driver usb-storage
[  699.667145] scsi 3:0:0:0: Direct-Access              USB DISK 2.0     PMAP PQ: 0 ANSI: 6
[  699.668667] sd 3:0:0:0: Attached scsi generic sg2 type 0
[  699.679897] sd 3:0:0:0: [sdc] 30289920 512-byte logical blocks: (15.5 GB/14.4 GiB)
[  699.687947] sd 3:0:0:0: [sdc] Write Protect is off
[  699.687951] sd 3:0:0:0: [sdc] Mode Sense: 45 00 00 00
[  699.695974] sd 3:0:0:0: [sdc] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[  699.753448]  sdc: sdc1
[  699.798466] sd 3:0:0:0: [sdc] Attached SCSI removable disk

Попробуйте бежать modprobe usb-storage или modprobe usb_storage перед подключением USB-диска. Это что-то меняет?