实用技巧:恢复RAID5故障后丢失的数据
很多企业的网管都认为 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工具栏的中的“克隆磁盘”并勾选“复制整个磁盘”
用winhex打开这三个文件并且对每个文件进行“解释映象文件为磁盘的操作”。这样映像文件就变成磁盘了!
第二步:搜索DBR扇区
下面我们进行参数分析,首先我们需要找到DBR扇区,这里介绍一下,DBR扇区对于多个磁盘的系统来说非常重要,本身保存了很多重要的数据。但我们需要用到的只有2个。参考下面的公式结果。硬RAID5的起始扇区总是 0号扇区,我们从0号扇区开始找阵列的DBR扇区。
搜索操作:用winhex的搜索菜单,选择“查找16进制值”,在搜索框中按下图示信息填写参数。DBR扇区的位置是很靠前的,所以在一个盘上搜一会如果没有就到其它盘上找。
这样我们搜索到1.dsk的31扇区是DBR。
第三步:根据DBR参数判断文件记录和校验块
从上图我们看到DBR模板会显示各种DBR参数,要用到其中两个数值:
(786432*8)/(2)+31=3145759号扇区
但是我们需要注意,此扇区是“源文件的文件记录”,而我们需要找到的是“用户文件的文件记录”。
下面我们继续找用户文件的文件记录
发现 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。
第四步:确定所有磁盘的首个校验块
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块走向
如果阵列上存有数据,假设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。
数据块走向的判断,如下图:
带颜色的是校验块。因为每块扇区数是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 编辑 ] 先占个位置,有时间好好看看,楼主如果能把每个镜像,做为附件(每个5M),大家边看边实践不是更好
[ 本帖最后由 lughon 于 2008-9-19 17:22 编辑 ] 很精典,方法也很好,学习了 win2000的raid5和这个做法一样吗 好文!!!!!! 说得非常好,精彩,谢谢了,希望有更多好东东来大家分享!!! 非常好,支持! 慢慢理解 收藏了 感谢 这种东西才叫好。难得呀,领了。 真正的好文
谢谢