附录

附录

前段时间我买了一个2TB的外置硬盘。现在我遇到了一个问题:当我插入时,我的计算机看不到它。(我尝试了 Gparted 以及我在互联网上找到的其他一些程序)。因为我想格式化它,所以我尝试了这些命令,但没有显示:

lsusb

sudo fdisk -l

仅显示于:

dmesg | tail -n 20

留言:

[ 1639.785187] sd 6:0:0:0: [sdb] Read Capacity(10) failed: Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK
[ 1639.785190] sd 6:0:0:0: [sdb] Sense not available.
[ 1639.977010] sd 6:0:0:0: [sdb] Write Protect is off
[ 1639.977017] sd 6:0:0:0: [sdb] Mode Sense: 00 00 00 00
[ 1640.057076] sd 6:0:0:0: [sdb] Asking for cache data failed
[ 1640.057083] sd 6:0:0:0: [sdb] Assuming drive cache: write through
[ 1640.525073] sd 6:0:0:0: [sdb] Read Capacity(16) failed: Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK
[ 1640.525077] sd 6:0:0:0: [sdb] Sense not available.
[ 1640.780937] sd 6:0:0:0: [sdb] Read Capacity(10) failed: Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK
[ 1640.780940] sd 6:0:0:0: [sdb] Sense not available.
[ 1641.188905] sd 6:0:0:0: [sdb] Attached SCSI disk
[ 2138.683015] usb 4-1.1: new high-speed USB device number 9 using ehci-pci
[ 2138.872871] usb 4-1.1: New USB device found, idVendor=0bc2, idProduct=231a
[ 2138.872879] usb 4-1.1: New USB device strings: Mfr=1, Product=2, 
SerialNumber=3
[ 2138.872883] usb 4-1.1: Product: Expansion
[ 2138.872887] usb 4-1.1: Manufacturer: Seagate
[ 2138.872890] usb 4-1.1: SerialNumber: NAA7A6D6
[ 2138.876706] scsi host6: uas
[ 2138.878489] scsi 6:0:0:0: Direct-Access     Seagate  Expansion        0710 PQ: 0 ANSI: 6
[ 2138.911706] sd 6:0:0:0: Attached scsi generic sg2 type 0

操作系统- Debian Stretch(也使用win 7)

答案1

您可能想尝试在内核中为此设备供应商禁用 uas。我的外部 USB 外壳也遇到了类似的问题,这解决了问题。下面是我的完整笔记,每次我必须解决这个问题时都会参考这些笔记(例如在全新安装 Ubuntu 之后)。对于最近使用内核 5.0.0-36-generic 的 18.04.3 LTS,这对我来说仍然是必要的。

这是解决方案(适用于我的 LaCie 驱动器、外部 Seagate 硬盘盒等)在启动时挂起系统且未显示在 fdisk 中。 059f:105e 是 LaCie 驱动器的供应商/产品字符串,因此如果您对另一个驱动器执行此操作,请使用“lsusb”为此设备打印的相应字符串(“lsusb -t”也可能有用)。其作用是仅禁用此供应商/产品字符串的 UAS,然后使用此修复重建最新的内核。我这样做了,然后系统快速启动并立即在 fdisk 中显示驱动器!

注意:如果 modprobe.d 中的每个怪癖都有一个单独的文件,它将无法工作!无论最后读取哪个文件,都可能会覆盖前一个文件。因此,您必须在一行中输入怪癖,并用逗号分隔。

以下是解决该问题的方法:

sudo su
cat > /etc/modprobe.d/disable-uas.conf

单个设备看起来像这样:

options usb-storage quirks=059f:105e:u

多台设备都是这样完成的。此处 LaCie 和 Seagate 外壳均已修改。

options usb-storage quirks=059f:105f:u,059f:105e:u,174c:1351:u

(ctrl-D 退出)

update-initramfs -u
reboot

如果你想让事情在不重新启动的情况下工作,这也有效:

rmmod uas usb-storage
modprobe usb-storage quirks=174c:1351:u,059f:105e:u,059f:105f:u

附录

以下是一些用于调试 USB 设备状态的有用命令:

  • fdisk -l
  • USB 设备
  • lspci-nv
  • LSSB
  • lsusb -t

注意:我之前使用过另一种方法,涉及编辑 /lib/udev/rules.d/69-libmtp.rules 并添加以下适用于 LaCie 驱动器的行:

ATTR{idVendor}=="059f", ATTR{idProduct}=="105e", SYMLINK+="libmtp-%k", 
MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", 
ENV{ID_MEDIA_PLAYER}="1", TAG+="uaccess"
ATTR{idVendor}=="059f", ATTR{idProduct}=="105f", SYMLINK+="libmtp-%k", 
MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", 
ENV{ID_MEDIA_PLAYER}="1", TAG+="uaccess"

但现在这似乎没有必要,modprobe 方法本身就可以很好地工作。而且这种方法似乎在某个时候停止工作了,可能是因为我更新到了较新的 Ubuntu 或内核版本。

答案2

我知道这个问题已经存在三年了,但我有一个可能的解决方案,但没有提到。我的一个外部驱动器一直很好,直到有一天它开始出现问题,然后就不再被识别。我用的时候fdisk -l没有显示,但是灯亮着,而且磁盘一直不转。

事实证明,解决方案非常简单。我打开它,发现实际的驱动器从 USB 接口上松脱了。我正确连接它,突然在计算机上识别它,安装它,它处于100%工作状态。仅此而已!

相关内容