[分享] 实用技巧:恢复RAID5故障后丢失的数据

  [复制链接]

该用户从未签到

472

主题

532

回帖

1万

积分

[INTOHARD]旅长

Rank: 9Rank: 9Rank: 9

积分
16542
发表于 2008-9-19 16:13:19 | 显示全部楼层 |阅读模式
很多企业的网管都认为 RAID5很少出故障,即使出了故障,RAID5本身也有强大的容错能力,因此往往不太重视数据备份。这就造成了RAID出现故障时就是大灾难。要知道天有不测风云,人有旦夕祸福,那么,在没有备份的情况下,如果RAID5出现故障,我们该如何恢复数据呢?本文将通过一个实例来讲解,如何恢复RAID5故障后丢失的数据。
许咏利  2008-09-09

RAID5发生故障的原因可能有很多种,或者是RAID控制器故障,或者是突然断电导致的RAID信息出错,也有可能RAID5的一块硬盘出错,没及时更换,等到第二块硬盘出错时,造成RAID5失效。第一种情况,RAID5发生硬件故障,那么本文也无能为力,但是后两种情况,只要掌握了方法,操作得当,数据还是能被找回来的。

本文案例中的RAID5是由RAID卡/芯片生成的(硬RAID5)并且文件系统是NTFS。在讲述具体案例前,我们先介绍一下RAID5有五个关键参数:阵列起始扇区、每块扇区数、盘序、校验(用P代表)块走向、数据块走向!如果这五个参数计算正确,就可成功恢复数据。

扇区编号一律从“0”开始。

空扇区:512个字节全是00的扇区!

平行扇区:一个RAID5由若干块硬盘组成,不同硬盘上的同一编号的扇区之间互成“平行扇区”。平行扇区的扇区编号相同,只是在不同的硬盘上!在一组平行扇区中,总有一个也只有一个扇区是P扇区!

好了,了解以上的背景知识后,我们就可以来看看恢复数据的具体操作了。

第一步:对单个磁盘做全盘备份

本案例中RAID5共计3块硬盘。在恢复数据之前,我们先开始准备工作。

准备工作:对每块硬盘做“全盘备份”,并且使每个硬盘的“全盘备份”都成为一个单独的文件(通常是img/dsk文件,如1.img,2.img,3.img。这里的1,2,3只是编号而已,与盘序无关!)

操作提示:点击winhex工具栏的中的“克隆磁盘”并勾选“复制整个磁盘”

1.jpg

用winhex打开这三个文件并且对每个文件进行“解释映象文件为磁盘的操作”。这样映像文件就变成磁盘了!

第二步:搜索DBR扇区

下面我们进行参数分析,首先我们需要找到DBR扇区,这里介绍一下,DBR扇区对于多个磁盘的系统来说非常重要,本身保存了很多重要的数据。但我们需要用到的只有2个。参考下面的公式结果。硬RAID5的起始扇区总是 0号扇区,我们从0号扇区开始找阵列的DBR扇区。

搜索操作:用winhex的搜索菜单,选择“查找16进制值”,在搜索框中按下图示信息填写参数。DBR扇区的位置是很靠前的,所以在一个盘上搜一会如果没有就到其它盘上找。

2.jpg

3.jpg
这样我们搜索到1.dsk的31扇区是DBR。

第三步:根据DBR参数判断文件记录和校验块

4.jpg

从上图我们看到DBR模板会显示各种DBR参数,要用到其中两个数值:
(786432*8)/(2)+31=3145759号扇区

但是我们需要注意,此扇区是“源文件的文件记录”,而我们需要找到的是“用户文件的文件记录”。

下面我们继续找用户文件的文件记录

5.jpg

发现 3.img和1.img的3145793扇区都是用户文件的文件记录。而 2.img的3145793扇区就可确定为P扇区,用“46 49 4C 45”来向下找文件记录。发现2.img的3145825号扇区是文件记录,并且是一个数据块的开头扇区(它之前的若干扇区都是P扇区)!3145825-3145793=32。

3.img的3145825扇区是P扇区,并且是一个P块的开头扇区。(平行着看)用“46 49 4C 45”来向下找文件记录,发现3.img的3145857是文件记录并且是一个数据块的开头扇区。3145857-3145825=32,所以,每块扇区数=32。

第四步:确定所有磁盘的首个校验块

6.jpg

7.jpg

dsk的3145857号扇区是P扇区。

3145793MOD 96=65 ,65号扇区隶属于2.img上的首个P块,所以2.img上的首个P块是第三个块;

3145825 MOD 96=1,1号扇区隶属于3.img上的首个P块,3.img的首个P块是第一个块;

