首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >USB大容量存储已识别,但SCSI块设备未出现。

USB大容量存储已识别,但SCSI块设备未出现。
EN

Server Fault用户
提问于 2016-11-26 17:43:58
回答 2查看 8.9K关注 0票数 1

USB大容量存储的块设备没有出现在Ubuntu 16.04中,而我肯定可以在Ubuntu 14.04中看到它。问:我如何使它出现在Ubuntu 16.04中?

备注:

  1. 这两台机器在同一个硬件上都是虚拟的,所以它不是电缆,布线,电源,连接,等等。USB的虚拟化是相同的,我已经反复检查过了,这不是问题所在。
  2. 事实上..。在Ubuntu 14.04Ubuntu 16.04中都正确地检测到了USB层(见下面的日志)。
  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。在主机中,我有一个带有1THD插入的JMicron-based端口(芯片产品JMS56x)。

驱动器没有格式化,也没有分区,我计划在ZFS池中使用原始块设备。

我想从ZFS内部使用Ubuntu 16.04

Ubuntu14.04

中的

我使用迷航图像config.vm.box = "ubuntu/trusty64",我已经安装了usbutils

代码语言:javascript
复制
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

代码语言:javascript
复制
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

连接

后的

连接之后,我可以看到sdasdb (在本例中,如预期的那样,没有分区的sdb ):

代码语言:javascript
复制
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所显示的那样。

In Ubuntu16.04

我使用迷航图像config.vm.box = "gbarbieru/xenial",我没有安装usbutils。我通过apt install usbutils安装它们,然后我得到:

代码语言:javascript
复制
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及其几个分区( sda1sda2sda5):

代码语言:javascript
复制
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中看到的那样:

代码语言:javascript
复制
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中得到以下跟踪:

代码语言:javascript
复制
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中获得了这些跟踪:

代码语言:javascript
复制
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

缺失的第一行是:

代码语言:javascript
复制
usb-storage 1-1:1.0: USB Mass Storage device detected

因此,比较这两种日志,似乎不存在“名为usb-storage的东西”。也许usb-storage是通向SCSI的桥梁。

问题

  1. 2016年,usb-storage还会继续走下去吗?还是我应该用另一座桥?
  2. 如何使usb-storageUbuntu 16.04中活动,以便它继续该过程,向SCSI公开存储,并列出/dev/sdb块设备?
EN

回答 2

Server Fault用户

发布于 2016-11-26 18:07:46

在连接USB磁盘之前尝试运行modprobe usb-storagemodprobe usb_storage。有什么改变吗?

票数 1
EN

Server Fault用户

发布于 2017-02-26 12:58:25

问题是,您只使用通用内核而不使用usb存储模块。要使usb存储正常工作,只需安装linux映像附加包即可。

例如,关于ubuntu 16.04:

代码语言:javascript
复制
apt-get install linux-image-extra-$(uname -r) -y

然后加载usb存储模块或断开/连接设备。

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/817228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档