从故障驱动器中抢救数据

从故障驱动器中抢救数据

我在 NW 上有一个 6TB WD My Cloud,里面装满了数据,我刚刚得到了一个 12TB WD My Book,将其插入 Rpi4,并开始将数据移至 12TB 驱动器,计划仅使用 6TB 进行备份。

通过 rsync 复制数据时,我发现 rsync 卡在单个文件上。检查日志后,我发现旧的 6TB 驱动器出现了一些问题。在遇到问题之前,我能够从该驱动器复制相当大的数据块(1.1TB),因此我认为我们正在讨论坏扇区,而不是整个驱动器立即死亡。我没有对数据进行任何一致性检查,但这不是业务关键型。我有重要数据的备份,但我想尽可能恢复。 6TB 驱动器目前已拔出,直到我弄清楚接下来的步骤。

我看到了一些可以继续前进的方法:

  1. 只是尝试尽可能多地复制到 12TB 驱动器,让 rsync 跳过它无法复制的文件。
  2. 尝试通过 ddrescue 创建 6TB 驱动器的备份映像到 12TB(可能是最长的过程)
  3. 尝试识别哪些文件已损坏,并确定漫长的 ddrescue 过程是否值得(在这里找到了一些信息,但这似乎是一个极其乏味的过程https://wiki.archlinux.org/index.php/Identify_damaging_files#Ext2,_ext3,_and_ext4

现在我的问题是:

  1. rsync 实际上并没有抛出任何错误,它只是卡在单个文件上,我不确定 rsync 是否有办法跳过这些文件。
  2. 如果我通过 ddrescue 创建映像,我必须将 6TB 映像放在 12TB 驱动器上,然后尝试将尽可能多的内容恢复到同一驱动器上。我不确定这有多可行。我假设 ddrescue 图像创建需要永远,但是我应该能够以正常速度将文件从安装的映像复制到同一驱动器
  3. 是否有任何工具可以尝试读取所有文件并列出无法完整读取的文件?对我来说,这听起来是最节省时间的方法。

我的 6TB 硬盘的一些日志供参考:

WDMyCloud6TB:/shares/Public# smartctl -l selftest /dev/sda4 
smartctl 5.41 2011-06-09 r3365 [armv7l-linux-3.2.26] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed: read failure       90%     28014         2321175776
# 2  Extended offline    Completed: read failure       90%     28013         2321175776
# 3  Short offline       Completed: read failure       90%     28011         2321175776
# 4  Short offline       Completed: read failure       90%     28011         2321175776
# 5  Short offline       Completed without error       00%         0         -
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAGS    VALUE WORST THRESH FAIL RAW_VALUE
  1 Raw_Read_Error_Rate     POSR-K   188   188   051    -    444
  3 Spin_Up_Time            POS--K   189   188   021    -    9516
  4 Start_Stop_Count        -O--CK   073   073   000    -    27858
  5 Reallocated_Sector_Ct   PO--CK   200   200   140    -    0
  7 Seek_Error_Rate         -OSR-K   100   253   000    -    0
  9 Power_On_Hours          -O--CK   062   062   000    -    28014
 10 Spin_Retry_Count        -O--CK   100   100   000    -    0
 11 Calibration_Retry_Count -O--CK   100   253   000    -    0
 12 Power_Cycle_Count       -O--CK   100   100   000    -    31
192 Power-Off_Retract_Count -O--CK   200   200   000    -    17
193 Load_Cycle_Count        -O--CK   191   191   000    -    27882
194 Temperature_Celsius     -O---K   098   094   000    -    54
196 Reallocated_Event_Count -O--CK   200   200   000    -    0
197 Current_Pending_Sector  -O--CK   200   200   000    -    1
198 Offline_Uncorrectable   ----CK   100   253   000    -    0
199 UDMA_CRC_Error_Count    -O--CK   200   200   000    -    0
200 Multi_Zone_Error_Rate   ---R--   100   253   000    -    0
WDMyCloud6TB:~# sudo fsck -v /dev/sda4
fsck from util-linux 2.20.1
e2fsck 1.42.5 (29-Jul-2012)
/dev/sda4: clean, 128425/182996992 files, 1254382471/1463951872 blocks

WDMyCloud6TB:~# e2fsck -nv -b 32768 /dev/sda4
e2fsck 1.42.5 (29-Jul-2012)
/dev/sda4 was not cleanly unmounted, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Killed

相关内容