如何备份数据来避免坏道?

如何备份数据来避免坏道?

我使用 Windows。一年前,我D:使用以下方法备份了我的磁盘(500 GB)Macrium 反射(它以自己的格式存储文件mrimg,类似于驱动图像XML存储 . xml) 到外部硬盘。我不记得我是否选择了压缩。一年后,当我想打开该备份时,它无法工作,因为该硬盘上的某些扇区(该图像后面)已损坏。因此,整个备份文件变得不可读。

我不想再发生这种事了。有没有其他办法复制粘贴(似乎是最好的方法,但需要大约 5 个小时)备份整个D磁盘,以便即使任何一个行业变得不好在那个外部硬盘上,我仍然可以访问备份中的所有可用数据,而且不会使映像无法读取?似乎映像备份(结果为 1 个文件)不安全,万一它变成无法读取的文件呢?

答案1

监控硬盘是最好的选择。

您可以从 SMART 监控开始。SMART 代表自我监控和修复工具。特别是具有高 ECC(错误纠正码)的磁盘应该被替换,因为那些薄弱的扇区最终会失效。

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   114   100   006    Pre-fail  Always       -       61609160
  3 Spin_Up_Time            0x0003   093   092   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       195
  5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   085   060   030    Pre-fail  Always       -       4648073590
  9 Power_On_Hours          0x0032   077   077   000    Old_age   Always       -       20551
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       32
183 Runtime_Bad_Block       0x0032   100   100   000    Old_age   Always       -       0
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   099   000    Old_age   Always       -       6 6 12
189 High_Fly_Writes         0x003a   061   061   000    Old_age   Always       -       39
190 Airflow_Temperature_Cel 0x0022   061   045   045    Old_age   Always   In_the_past 39 (Min/Max 33/55)
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       0
193 Load_Cycle_Count        0x0032   039   039   000    Old_age   Always       -       122569
194 Temperature_Celsius     0x0022   039   055   000    Old_age   Always       -       39 (0 21 0 0 0)
195 Hardware_ECC_Recovered  0x001a   114   100   000    Old_age   Always       -       61609160
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      -       9421h+55m+42.115s
241 Total_LBAs_Written      0x0000   100   253   000    Old_age   Offline      -       36542577472
242 Total_LBAs_Read         0x0000   100   253   000    Old_age   Offline      -       2583422390857

注意: 195 Hardware_ECC_Recovered,此处驱动器读取扇区时,ECC 数据告诉它该扇区有误,然后驱动器将其恢复。还请注意 Raw_read_Error_Rate 和 Seek_Error_Rate。通常,重要的不是有多少,而是数字增加的速度。但是,在坏驱动器上,这些数字很容易达到数百万甚至数十亿。如果您的驱动器达到如此高的值,请更换它。每次必须进行 ECC 恢复时,驱动器读取速度都会减慢,当您有数百万个时,驱动器将真正开始滞后。

引自硬盘 ECC 错误! - Memofix 的数据恢复博客

当硬盘读取一个扇区的数据时,它还会读取位于实际数据之后的 50 字节 ECC 代码。当数据首次写入扇区时,它会对 512 字节的扇区数据运行复杂的算法,从而产生唯一的 ECC 代码,只有通过读取完全相同的数据才能复制该代码。当稍后读取扇区时,驱动器会尝试通过对数据运行相同的算法并将其与之前存储的 ECC 代码进行比较来验证数据。如果代码不匹配,磁盘驱动器会生成错误代码并阻止数据传输。硬盘通常会尝试重新读取数据多达 10 次,因为它试图匹配 ECC 代码,而这个过程会大大降低驱动器的速度。

ECC 是一个复杂的数学公式,可以检测和纠正坏扇区。

刷新表面是指以小块扇区的形式读取驱动器,并用相同的内容重写这些块,以验证它们是否正常。一些软件添加了额外的技巧,例如反转所有数据,写入驱动器重新读取然后再次反转,以确保所有扇区都正常工作。

每隔几个月用 grc.com 上的 SpinRite 之类的东西刷新表面。

一个名为“维多利亚”的程序http://hdd.by会为您提供磁盘表面的计时。读取时间较长的扇区越多,情况就越糟糕。

维多利亚
上图:您可以看到驱动器老化的明显迹象,因为有太多绿色块;全新的驱动器几乎完全位于最浅的灰色区域,而 100 个区域(中灰色)中则有几百个。

最后,奇偶校验文件。 http://www.quickpar.org.uk/。这将生成修复文件,使您可以修复给定文件中的坏扇区。奇偶校验数据的百分比越高,它可以修复的错误就越严重。但是,处理几百个坏扇区不需要太多数据。我不知道确切的比例,但这里的其他人可能知道。

选项屏幕

在这里添加要保护的文件,设置保护级别(2% 应该足够了),然后单击创造
主程序

以下是生成的 PAR 文件,总计约 75 MB:
生成的文件

这里我故意毁掉了 10000 个扇区(count=10000),  bs块大小为 512。

dd conv=notrunc if=/dev/zero of="Windows 10 64  16299.15.iso" bs=512 count=10000 seek=1

仅 2% 的 PAR 数据就能够恢复至少 10,000 个坏块(每个块 512 字节)。

什么是奇偶校验数据?

本文对此进行了简要介绍:

https://www.dataclinic.co.uk/raid-parity-xor/

这也是非常聪明的人为纠正错误而开发的一种公式。奇偶校验程序运行时会生成这些额外的恢复位。它基于 XOR。

我附上了一些 QuickPAR 的屏幕截图,但 WinRAR 也有此功能。请参见此处:
WinRAR – 将文件添加到存档
在“选项”下,您可以设置恢复数据的百分比;2% 应该足以防止出现坏扇区。如果有 10,000 个坏扇区,您需要尽快更换硬盘。

RAID 5/6 必须防止一两个整个磁盘发生故障,因此这个百分比要高出几个数量级。

答案2

没有什么可以防止磁盘损坏。我能想到的唯一保护措施是:

  • 使用慢速(而非快速)格式格式化目标磁盘以刷新所有扇区
  • 验证目标磁盘的 SMART 数据是否存在弱点
  • 进行多次备份

相关内容