3145857MOD 96=33,33号扇区隶属于1.dsk上的首个P块,所以1.img上的首个P块第二个块。

以上三条是“各个硬盘上首个P块的位置”

第五步:判断P块走向

8.jpg

如果阵列上存有数据,假设D1是首个数据块,那么它的首个扇区就应该是阵列的起始扇区,也是所在硬盘的0号扇区。内容是MBR、EBR、DBR三者中的一种。

下面我们需要先假设一种“P块走向”,先假定“P块走向”是 1、2、3,因为1.dsk的首个P块第二个块,所以 1.dsk就是第二块盘,根据P块走向图,1.dsk的0扇区应该是阵列的起始扇区,内容应该是EBR,但实际上却是空扇区。所以我们可以否定 1,2,3的P 块顺序了。
.
确定P块走向为3,2,1,再结合已知的“各个硬盘上首个P块的位置”得出正确的盘序:第一块是2.img,第二块是1.img,第三块是3.img。

数据块走向的判断,如下图:

9.jpg

带颜色的是校验块。因为每块扇区数是32(编号0~31)。2号块总是第二块盘(1.img)的首个块。3号块不论在哪个硬盘上,都是第二个块!

2号块最后扇区(31号扇区)和3号块首个扇区(32号扇区)在内容肯定是是紧密相连的。关键是看3号块在哪个盘。如果在第一块硬盘,那就是连续;如果是第三块硬盘,那就是标准。

2号块最后扇区内容是DBR(EB5290) 即 1.img的31号扇区(如下图)。如果不是在RAID中,则1.img的32号扇区就应该是“NTLDR”

后续下文: <RAID5数据恢复后记-剔除无效映像及使用工具>

[ 本帖最后由 csdn 于 2008-9-19 16:19 编辑 ]

该用户从未签到

46

主题

533

回帖

2126

积分

[INTOHARD]营长

Rank: 6Rank: 6

积分
2126
QQ
发表于 2008-9-19 17:21:07 | 显示全部楼层
先占个位置,有时间好好看看,楼主如果能把每个镜像,做为附件(每个5M),大家边看边实践不是更好

[ 本帖最后由 lughon 于 2008-9-19 17:22 编辑 ]

该用户从未签到

46

主题

533

回帖

2126

积分

[INTOHARD]营长

Rank: 6Rank: 6

积分
2126
QQ
发表于 2008-9-19 21:55:44 | 显示全部楼层
很精典,方法也很好,学习了
  • TA的每日心情
    开心
    2012-8-14 17:23
  • 签到天数: 12 天

    [LV.3]八品县丞

    56

    主题

    1388

    回帖

    1637

    积分

    [INTOHARD]营长

    Rank: 6Rank: 6

    积分
    1637
    发表于 2008-9-19 22:18:50 | 显示全部楼层
    win2000的raid5和这个做法一样吗
  • TA的每日心情
    开心
    2012-7-26 00:26
  • 签到天数: 2 天

    [LV.1]布衣百姓

    12

    主题

    290

    回帖

    7076

    积分

    [INTOHARD]团长

    古典音乐

    Rank: 8Rank: 8

    积分
    7076
    发表于 2008-9-20 01:18:05 | 显示全部楼层
    好文!!!!!!

    该用户从未签到

    132

    主题

    1250

    回帖

    5851

    积分

    [INTOHARD]团长

    Rank: 8Rank: 8

    积分
    5851
    发表于 2008-9-20 07:10:44 | 显示全部楼层
    说得非常好,精彩,谢谢了,希望有更多好东东来大家分享!!!

    该用户从未签到

    10

    主题

    99

    回帖

    2588

    积分

    [INTOHARD]工兵

    Rank: 1

    积分
    2588
    发表于 2008-9-20 09:42:31 | 显示全部楼层
    [s:18] 非常好,支持![s:18]

    该用户从未签到

    7

    主题

    357

    回帖

    3857

    积分

    [INTOHARD]团长

    Rank: 8Rank: 8

    积分
    3857
    发表于 2008-9-20 10:36:54 | 显示全部楼层
    慢慢理解 收藏了 感谢

    该用户从未签到

    3

    主题

    32

    回帖

    38

    积分

    [INTOHARD]工兵

    Rank: 1

    积分
    38
    发表于 2008-9-20 22:31:58 | 显示全部楼层
    这种东西才叫好。难得呀,领了。

    该用户从未签到

    2

    主题

    57

    回帖

    75

    积分

    [INTOHARD]班长

    Rank: 2

    积分
    75
    发表于 2008-9-22 15:14:58 | 显示全部楼层
    真正的好文
    谢谢
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表