我想对某些外部硬盘进行完整的逐扇区物理检查。据我所知,chkdsk
没有提供此选项。
有没有解决方法chkdsk
,或者好的替代方案?我在这台机器上使用 Windows 7,但也欢迎使用 Live CD 中适用的 Linux 解决方案。
答案1
在 Windows NT/XP/Vista/7 中,您可以打开 CMD 提示符并使用
chkdsk /r x:
其中 x 是您的 USB 驱动器的驱动器号,假设该驱动器已分区并已分配驱动器号。
我建议获取 Ubuntu Live CD 并启动 Linux,然后使用坏块来扫描物理缺陷。
用于sudo fdisk -l
列出所有驱动器及其分区。对于每个驾驶:
sudo badblocks -nvs /dev/sdx
您的硬盘驱动器是 /dev/sdx。这将对磁盘执行非破坏性读/写测试,而无需进行文件系统检查。
如果您不关心数据,您可以这样做,进行更彻底的扫描:
sudo badblocks -wvs /dev/sdx
-w 选项告诉 badblocks 写入已知模式,然后读回数据以确保其与模式匹配。它使用模式 0xaa、0x55、0xff 和 0x00(交替使用 0 和 1,然后全部使用 1,然后全部使用 0)执行此操作 4 次。请注意,这将覆盖驱动器上的所有数据并清除所有分区。
如果您恰好在驱动器上有一个 Linux 文件系统,则可以检查文件系统错误并同时运行坏块。首先,获取所有驱动器及其分区的列表:
sudo fdisk -l
然后对于每一个分割:
sudo e2fsck -fcc /dev/sdx#
再次,/dev/sdx 是您要扫描的硬盘。# 是分区号(例如,/dev/sdb1)。指定两次 c 将强制运行 fsck,并使用 badblocks 进行非破坏性读写测试。如果您只使用一次 c 选项,badblocks 将进行只读测试。
我购买的每个新硬盘在投入使用之前都会运行 badblocks -wvs。
答案2
我想要对一些外部硬盘驱动器逐个扇区地运行完整的物理检查。
下载并运行高清调谐,从下拉菜单中选择要扫描的驱动器,点击选项卡错误扫描(确保盒子快速扫描很清楚)并击中开始。
HD Tune 可免费供个人使用和携带(无需安装)。
答案3
许多驱动器制造商(例如 Western Digital 和 Seagate)都提供可进行此类检查的工具。通常是 Windows 工具。
答案4
任何现代驱动器都会自动重新映射不可读/有问题的块。操作系统通常不会读取某个块失败,除非该块真的无法读取,并且覆盖该块将导致驱动器重新映射它。只有当驱动器没有备用块时,这才会失败,在这种情况下,就该更换驱动器了!
结果是,以磁盘扫描程序的方式标记“坏块”的操作系统通常是毫无意义的。
话虽如此,我会使用 SMART 扩展自我测试。智能工具应该可以工作。您还可以获取重新映射块的数量。
请注意,在 Linux 中,普通的dd if=/dev/sdx of=/dev/null
(其中 sdx 是磁盘的块设备)将对磁盘进行完整的逻辑读取。如果任何块不可读,您将收到错误。如果您不介意破坏数据,您可以dd if=/dev/zero of=/dev/sdx
覆盖整个磁盘,从而导致驱动器根据需要重新映射。