服务器数据恢复环境:
Linux零碎,Ext4文件系统;
划分为2个分区:1个替换分区和1个文件系统分区。
在剖析理论案例之前,咱们先理解一下Ext4的相干常识。
Ext4文件系统的全副空间被划分为若干个块组,每个块组内的构造大致相同。
每个块组都对应一个块组描述符,这些块组描述符都放在文件系统的前部,称为块组描述符表。每个块组描述符大小为32字节,形容了块位图、i-节点位图及i-节点表的地址等信息。
超级块(Superblock)是用来存储文件系统的配置参数(如块大小、总块数、i-节点数)和动静信息(以后闲暇块数和i-节点数)。Ext4文件系统的超级块(Superblock)开始于1024字节处,即2号扇区。
i节点形容文件的工夫信息、大小、块指针等信息。
块组描述符和超级块在块中的地位:当块大小为2个扇区时,0号块是疏导程序或者保留块,超级块起始于1号块。当块大小为4个扇区时,疏导程序或者保留块位于0号块的前两个扇区,超级块位于0号块的后两个扇区。当块大小为8个扇区时,疏导程序或者保留块位于0号块的0-1号扇区,超级块位于0号块的2-3号扇区。
Ext4文件系统的整体构造及第一个块组的具体构造如下图所示:
服务器故障&剖析:
某公司Ext4文件系统umount失败,管理员执行fsck查看一致性,后果Ext4文件mount不上(有时也体现为目录变成了文件),报错信息:mount: wrong fs type, bad option,bad superblock。
因为日志和数据不统一而导致失常文件系统数据被笼罩的状况在Ext3、Ext4文件系统中产生的频率较高。因为journal日志文件保留着缓冲数据,数据恢复时能够通过joumal日志文件找到相干信息并重建源文件。
装置Linux零碎的硬盘第一个扇区是MBR扇区,通过观察MBR分区表得悉本案例中Linux零碎分为两个分区:替换分区和文件系统分区。北亚数据恢复工程师决定通过joumal日志文件找回失落的数据。
通过数据恢复工程师的检测剖析,本案例Ext4文件系统相干信息如下:
1、块大小为固定的4KB,即8个扇区。
2、超级块(Superblock)起始地位在1024字节处,即2号扇区,大小为2个扇区。
3、块组形容表从第一个块开始,即从4096字节处开始。
服务器数据恢复过程:
1、首先用数据恢复工具将Ext4文件系统关上,发现0-23扇区的数据(包含超级块和块组描述符)被日志记录所笼罩。Ext3、Ext4文件系统的日志页以C0 3B 39 98结尾。
超级块中能够找到对于块大小的信息。从journal日志中把超级块的备份查找进去,而后再通过数据恢复工具进行超级块信息的查找,其标记是“53ef”。超级块0x18-0x1B处形容块大小,本案例块大小为4KB。
通过超级块查看块大小。
通过数据恢复软件的模板编辑器也能够显示块大小。
2、重建(复原)超级块;因为原文件系统超级块损坏,所以复原文件时要把这部分超级块信息粘贴回去,即放在2号扇区开始或1024字节处。超级块备份的某些局部的数值可能与理论的超级块数值不统一,这种状况下须要通过数据恢复工具的模板管理器进行批改。本案例对超级块所在的第0个块组做了批改。
3、重建(复原)块组形容表;因为局部块组形容表被毁坏,所以须要先在journal日志文件里找到所有块组形容表并把它们粘贴回去。本案例中journal日志文件里的块组描述符表存储在超级块的前面,要找块组形容表能够先找超级块,找到后将块组描述符表内容粘贴到4096字节处。
4、重建(复原)目录;当要复原某个文件夹里的文件时,比方kyproc文件夹里的数据,这些文件夹在WinHex里是不能关上的状态,这意味着这个目录曾经损坏(下图1)。关上其节点信息,发现失常数据被日志填充(下图2)。
找到上一级目录var文件夹,右击点“open”,关上后能看到var文件夹里的所有文件的目录信息。找到要复原的kyproc目录的信息:12 32 EE 00是其i-节点号,10 00示意其目录项长度,06示意其文件名称长度,02示意其文件类型为目录。如下图所示。
在var文件夹的目录块下查找kyproc目录的地位,如下图所示,标红的地位是找到的后果。此地位显示所在块号为62399108。
依据所在块号能够定位kyproc目录相应节点的地位。因为人工补节点比拟繁琐,能够从journal日志文件外面找到其节点信息,把相应的信息粘贴回去。
通过上述办法能够重建(复原)目录。复原目录里的文件也是通过同样的办法从journal日志文件里找到相应的文件的节点信息,找到后粘贴回原来的地位,达到重建(复原)文件的目标。
5、通过数据恢复工程师的致力,终于把用户须要的数据都复原进去,通过数据恢复工程师和用户的核检没有发现问题。本次数据恢复工作实现。