web-dev-qa-db-ja.com

USB大容量記憶装置は認識されましたが、SCSIブロックデバイスが表示されません

USB大容量記憶装置のブロックデバイスはUbuntu 16.04に表示されませんが、Ubuntu 14.04には確実に表示されます。質問:Ubuntu 16.04に表示するにはどうすればよいですか?

ノート:

  1. 両方のマシンは同じハードウェア上で仮想化されているため、ケーブル接続、配線、電源、接続、何とか何とか... USBの仮想化は同じであり、問​​題がないことをトリプルチェックしました。
  2. 実際... USBレイヤーis正しく検出されましたbothUbuntu 14.04Ubuntu 16.04で(以下のログを参照)。
  3. ブロックデバイス/dev/sdbUbuntu 14.04に表示されますが(予想どおり)、Ubuntu 16.04には表示されません(この質問のトピック)。
  4. 問題そうですusb-storageという名前の何かにあります。これはUbuntu 14.04USBSCSIにブリッジしていますが、 Ubuntu 16.04のインストールにありません。

環境

私は2台のVagrant/VirtualBoxマシンを持っています。 1つはUbuntu 14.04で、もう1つはUbuntu 16.04です。ホストには、1THDが接続されたJMicronベースのドックがあります(チップ製品JMS56x)。

ドライブはフォーマットされておらず、パーティションもありません。ZFSのプールでrawブロックデバイスを使用する予定です。

Ubuntu 16.04の中からZFSを使いたいです。

Ubuntu14.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

接続後

接続後、sdasdbの両方が表示されます(この場合、予想どおり、パーティションのない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は期待どおりに動作します。

Ubuntu16.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とそのいくつかのパーティションsda1sda2、および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で確認できるように、Ubuntu 14.04の任意のsdb表示できません

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デバイスis実際には正しく検出されています。ログを参照してください。

トレースとログ

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-storageUbuntu 16.04をアクティブにすると、プロセスが続行され、ストレージがSCSIに公開され、/dev/sdbブロックデバイスが一覧表示されます。
1
Xavi Montero

USBディスクを接続する前に、modprobe usb-storageまたはmodprobe usb_storageを実行してみてください。それは何かを変えますか?

1
shodanshok

問題は、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
1
Stas