如何检查外接 USB 硬盘驱动器上是否有坏扇区?
答案1
相关问题
- 修复 Mac 硬盘上的坏块– 包括一些非自由和闭源软件
- 我可以使用哪些免费或开源软件与 Mac 硬件一起来验证磁盘每个块的完整性……?
有时使用驱动器的自动扇区重定位功能是不合适的,因此 ohho 提出的问题变得与众不同:
- 是关于发现。
本质上
如果存在缺陷扇区,则您可以:
- 关心该领域内的数据;或
- 不关心
–考虑一下前执行任何可能导致重新定位(或重新映射或保留,或无论您怎么称呼它)的操作。
为什么要关心?
同时SpinRite6 不适用于 Mac,2003 年版本 5 的页面提供了启发:
请注意有关自动重定位和相关数据丢失风险的部分。
抛开 SpinRite,从 2003 年到 2013 年,时间快进十年:
- 这Drive Genius 3 发出的明确警告在 Mac 上。
对于这里的问题……
如何在 OS X 上检查 USB 硬盘是否有坏扇区?
对于 Mac 和 OS X,我不知道还有什么比它更强大和小心作为 SpinRite(没有什么可以禁用自动重定位)。
因此,就目前情况而言:验证 USB 磁盘的扇区使用 OS X,我们可能只能使用可能会导致搬迁我无法估计相关数据丢失的风险程度,但是如果该风险可以接受那么我应该首先转向:
- 在上述相关问题 (1) 和 (2) 中被投票赞成或推荐的实用程序。
提示:相关问题(1)中的内容更加方便用户使用。
聪明的
操作系统本身无法在 USB 2.0 和 FireWire 等总线上的外部驱动器上使用 SMART 技术。
其他地方有大量的信息(和误解;)所以我将把这部分答案集中在一点上:
- 让苹果操作系统与 SMART 技术兼容外部的USB 和 FireWire 驱动器。
OS X SAT SMART 驱动程序
kasbert / OS-X-SAT-SMART-驱动程序在 GitHub 上:
… Mac OS X 外部 USB 或 FireWire 驱动器的内核驱动程序。它通过提供对驱动器 SMART 数据的访问来扩展标准驱动程序行为。SMART 数据的接口与 ATA 系列驱动程序相同,因此大多数现有应用程序都应该可以运行。该驱动程序需要具有 SAT(SCSI ATA 转换)功能的外部驱动器外壳。…
如果您尝试使用 Lion 来安装该 KEXT,那么 – 与任何第三方内核扩展一样 – 请谨慎操作。
答案2
OS X 内置命令fsck_hfs
有一个选项-S
,显然可以检查 OS X 上的 USB 硬盘上是否有坏块。
从官方手册页(更新:该死!Apple 已从其网站上删除了手册页。):
-S原因文件系统检查点扫描整个设备以查找 I/O 错误。它将尝试将有错误的块映射到名称,类似于-B选项。
例子:
fsck_hfs -fy -S /dev/disk3s11
在分区上运行时似乎会这样做没有但我还没有检查/记录当有坏块时它会做什么是坏块。
更新:警告:fsck_主动磁场能不是执行此操作;虽然它也有一个 -S 选项,但它不会引起扫描;它做了完全不同的事情。
答案3
在应用程序/实用程序中打开 Terminal.app。
剪切并粘贴以下内容以安装 Brew:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
使用 brew 安装 e2fsprogs:
brew install e2fsprogs
键入diskutil list
以查找您的设备(/dev/diskX)
在您的设备上运行badblocks
:(将 X 替换为您的设备编号)
/usr/local/Cellar/e2fsprogs/1.44.3/sbin/badblocks -v /dev/diskX
答案4
真正了解的唯一方法是写入每个扇区并读回以查看是否得到相同的结果,并检查途中是否存在错误。
badblocks
在Linux下这样做。 badblocks
具有非破坏性的读/写测试模式。
在 Windows 下,我相信如果您使用 、 和 选项调用,chkdsk
它将/F
测试/B
每个/R
扇区是否有坏扇区。它也是非破坏性的,但我不确定它是否真的写入每个扇区进行测试。
这个超级用户的回答表明 SpinRite 6 也可能做同样的事情,但我还没有测试过。