我已经阅读了与我的问题相关的其他问题,但似乎没有什么可以解决我的问题。所以我有一个 USB 扩展硬盘驱动器 (2TB Transcend),我正在尝试将其插入。它之前就可以工作,就像我可以使用该硬盘驱动器一样。问题从昨天开始,设备无法安装,但通知(来自 udiskie)告诉设备已出现。我不知道发生了什么,就像两天前我可以很好地使用它,但昨天就不能了。我正在使用 Arch Linux。
$ uname -r
5.0.13-arch1-1-ARCH
$ pacman -Q linux
5.0.13.arch1-1
该设备未列出fdisk
并且lsblk
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 465.8G 0 disk
├─sda1 8:1 0 74.3G 0 part /
├─sda2 8:2 0 200M 0 part /boot
├─sda5 8:5 0 7.5G 0 part [SWAP]
└─sda6 8:6 0 383.8G 0 part /home
sr0 11:0 1 1024M 0 rom
# fdisk -l
Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Disk model: ST500DM002-1BD14
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 81A45AD8-92E8-44C0-8032-EF3D351997DF
Device Start End Sectors Size Type
/dev/sda1 411648 156252159 155840512 74.3G Linux filesystem
/dev/sda2 2048 411647 409600 200M Linux filesystem
/dev/sda5 156252160 171874303 15622144 7.5G Linux swap
/dev/sda6 171876352 976771071 804894720 383.8G Linux filesystem
Partition table entries are not in disk order.
那是我的系统硬盘。
但检测到外部硬盘驱动器lsusb
$ lsusb
Bus 002 Device 003: ID 04f2:1053 Chicony Electronics Co., Ltd
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 005: ID 8564:7000 Transcend Information, Inc. // This one!
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
并dmesg
表明它正在尝试读取驱动器但超时。
$ dmesg | tail -n 20
[ 1832.986654] usb 1-1.2: USB disconnect, device number 4 // This part I was unplugged the drive and replugged it in
[ 1833.084639] usb 1-1.2: new high-speed USB device number 5 using ehci-pci
[ 1833.240367] usb 1-1.2: New USB device found, idVendor=8564, idProduct=7000, bcdDevice=80.00
[ 1833.240371] usb 1-1.2: New USB device strings: Mfr=2, Product=3, SerialNumber=1
[ 1833.240373] usb 1-1.2: Product: StoreJet Transcend
[ 1833.240375] usb 1-1.2: Manufacturer: StoreJet Transcend
[ 1833.240376] usb 1-1.2: SerialNumber: ÿÿÿÿtSroJeteT arsnec
[ 1833.240878] usb-storage 1-1.2:1.0: USB Mass Storage device detected
[ 1833.241118] scsi host4: usb-storage 1-1.2:1.0
[ 1834.259269] scsi 4:0:0:0: Direct-Access StoreJet Transcend 0 PQ: 0 ANSI: 6
[ 1834.260301] sd 4:0:0:0: [sdb] Very big device. Trying to use READ CAPACITY(16).
[ 1834.260795] sd 4:0:0:0: [sdb] Unsupported sector size 14712.
[ 1834.260802] sd 4:0:0:0: [sdb] 0 512-byte logical blocks: (0 B/0 B)
[ 1834.260806] sd 4:0:0:0: [sdb] 14712-byte physical blocks
[ 1834.261883] sd 4:0:0:0: [sdb] Write Protect is off
[ 1834.261888] sd 4:0:0:0: [sdb] Mode Sense: 43 00 00 00
[ 1834.262881] sd 4:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1834.264261] sd 4:0:0:0: [sdb] Unsupported sector size 14712.
[ 1834.266260] sd 4:0:0:0: [sdb] Attached SCSI disk
[ 1864.287693] sd 4:0:0:0: timing out command, waited 30s
它说Very big device. Trying to use READ CAPACITY(16).
和Unsupported sector size 14712.
。那是什么意思?我怎样才能至少备份其中的数据?
答案1
USB 磁盘使用 SCSI 命令或命令描述符块 (CDB) 进行控制。
最初,内核使用 10 字节 CDB 进行磁盘容量查询,这是较旧且支持更广泛的形式。但如果答案表明磁盘大小不适合旧的响应格式,内核会Very big device. Trying to use READ CAPACITY(16)
使用可处理巨大磁盘大小的 16 字节 CDB 的较新命令记录并重试该操作。
消息Unsupported sector size 14712
有问题。 Linux 内核准备接受 512、1024、2048 或 4096 字节的扇区大小。 14712 字节的值不适合这些值中的任何一个。当遇到不支持的大小时,SCSI 磁盘驱动程序会将磁盘容量值设置为 0,以禁止访问设备,直到扇区大小问题以某种方式得到解决(可能使用供应商特定的工具来重新格式化磁盘以使用不同的磁盘大小)。扇区大小)。
这种奇怪的扇区大小可能是由于驱动器没有获得足够的电力而引起的虚假响应(正如 Alejandro Galván Gómez 在另一个答案中所建议的那样)。在这种情况下,使用不同的 USB 电缆或端口可能会有所帮助。
这也可能表明磁盘出现故障。在这种情况下,现在考虑进行备份就为时已晚,除非您很幸运并且磁盘能够再次正确启动。
答案2
我在使用外部 WD 硬盘时遇到了与您相同的问题。经过几天的谷歌搜索(没有答案),我意识到我已经更换了电缆(我用来连接 USB 端口的延长线)。我尝试直接用原来的电缆连接它,它成功了。然后我尝试了一些新的电缆延长线,直到找到一个可以解决问题的延长线。
也就是说,如果您尝试使用之前连接的 USB 端口来安装它。
这也是一个能源消耗问题。我在其他 USB 端口中尝试过它,并在 lsusb 中列出它并在 dmesg 中检测到,但在 fdisk 中未检测到。我在这里找到了答案:https://raspberrypi.stackexchange.com/questions/9279/harddrive-detected-as-13fd160e-initio-corporation-instead-of-10581010-western
答案3
需要对其进行分区才能使用。您的磁盘可以通过(以 root 身份)查看:
fdisk -l /dev/sdb
...如果 dmesg 没有表明可能有问题。但是,如果您确实从该命令中获得了有意义的输出,则应该能够对其进行分区并格式化。