我有一个外部的USB硬盘驱动器,包括一个1 TB的RosewilRX35-AT-SU SLV铝3.5“银USB2.0外罩中的SATA驱动器,插入我的索尼VAIO VGN-NS310F膝上型电脑。它直接插入计算机(不是通过集线器)。内部的驱动是一个7200转的西部数字,但我不记得确切的模型。如果人们认为有必要知道这个细节的话,我可以将驱动器从外壳中移除(再次)。
驱动器是格式化的ext4。我在我的Lubuntu11.10系统上用udisks动态地挂载它,通常通过PCManFM自动挂载它。(我在这台机器上有过Lubuntu12.04,也经历过同样的行为。)每隔一段时间--每天一次或两次--它变得难以到达,而且很难卸下。试图用sudo umount ...卸载它会产生一条错误消息,说明驱动器正在使用,并建议fuser和lsof找出使用它的是什么。与fuser和lsof一起使用驱动器的进程有时足以让我卸载它,但通常不是。
一旦驱动器被卸载或机器重新启动,驱动器将不会挂载。插入驱动器并将其打开,计算机上没有任何寄存器。dmesg没有变化。驱动器的访问灯通常会强烈地闪烁,就像驱动器被不断地访问一样。最后,当我把驱动器关了一段时间(半个小时)后,我就可以重新安装它了。
虽然驱动器在这台机器上有一段时间不能工作,但它将立即在另一台运行相同版本Ubuntu的机器上工作。有时候,把它从另一台机器上拿回来,似乎是在“修理”它。有时候却不是。
在安装之前,驱动器并不总是可以访问。有时它可以正常工作,我关闭计算机,我打开电脑,而我不能安装驱动器。
目前,这是我唯一有此问题的驱动器,但我认为在不同的Ubuntu机器上,存在着与此相同的问题,不同的驱动器。这台笔记本电脑有另一个外部USB驱动器定期插入它,这没有这个问题。在插入“问题”驱动器之前先将该驱动器拔出并不能解决问题。
我已经打开驱动器,并确保连接在过去是紧的,这似乎没有帮助(除了等待打开和关闭驱动器所需的时间,然后尝试重新安装它)。
有没有人知道导致这种情况的原因,我应该执行哪些故障排除步骤,以及/或我如何完全解决这个问题?
更新:我尝试更换USB数据线(从外壳到笔记本电脑),正如合并建议的那样。我应该在很久以前就试过了,因为它完全符合症状(驱动器在另一台机器上工作,这是有意义的,因为电缆会以不同的角度弯曲,可能会完成由磨损的电线组成的电路)。不幸的是,这并没有帮助--我在新电缆上也有同样的问题。我将尝试提供更多的详细信息,驱动器内的外壳,下一次,我能够使驱动器工作。(目前我没有另一台机器可用来连接它。)
这一势头似乎大大恶化了。我认为是这样的,因为我已经将它附加到另一台机器上,并且在从它复制文件时得到了许多关于无效字符的错误。我对从硬盘中恢复数据不太感兴趣,而是想弄清楚它到底出了什么问题。我特别想找出问题是驱动器还是外壳。
现在,当我将驱动器插入我遇到问题的原始机器时,它仍然不会出现(包括sudo fdisk -l),但是内核会识别它,并将消息添加到dmesg中。大多数消息都包含这样的错误,重复多次:
[ 7.707593] sd 5:0:0:0: [sdc] Unhandled sense code
[ 7.707599] sd 5:0:0:0: [sdc] Result: hostbyte=invalid driverbyte=DRIVER_SENSE
[ 7.707606] sd 5:0:0:0: [sdc] Sense Key : Medium Error [current]
[ 7.707614] sd 5:0:0:0: [sdc] Add. Sense: Unrecovered read error
[ 7.707621] sd 5:0:0:0: [sdc] CDB: Read(10): 28 00 00 00 00 00 00 00 08 00
[ 7.707636] end_request: critical target error, dev sdc, sector 0
[ 7.707641] Buffer I/O error on device sdc, logical block 0这是所有的台词dmesg从驱动器被识别时开始。请注意:
/dev/sdb的。那个驱动器运转良好。坏的驱动器是/dev/sdc。我只是不想从中间编辑任何东西。发布于 2015-03-31 03:20:05
若要确定问题是驱动器还是外壳,请将驱动器从外壳中移除,将其安装在具有足够电源的桌面上,并检查智能状态。
为了进行更深入的测试,您可以使用像ddrescue这样的工具检查驱动器的每个扇区。ddrescue将在处理过程中报告错误大小,您可以尝试同时在:sudo ddrescue /dev/sdb2 /path/to/recovery.image logfile中恢复数据。列出使用sudo lsblk或经典fdisk -l的分区。
如果您对数据没有兴趣,可以强制输出文件为/dev/null,如下所示:
sudo ddrescue --force /dev/sdc /dev/null logfile 您仍然会得到stdout上任何错误大小的报告。
在Ubuntu14.04上使用GNUdd救援1.17进行测试,在这个使用/dev/sdb2 2( 1MB交换分区)的简短示例中如下所示
$ sudo ddrescue --force /dev/sdb2 /dev/null logfile
GNU ddrescue 1.17
Press Ctrl-C to interrupt
rescued: 1024 B, errsize: 0 B, current rate: 1024 B/s
ipos: 0 B, errors: 0, average rate: 1024 B/s
opos: 0 B, time since last successful read: 0 s发布于 2014-09-23 15:38:24
在运行12.04 Ubuntu桌面时,我也有过类似的经历。我的硬盘外壳有两个电源选项,我可以购买一个a/c适配器或使用一个迷你usb到普通usb电缆,或使用一个迷你usb电缆成两个usb电缆。理想情况下,它需要连接到两个usb端口,以提供充足的电源。它可以通过usb电缆或eSata传输数据。
在使用eSata连接时,我需要首先提供驱动电源,以便磁盘旋转,然后引导系统,这样bios就可以识别已经在旋转的磁盘。否则,它将无法及时看到磁盘。我相信这与外壳的控制器有关。
当我安装USB时,当我先将电缆插入外壳,然后插入USB端口时,结果非常复杂。也许大约有一半的时间它会正确安装。如果我先将usb电缆插入pc端口,然后再插入外壳端口,我的效果要好得多,在70%左右。我在USB选项中获得的最好结果是,在我将磁盘插入到机器上之前,使用外部电源(a/c适配器)来确保磁盘旋转和稳定。几乎百分之百地工作
这并不是说这正是你的问题,但对我来说,它帮助提供了外壳的力量,并让磁盘旋转之前,连接它,让它读系统。也许您的一个系统上的bios或总线速度要好于另一个系统,并且它给外壳控制器在尝试读取磁盘之前开始工作的时间?也许,在关闭外壳之后,控制器会重新设置自己?
也许控制器需要时间来决定它是仅仅从USB的电源还是电源和数据。可能是电压或安培问题?另外,外壳控制器似乎很挑剔。
发布于 2012-06-26 19:09:55
对于USB驱动器,请尝试以下步骤(如果您还没有这样做):
sudo fdisk -l #获取信息sudo mkdir /media/external #创建挂载点sudo mount -t vfat /dev/sdb1 /media/external -o uid=1000,gid=1000,utf8,dmask=027,fmask=137 #安装。或者尝试使用pmount安装你的USB。
https://askubuntu.com/questions/156380
复制相似问题