⚠️ 重要警告:操作前必读
在执行任何磁盘检测或修复操作之前,请务必:

- 备份数据! 坏道通常是硬件老化的标志,意味着数据随时可能丢失,所有修复操作都无法保证100%成功,且有丢失数据的风险。最重要的一步是立即将硬盘中的重要数据备份到另一个健康的存储设备上。
- 理解操作风险:
- 逻辑坏道:文件系统错误,通常可以修复。
- 物理坏道:磁盘盘片物理损伤,无法修复,只能尝试将坏道标记为不可用,并防止数据写入该区域,强行修复物理坏道可能导致数据彻底丢失和硬盘加速损坏。
- 停止使用该磁盘:如果怀疑有坏道,应立即停止向该磁盘写入任何新数据,只进行读取操作以备份数据。
Windows 系统
Windows 主要提供两个内置命令行工具:CHKDSK 和 WMIC。
CHKDSK (Check Disk) - 检查磁盘并修复文件系统错误
这是 Windows 最常用的磁盘检查工具,主要用于修复逻辑坏道(即文件系统错误)。
语法:
chksk [驱动器字母:] /f /r
参数说明:

[驱动器字母:]:指定要检查的驱动器,C:,D:。/f(Fix disk errors):修复磁盘上的错误,这是最常用的参数。/r(Locate bad sectors and recover readable information):找到坏扇区并尝试恢复可读的信息,这个参数会包含/f的功能,并且会运行更彻底的扫描。注意:此过程非常耗时,可能需要数小时,具体取决于硬盘大小和健康状况。
操作步骤:
- 以管理员身份打开命令提示符 (CMD) 或 Windows PowerShell (管理员)。
- 输入命令,例如检查 D 盘:
chkdsk D: /f /r
- 系统可能会提示你“无法锁定当前驱动器,是否希望在下次系统重启时检查此驱动器(Y/N)?”,输入
Y并按回车,然后重启电脑让系统在启动时执行检查。
优点:内置工具,无需安装。 缺点:对于物理坏道,它只能尝试读取数据并将坏道标记为“不可用”,但修复能力有限。
WMIC (Windows Management Instrumentation Command-line) - 执行磁盘表面扫描
WMIC 提供了一个更底层的接口,可以调用磁盘的 Surface Scan 功能,这比 CHKDSK 的 /r 参数更专注于物理坏道的检测。
语法:

wmic logicaldisk get deviceid,description
(此命令用于列出所有逻辑磁盘,确认你要扫描的盘符)
wmic diskdrive get model,serialnumber
(此命令用于列出所有物理磁盘,确认你要扫描的硬盘)
wmic diskdrive where "DeviceID='\\\\.\\PHYSICALDRIVE0'" call surfaceScan
(执行表面扫描)
操作步骤:
- 以管理员身份打开命令提示符。
- 首先确定你的硬盘是
PHYSICALDRIVE0还是PHYSICALDRIVE1,在我的电脑->管理->磁盘管理中可以看到,通常系统盘是 0。 - 执行扫描命令,例如扫描第一个物理硬盘:
wmic diskdrive where "DeviceID='\\\\.\\PHYSICALDRIVE0'" call surfaceScan
- 这个过程会非常非常慢,它会逐个扇区读取,如果遇到无法读取的扇区,就会报告为坏道。请耐心等待。
优点:专注于物理介质检测。 缺点:过程极慢,且只读不修复,它主要作用是“发现”坏道,修复仍需依赖其他工具或厂商工具。
Linux / macOS 系统
Linux 和 macOS (基于 Unix) 都使用类似的工具,最核心的是 badblocks 和 smartctl。
smartctl - 监控、分析、报告硬盘技术
smartctl 是 smartmontools 包的一部分,是检测硬盘健康状况和坏道的首选工具,S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology) 是硬盘的内置健康监测系统。
安装:
- Debian/Ubuntu:
sudo apt-get install smartmontools - CentOS/RHEL:
sudo yum install smartmontools - macOS: 通常已预装,如果没有可以通过 Homebrew 安装:
brew install smartmontools
常用命令:
a) 查看硬盘 S.M.A.R.T. 整体健康状况
# 查看所有硬盘的 S.M.A.R.T. 信息 sudo smartctl --scan # 检查特定硬盘,/dev/sda sudo smartctl -a /dev/sda
重点关注 Overall SMART Health Status 一项,如果显示 PASSED 则健康,FAILED 则说明硬盘可能已有严重问题。
b) 执行短自检 这个测试会快速检查硬盘的关键指标,耗时较短。
sudo smartctl -t short /dev/sda
执行后,可以再次运行 sudo smartctl -a /dev/sda 查看 SMART Self-test log 来获取测试结果。
c) 执行长自检 这个测试会全面扫描整个磁盘表面,耗时很长(几小时到十几小时),但能更可靠地发现坏道。
sudo smartctl -t long /dev/sda
同样,通过查看 SMART Self-test log 获取结果。
优点:行业标准,能提前预警硬盘故障,非破坏性测试。 缺点:主要基于硬盘自身的报告,不直接修复。
badblocks - 查找坏块
badblocks 是一个直接在磁盘设备上查找坏扇区的工具,它会尝试读取磁盘的每一个块。
语法:
sudo badblocks -sv [设备路径] [起始块] [块数]
参数说明:
-s(show progress):显示进度条。-v(verbose):详细模式。-w(write test):写测试,这是最彻底的测试,它会写入特定模式的数据,然后再读回来验证。这会破坏设备上的所有数据! 仅在确认数据已备份后使用。-n(non-destructive read-write test):非破坏性读写测试,这是推荐的安全测试方式,它会读取所有块,并修复文件系统标记的坏块,但不会破坏数据。[设备路径]:/dev/sda(整个硬盘),/dev/sda1(分区)。
操作步骤:
只读测试(安全)
# 对整个硬盘进行只读扫描 sudo badblocks -sv /dev/sda
非破坏性读写测试(推荐,修复文件系统坏块)
# 对整个硬盘进行非破坏性测试,并修复文件系统坏块 sudo badblocks -nsv /dev/sda
注意:此命令必须在卸载该分区后才能执行。/dev/sda 是系统盘,你需要进入 Live CD/USB 环境操作。
写测试(彻底但破坏性)
# 警告:此操作会清空硬盘所有数据! sudo badblocks -wsv /dev/sda
优点:直接、主动地查找物理坏道。 缺点:耗时,尤其是写测试,非破坏性测试需要卸载分区。
总结与推荐流程
| 工具 | 系统 | 用途 | 优点 | 缺点 |
|---|---|---|---|---|
| CHKDSK | Windows | 检查并修复文件系统错误 | 内置,方便 | 对物理坏道修复能力有限 |
| WMIC | Windows | 深度表面扫描物理坏道 | 比CHKDSK更底层 | 过程极慢,只读不修复 |
| smartctl | Linux/macOS | 首选,通过S.M.A.R.T.监控硬盘健康 | 行业标准,可预警,非破坏性 | 不直接修复坏道 |
| badblocks | Linux/macOS | 主动查找物理坏块 | 直接、可靠 | 耗时,写测试有破坏性 |
推荐的诊断流程:
-
初步诊断:
- Windows: 运行
chkdsk C: /f(系统盘) 或chkdsk D: /f /r(数据盘)。 - Linux/macOS: 运行
sudo smartctl -a /dev/sda查看 S.M.A.R.T. 状态。
- Windows: 运行
-
深度扫描:
- 如果初步诊断发现问题或想彻底确认,请备份数据!
- Windows: 使用
wmic进行surfaceScan。 - Linux/macOS: 运行
sudo smartctl -t long /dev/sda(长自检),等待完成后用sudo smartctl -a /dev/sda查看日志,或者,在卸载分区后运行sudo badblocks -nsv /dev/sda。
-
后续处理:
- 如果确认有坏道,最好的办法是更换硬盘。
- 如果暂时无法更换,可以使用硬盘厂商提供的专用工具(如 SeaTools for Seagate, Data Lifeguard for WD)对硬盘进行“全盘扫描”和“修复”,这些工具通常与硬盘固件交互更紧密,能更好地屏蔽坏道。
- 在操作系统中,将坏道所在的分区进行格式化,有时也能让文件系统自动避开坏块(但不可靠)。
