修复存在坏块或05、C4、C5 S.M.A.R.T错误的硬盘
-
重启计算机并经U盘引导进入Windows版本≥10的Windows PE操作系统。
-
启动5.27简体中文版本的Victoria应用程序。
-
依次转至设置、测试选项选项卡。
-
在弹出设置窗口中的在日志报告延迟区域中勾选深灰色和绿色选项,然后关闭以保存。
示例如下:
-
在应用程序主界面右侧的硬盘列表中单击选中要修复的硬盘。
示例如下:
由上可知:
选中目标磁盘后,应用程序主界面底部的日志输出窗口也会有目标硬盘的型号数据输出。注意不要选错。 -
点击应用程序主界面顶部按钮栏中的测试/维修按钮,以进行全盘扇区扫描。
示例如下:
-
在测试/维修窗口中的右侧进行如下设置后,点击Scan按钮进行全盘扇区初扫。
a. 开始(LBA)的值设为0。
b. 结束(LBA)的值设为目标硬盘的最大扇区数。
c. 依次选中读取、忽略单选框和网格复选框。
示例如下:
注意事项:
- 扫描时间与硬盘扇区总数呈正比,需耐心等待。
- 关闭Windows PE操作系统的休、睡眠功能。
开始扫描后,应用程序底部的日志区将会提示开始扫描,并持续输出扫描期间的各种日志。
示例如下:
-
全盘扇区初扫完成后,在Victoria应用程序底部的日志输出区中右键单击选择将日志保存到文件项,以将扫描结果存为日志文件以备后期修复。
示例如下:
-
打开保存的扫描日志文件。
示例日志文件如下:Victoria 5.34 HDD/SSD | Device 2 log file. 9/6/2025 11:17:28 : Starting Victoria 5.34 HDD/SSD. 4xCPU, 1620.30 MHz, Windows 10 x64 found. 11:17:28 : [Hint] Recommend 32-bit Windows XP for a best work! 11:17:28 : Warning! Windows x64 detected! PIO mode supported on Windows x86 only. 11:17:31 : API access enabled, device #0 11:17:32 : ? F1 ????/?? 11:17:32 : ????????... OK 11:17:32 : ??: KBG30ZPZ128G TOSHIBA; ?? 250069680 LBAs 11:17:38 : ????????... OK 11:17:38 : ??: WDC WD10EZEX-08WN4A0; ?? 1953525168 LBAs; SN: WD-WX39AE7D9483; FW: 45.F8F.B 11:17:42 : Stopping USB/SAS drive... HD Spindle is stopped 11:17:48 : Recallibration... OK 11:17:51 : Get S.M.A.R.T. command... OK 11:17:51 : ????? 11:17:52 : SMART status = GOOD 11:18:00 : ????????... OK 11:18:00 : ??: WDC WD10EZEX-08WN4A0; ?? 1953525168 LBAs; SN: WD-WX39AE7D9483; FW: 45.F8F.B 11:20:44 : ????????... OK 11:20:44 : Recallibration... OK 11:20:44 : Starting Reading, LBA=0..1953525167, FULL, sequential access, timeout 10000ms 11:21:31 : Block start at 12341248 (6 GB) Read error: UNCR "Data error (cyclic redundancy check)" 12241248 11:21:33 : Warning! Block start at 12505088 (6 GB) = 1063 ms 11:27:07 : Block start at 100651008 (52 GB) Read error: UNCR "Data error (cyclic redundancy check)" 11:27:10 : Block start at 100814848 (52 GB) Read error: UNCR "Data error (cyclic redundancy check)" 11:27:12 : Block start at 100820992 (52 GB) Read error: UNCR "Data error (cyclic redundancy check)" 11:42:27 : Block start at 364105728 (186 GB) = 453 ms 1:23:18 : *** Scan results: Warnings - 2, errors - 4. Last block at 1953525167 (1.0 TB), time 2 hours 2 minutes 34 seconds. 1:23:18 : Speed: Maximum 163 MB/s. Average 81 MB/s. Minimum 0 MB/s. 828 points.
由上可知:
- 此次扫描容量为1TB,共耗时2小时2分34秒。
- 日志中形如“XXX Block start at A (B TB) = C ms”的行,表示在A块处存在读延迟,延迟为C毫秒。这些块就是待修复的块。
注意事项:
- 对于块的读速度,一般定义:
- 读延迟≤100ms的块,性能非常良好,无需处理。
- 读延迟在100ms ~ 160ms之间的块,性能尚可,亦无需处理。
- 读延迟>160ms的块,尤其>200ms时,要特别重视。
这些块,要么已经被Victoria应用程序标记为坏块,要么即使目前性能尚可,日后也极有可能发展为坏块。
- 导致上述高读延迟的原因,要么是因为目标扇区对应的盘片发生了物理损伤,导致磁性材料的磁性减弱引起高读延迟或读失败,要么是因为在日常读写时产生的软件层面的逻辑错误导致的高读延迟或读失败。
- 对于前者而言:
- 若坏块数量少,则可以通过重新映射的方式将坏块添加到硬盘的增长缺陷表(G-List)中以实现屏蔽。
- 若坏块数量多,甚至分布密集,则上述方法就不能使用了,只能通过划分隐藏分区的方式来屏蔽。
- 对于后者而言,属于软件层面的错误,可通过低级格式化等方式修复。
- 对于前者而言:
-
从示例日志中看,以下块位置均存在不同程度的异常,都需要逐一处理。
示例日志标注如下:Victoria 5.34 HDD/SSD | Device 2 log file. 9/6/2025 11:17:28 : Starting Victoria 5.34 HDD/SSD. 4xCPU, 1620.30 MHz, Windows 10 x64 found. 11:17:28 : [Hint] Recommend 32-bit Windows XP for a best work! 11:17:28 : Warning! Windows x64 detected! PIO mode supported on Windows x86 only. 11:17:31 : API access enabled, device #0 11:17:32 : ? F1 ????/?? 11:17:32 : ????????... OK 11:17:32 : ??: KBG30ZPZ128G TOSHIBA; ?? 250069680 LBAs 11:17:38 : ????????... OK 11:17:38 : ??: WDC WD10EZEX-08WN4A0; ?? 1953525168 LBAs; SN: WD-WX39AE7D9483; FW: 45.F8F.B 11:17:42 : Stopping USB/SAS drive... HD Spindle is stopped 11:17:48 : Recallibration... OK 11:17:51 : Get S.M.A.R.T. command... OK 11:17:51 : ????? 11:17:52 : SMART status = GOOD 11:18:00 : ????????... OK 11:18:00 : ??: WDC WD10EZEX-08WN4A0; ?? 1953525168 LBAs; SN: WD-WX39AE7D9483; FW: 45.F8F.B 11:20:44 : ????????... OK 11:20:44 : Recallibration... OK 11:20:44 : Starting Reading, LBA=0..1953525167, FULL, sequential access, timeout 10000ms# -------------------------- 开始扫描 --------------------------11:21:31 : Block start at 12341248 (6 GB) Read error: UNCR "Data error (cyclic redundancy check)" # 12341248 块存在异常,需修复。 11:21:33 : Warning! Block start at 12505088 (6 GB) = 1063 ms # 12505088 块存在异常,需修复。 11:27:07 : Block start at 100651008 (52 GB) Read error: UNCR "Data error (cyclic redundancy check)" # 100651008 块存在异常,需修复。 11:27:10 : Block start at 100814848 (52 GB) Read error: UNCR "Data error (cyclic redundancy check)" # 100814848 块存在异常,需修复。 11:27:12 : Block start at 100820992 (52 GB) Read error: UNCR "Data error (cyclic redundancy check)" # 100820992 块存在异常,需修复。 11:42:27 : Block start at 364105728 (186 GB) = 453 ms # 364105728 块存在异常,需修复。# -------------------------- 结束扫描 --------------------------1:23:18 : *** Scan results: Warnings - 2, errors - 4. Last block at 1953525167 (1.0 TB), time 2 hours 2 minutes 34 seconds. 1:23:18 : Speed: Maximum 163 MB/s. Average 81 MB/s. Minimum 0 MB/s. 828 points.
-
坏块的修复流程如下:
-
从日志文件中找到一个或一批形如Block start at XXX (XXX TB) = XXX ms的行,并记下块号。
-
块号分别加减10,0000(若从日志文件中找到单片存储空间中的一个行,则直接对此单一块号位置分别加减即可;若从日志文件中找到连续存储空间上的一批行,则要对这批行中首行的坏块位置减、末行的坏块位置加),以分别作为Victoria应用程序测试/维修窗口右侧扇区扫描开始块(LBA)和结束块(LBA)的值,勾选读取和忽略,其余设置不变,点击扫描按钮,以在小范围复扫。
- 对于从日志文件中找到单片存储空间上的一个行的情况:
- 鼠标移至网格图中有色块前30块左右的块位置,右键单击Set XXX as Start LBA项,以将其设为Victoria应用程序测试/维修窗口右侧扇区扫描开始块(LBA)的值。
- 鼠标移至网格图中有色块后30块左右的块位置,右键单击Set XXX as End LBA项,以将其设为Victoria应用程序测试/维修窗口右侧扇区扫描结束块(LBA)的值。
- 对于从日志文件中找到连续存储空间上的一批行的情况:
- 对这批行中首行的坏块位置减去10,0000,以将其设为Victoria应用程序测试/维修窗口右侧扇区扫描开始块(LBA)的值。
- 对这批行中末行的坏块位置加上10,0000,以将其设为Victoria应用程序测试/维修窗口右侧扇区扫描结束块(LBA)的值。
- 对于从日志文件中找到单片存储空间上的一个行的情况:
-
重点关注复扫结果网格图中标记的、除灰块外的所有有色块。这些块均是存在异常的块,需要视情况忽略或修复。
-
超时(毫秒)的值设为250,勾选读取和重新映射,其余设置不变,点击扫描按钮执行多次复扫,以将坏块扫描进硬盘内自带的增长缺陷表(G-List)中,直到网格图中所有的有色块不再新增时停止复扫。
注意事项:
对于异常块,重新映射后会在网格图中显示为带字的蓝色块(字可能是W、R或t),表示此块已被标记,待写入磁盘的增长缺陷表(G-List)中。 -
超时(毫秒)的值设为150,重复上一步操作,直到网格图中所有的有色块不再新增或全部变为灰块(这样是最好的情况,无需刷新了)时停止复扫。
-
超时(毫秒)的值设为100,勾选读取和刷新,其余设置不变,点击扫描按钮执行多次复扫,以不断地将坏块刷入硬盘内自带的增长缺陷表(G-List)中,直到网格图中所有的有色块消失、均变为灰块时停止复扫。
-
-
周而复始,按照先大范围扫描、再小范围多次复扫的方式,跳过正常块、精准定位异常块并进行修复,避免将大量时间都浪费在扫描正常块上。
-
全部修复完成后,最后整体执行一遍全盘扫描并查看S.M.A.R.T信息,看是否还存在坏块和警告信息,并视情况进行复修,直到全部正常为止。
-
下面就进行修复示例演示。
-
由于示例日志行中的第24、25行显示都在6GB容量范围内,在连续的存储空间上,那么就将12341248-10,0000的差12241248设为扇区扫描开始块(LBA)的值,将12505088+10,0000的和12605088设为扇区扫描结束块(LBA)的值,勾选读取和忽略,其余设置不变,点击扫描按钮,以在小范围复扫。
示例日志标注如下:11:21:31 : Block start at 12341248 (6 GB) Read error: UNCR "Data error (cyclic redundancy check)" # 12341248 块存在异常,需修复。 12341248-100000=1224124811:21:33 : Warning! Block start at 12505088 (6 GB) = 1063 ms # 12505088 块存在异常,需修复。 12505088+100000=12605088
示例如下:
-
执行多次复扫后,发现在块区内存在2个异常块,一个坏块,一个超高延迟块(延迟达1235毫秒),并且没再出现其他有色块,说明这一块区内只有这两处异常,修复完就可以。
示例扫描结果如下:
-
先将超时(毫秒)的值设为250,勾选读取和重新映射,其余设置不变,继续执行多次复扫,直到网格图中的所有有色块不再新增时停止复扫。
示例扫描结果如下:
由上可知:
执行多次复扫后,t字色块稳定显示在右上角那一块的位置,不再新增,可以停止复扫了。 -
再将超时(毫秒)的值设为150,其余设置不变,继续执行多次复扫,直到网格图中的所有有色块不再新增时停止复扫。
示例扫描结果如下:
由上可知:
执行多次复扫后,t字色块稳定显示在右上角那一块的位置,不再新增,可以停止复扫了。 -
将超时(毫秒)的值设为100,勾选读取和刷新,其余设置不变,继续执行多次复扫,直到网格图中的所有有色块全部消失,全为灰块时停止复扫。
示例扫描结果如下:
由上可知:
网格图中已全为灰块,再执行多次复扫也是如此,说明坏块修复成功。注意事项:
若多次刷新后仍有色块(如x字蓝块或t字蓝块),可以反复尝试勾选读取和擦除、读取和重新映射并执行多次复扫,看能否消除。
若还不奏效,可参考以下步骤修复坏块。- 打开DiskGenius应用程序。
- 在左侧树状磁盘列表中的目标磁盘上右击选择坏道检测与修复项。
示例如下:
- 在弹出的坏道检测与修复窗口中,扫描方式下拉框中选择扇区范围,并分别上刚才算好的扇区扫描开始块(LBA)和结束块(LBA)的值填入两个文本框中,点击开始检测按钮进行复扫。
示例如下:
若有异常块将会在网格图中显示,然后点击尝试修复按钮修复即可。
若初次扫描并修复后仍有异常块,则点击复位按钮后,反复执行上述操作,直到色块全部消失,全为绿色时,停止复扫,修复完成。 - 继续返回Victoria应用程序,重新勾选读取和忽略,最后执行几次复扫,若未出现有色块,则说明修复完成。
-
重复上述步骤,直到所有坏块都被修复后,最终执行一次全盘复扫,看是否还存在坏块。
同时再次查看硬盘的S.M.A.R.T信息,看是否还存在05、C4、C5等错误。