USB 大容量存储设备拆分为 2 个设备

USB 大容量存储设备拆分为 2 个设备

当我使用 USB 2.0 端口将 Fantec DB-ALUE2e 外部 SATA 外壳中的 Hitachi Deskstar 7K4000 4TB 硬盘连接到联想 T400 笔记本电脑时,硬盘会分成 2 个设备:

[ 1537.560160] usb 1-1: new high speed USB device using ehci_hcd and address 4
[ 1537.714687] usb 1-1: configuration #1 chosen from 1 choice
[ 1537.814573] Initializing USB Mass Storage driver...
[ 1537.814847] scsi4 : SCSI emulation for USB Mass Storage devices
[ 1537.815088] usbcore: registered new interface driver usb-storage
[ 1537.815094] USB Mass Storage support registered.
[ 1537.815818] usb-storage: device found at 4
[ 1537.815823] usb-storage: waiting for device to settle before scanning
[ 1542.810488] usb-storage: device scan complete
[ 1542.812251] scsi 4:0:0:0: Direct-Access     Generic  External         0200 PQ: 0 ANSI: 4
[ 1542.813976] scsi 4:0:0:1: Direct-Access     Generic  External         0200 PQ: 0 ANSI: 4
[ 1542.818156] sd 4:0:0:0: Attached scsi generic sg2 type 0
[ 1542.820658] sd 4:0:0:1: Attached scsi generic sg3 type 0
[ 1542.822331] sd 4:0:0:0: [sdb] 4294967295 512-byte logical blocks: (2.19 TB/1.99 TiB)
[ 1542.829215] sd 4:0:0:0: [sdb] Write Protect is off
[ 1542.829224] sd 4:0:0:0: [sdb] Mode Sense: 38 00 00 00   
[ 1542.829229] sd 4:0:0:0: [sdb] Assuming drive cache: write through
[ 1542.830485] sd 4:0:0:1: [sdc] 3519069872 512-byte logical blocks: (1.80 TB/1.63 TiB)
[ 1542.838112] sd 4:0:0:1: [sdc] Write Protect is off
[ 1542.838120] sd 4:0:0:1: [sdc] Mode Sense: 38 00 00 00   
[ 1542.838125] sd 4:0:0:1: [sdc] Assuming drive cache: write through
[ 1542.844988] sd 4:0:0:0: [sdb] Assuming drive cache: write through
[ 1542.844997]  sdb:
[ 1542.876247] sd 4:0:0:1: [sdc] Assuming drive cache: write through
[ 1542.876255]  sdc: unknown partition table
[ 1542.901098]  unknown partition table
[ 1542.907979] sd 4:0:0:0: [sdb] Assuming drive cache: write through
[ 1542.907988] sd 4:0:0:0: [sdb] Attached SCSI disk
[ 1542.916738] sd 4:0:0:1: [sdc] Assuming drive cache: write through
[ 1542.916746] sd 4:0:0:1: [sdc] Attached SCSI disk

我已经尝试使用 Linux 内核 2.6.32、2.6.35 和 3.6.6。

如果我通过 eSATA 连接它,整个设备都会被识别:

[3867153.075703] sd 9:0:0:0: [sdd] 7814037168 512-byte logical blocks: (4.00 TB/3.63 TiB)
[3867153.075708] sd 9:0:0:0: [sdd] 4096-byte physical blocks
[3867153.075862] sd 9:0:0:0: [sdd] Write Protect is off
[3867153.075868] sd 9:0:0:0: [sdd] Mode Sense: 00 3a 00 00
[3867153.075906] sd 9:0:0:0: [sdd] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[3867153.082355]  sdd: unknown partition table  
[3867153.098386] sd 9:0:0:0: [sdd] Attached SCSI disk 

奇怪的是,缺少 1 个扇区:7814037168 - 4294967295 - 3519069872 == 1。

我的问题:

  1. 这是 USB 大容量存储 (usb-storage) 协议的固有限制,即单个设备最多只能有 2 TB - 512 字节 - 还是 Fantec 外部外壳的限制 - 或者是 Linux 内核的问题?
  2. 这是 USB 大容量存储 (usb-storage) 协议的固有限制吗?该协议规定扇区始终为 512 字节,而硬盘的最小 I/O 大小(在本例中为 4096 字节)被忽略了 - 还是 Fantec 外部外壳的限制 - 或者是 Linux 内核的问题?
  3. 使用 USB 3.0 后效果会更好吗?

答案1

  1. 我认为 USB 大容量存储协议中不存在任何此类限制。市场上有 >2TB 的 USB 接口外置硬盘,它们在单个卷上工作得很好。
  2. 我不认为 USB 大容量存储协议具有扇区大小限制,因为有一个带有 USB 接口的 Seagate 外置 3TB 硬盘已知会报告 4K 逻辑扇区。
  3. 我怀疑 USB 3.0 会更好

我认为您的问题出在机箱中的 USB<--->SATA 桥接芯片上。它必须将 SATA 驱动器使用的 ATA 派生命令与 USB 使用的 SCSI 派生命令桥接起来。我不知道为什么它会将物理驱动器拆分为两个逻辑驱动器。请尝试另一个机箱。

相关内容