我有 3bon-s35s SATA 到 USB 转换器(或控制器)。它使用 JMicron JM20339 芯片组。
Windows 7 可以识别 WD 4TB HDD,但 Ubuntu 不能。dmesg 显示如下
[ 2.990457] scsi 6:0:0:0: Direct-Access WDC WD40EZRX-00SPEB0 PQ: 0 ANSI: 2 CCS
[ 2.991789] sd 6:0:0:0: Attached scsi generic sg1 type 0
[ 2.992179] sd 6:0:0:0: [sdb] 3519069872 512-byte logical blocks: (1.80 TB/1.63 TiB)
[ 2.993272] sd 6:0:0:0: [sdb] Write Protect is off
[ 2.993281] sd 6:0:0:0: [sdb] Mode Sense: 00 38 00 00
[ 2.994269] sd 6:0:0:0: [sdb] Asking for cache data failed
[ 2.994278] sd 6:0:0:0: [sdb] Assuming drive cache: write through
[ 3.031761] sdb: unknown partition table
[ 3.035276] sd 6:0:0:0: [sdb] Attached SCSI disk
在 ubuntu 下,它只报告 1.63TiB。数据表显示它支持 LBA48(非官方。JMicron 网站只有 JM20337)
http://www.chinaeds.com/zl/2007102620325297882.pdf
无论如何,当我将 WD 4TB HDD 连接到 M/B SATA 端口时,内核显示 4TB
[ 2.466401] scsi 3:0:0:0: Direct-Access ATA WDC WD40EZRX-00S 0A80 PQ: 0 ANSI: 5
[ 2.466705] sd 3:0:0:0: [sdb] 7814037168 512-byte logical blocks: (4.00 TB/3.63 TiB)
[ 2.466709] sd 3:0:0:0: [sdb] 4096-byte physical blocks
[ 2.466723] sd 3:0:0:0: Attached scsi generic sg1 type 0
[ 2.466764] sd 3:0:0:0: [sdb] Write Protect is off
[ 2.466767] sd 3:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[ 2.466792] sd 3:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 2.560959] sdb: sdb1 sdb2
[ 2.561389] sd 3:0:0:0: [sdb] Attached SCSI disk
看来 ubuntu 内核的 JMicron USB 驱动程序有问题。我该如何修复这个问题?
经过测试的平台
- AMD 4850e
- MSI MS-7549 (785g 主板)
- Ubuntu 桌面 14.04 LTS 32 位和 64 位(Live USB)
- WD40EZRX4.0TB硬盘谷氨酰胺磷酸酶/NTFS
- 3bon 3bon-s35s /JMicron JM20339
fdisk 和 parted 日志
$ sudo fdisk -l
Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000ac755
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 621012991 310505472 83 Linux
/dev/sda2 621015038 625141759 2063361 5 Extended
/dev/sda5 621015040 625141759 2063360 82 Linux swap / Solaris
WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.
Disk /dev/sdb: 1801.8 GB, 1801763774464 bytes
256 heads, 63 sectors/track, 218196 cylinders, total 3519069872 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 1 4294967295 2147483647+ ee GPT
。
$ sudo parted /dev/sda print
Model: ATA WDC WD3200BEVT-0 (scsi)
Disk /dev/sda: 320GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 318GB 318GB primary ext4 boot
2 318GB 320GB 2113MB extended
5 318GB 320GB 2113MB logical linux-swap(v1)
$ sudo parted /dev/sdb print
Error: Invalid argument during seek for read on /dev/sdb