我有一个外部 USB 硬盘,由一个 1 TB SATA 驱动器组成Rosewill RX35-AT-SU SLV 铝制 3.5 英寸银色 USB 2.0 外置外壳,插入我的SONY VAIO VGN-NS310F 笔记本电脑。它直接插入计算机(而不是通过集线器)。机箱内的驱动器是 7200 rpm 的 Western Digital,但我不记得确切的型号。如果人们认为有必要了解这个细节,我可以(再次)从机箱中取出驱动器。
该驱动器的格式为 ext4。我使用 动态地将它安装udisks
在我的 Lubuntu 11.10 系统上,通常是通过 PCManFM 自动安装的。(我在这台机器上安装了 Lubuntu 12.04,也遇到了同样的问题。)每隔一段时间(一天一两次)它就会变得无法访问,并且很难卸载。尝试使用 卸载它会sudo umount ...
显示一条错误消息,提示驱动器正在使用中,并建议fuser
和lsof
找出正在使用它的内容。杀死使用 发现正在使用该驱动器的进程fuser
有时lsof
足以让我卸载它,但通常不行。
一旦卸载驱动器或者重新启动机器,驱动器将不会安装。插入驱动器并打开它不会在计算机上记录任何内容。dmesg
没有变化。驱动器的访问指示灯通常会剧烈闪烁,好像驱动器正在被不断访问。然后,最终,在我关闭驱动器一段时间(半小时)后,我能够再次安装它。
虽然驱动器无法工作这台机器一段时间后,它会立即起作用另一台机器运行相同版本的 Ubuntu。有时从另一台机器上取回它似乎可以“修复”它。有时却不能。
驱动器并不总是停止访问安装时,然后才可将其卸载。有时它工作正常,但我关闭计算机,再打开计算机,却无法安装驱动器。
目前,这是我遇到此问题的唯一驱动器,但我认为在不同的 Ubuntu 机器上使用不同的驱动器时,我遇到过与此相同的问题。这台笔记本电脑经常插入另一个外部 USB 驱动器,因此不会出现此问题。在插入“问题”驱动器之前拔下该驱动器并不能解决问题。
我已经打开驱动器并确保连接牢固,但这似乎没有帮助(在尝试重新安装之前,只需等待打开和关闭驱动器所需的相同时间)。
有谁知道是什么原因导致的这个问题,我应该执行哪些故障排除步骤,以及/或者如何彻底解决这个问题?
更新:我尝试更换 USB 数据线(从外壳到笔记本电脑),因为梅林建议。我早就应该尝试一下,因为它完全符合症状(驱动器在另一台机器上工作,这是有道理的,因为电缆会以不同的角度弯曲,可能会形成磨损的电线回路)。但不幸的是,这并没有帮助——新电缆也给我带来了同样的问题。下次我能让驱动器正常工作时,我会尝试提供有关机箱内驱动器的更多详细信息。(目前我没有另一台机器可以连接它。)
重大更新(2012 年 6 月 28 日)
该驱动器似乎已严重损坏。我认为是这样,因为我已将其连接到另一台机器,并在从中复制文件时收到大量有关无效字符的错误。我对从驱动器中恢复数据的兴趣不大,我更感兴趣的是找出它出了什么问题。我特别想弄清楚问题出在驱动器还是外壳上。
现在,当我将驱动器插入出现问题的原始机器时,它仍然没有出现(包括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
- 我又在这台机器上运行 Lubuntu 12.04(也许这是改善错误消息的一个因素)。
- 现在驱动器已插入另一台机器,并重新插入这台机器,并且还现在这台机器又运行 12.04 了,驱动器的访问指示灯不再像我描述的那样闪烁。查看驱动器,它似乎工作正常,访问量很低或没有访问量。
- 在插入驱动器的情况下重新启动机器时以及手动插入驱动器时都会发生此行为(错误)。
- 一些消息是关于 的
/dev/sdb
。该驱动器运行良好。损坏的驱动器是/dev/sdc
。我只是不想从中间编辑掉任何内容。
答案1
要确定问题出在驱动器还是机箱上,请从机箱中取出驱动器,将其安装在具有足够电力的台式机中,然后检查智能状态。
为了进行更深入的测试,您可以利用诸如 之类的工具检查驱动器的每个扇区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 上收到有关任何错误大小的报告
在这个简短的例子中,使用 /dev/sdb2(一个 1MB 交换分区)在 Ubuntu 14.04 上使用 GNU ddrescue 1.17 进行了测试,如下所示
$ 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
答案2
我在运行 12.04 Ubuntu 桌面时也有过类似的经历。我的硬盘盒有 2 种电源选项,我可以购买交流适配器或使用 1 个迷你 USB 转普通 USB 电缆,或者使用迷你 USB 电缆转两根 USB 电缆。理想情况下,它需要连接到两个 USB 端口才能提供充足的电力。它可以通过 USB 电缆或 eSata 传输数据。
使用 eSata 连接时,我需要先为驱动器供电,使磁盘旋转,然后启动系统,以便 BIOS 识别已经旋转的磁盘。否则它无法及时看到磁盘。我相信这与机箱的控制器有关。
当我安装 USB 时,我将电缆首先插入机箱,然后插入 USB 端口,结果好坏参半。大概有一半的时间可以正确安装。如果我先将 USB 电缆插入 PC 端口,然后再插入机箱,结果会好得多,大约 70%。使用 USB 选项时,我得到的最佳结果是使用外部电源(交流适配器)为机箱供电,以确保在将磁盘插入机器之前磁盘旋转且稳定。几乎 100% 有效
并不是说这正是您的问题,但对我来说,在连接磁盘之前为机箱供电并让磁盘旋转以让系统读取磁盘是有帮助的。也许您的一个系统上的 BIOS 或总线速度比另一个系统要快,并且它为机箱控制器在尝试读取磁盘之前提供了开始工作的时间?也许在拔下机箱电源后一段时间控制器会自行重置?
也许控制器需要时间来决定是只从 USB 获得电源还是从电源和数据获得电源。也许是电压或电流问题?无论如何,机箱控制器似乎很挑剔。
答案3
对于您的 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。
答案4
此类问题通常是由于 USB 电缆向驱动器供电不足造成的,尤其当外部驱动器不是现成的而是自行组装时,更可能发生此类问题。(您希望制造商能够外部的驱动器会确保 USB 端口可以支持它。
设备可以从 USB 2.0 规格的端口汲取高达 500 mA 的电流,而 USB 3.0 规格的端口汲取高达 900 mA 的电流。通过检查外部驱动器制造商的规格,您或许能够确认驱动器的最大功率要求。
这个问题通常可以通过尝试 USB3 端口(如果你有一个,而你还没有尝试过)来解决,因为它们比 USB2 提供更多的电力,或者得到一个 USB Y 电缆,这样驱动器就可以从2端口而不是 1。这些可以在 eBay 或 Amazon 上以低价购买。