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文件系统故障&初检&剖析:
某公司服务器Ext4文件系统umount失败,管理员执行fsck操作查看一致性,导致Ext4文件系统mount不上并报错,报错信息:“mount:wrong fs type,bad option,bad superblock”。
日志和数据的不统一导致失常文件系统数据被笼罩的状况在Ext3、Ext4文件系统中产生频率较高。因为.journal日志文件保留了缓冲数据,能够通过.joumal日志文件找到相应信息并重建源文件。
通过查看MBR分区表得悉本案例中的Linux操作系统分了两个分区:替换分区+Ext4文件系统。北亚企安数据恢复工程师通过对该Ext4文件系统的剖析,失去以下信息:
1、块大小为固定的4KB,即8个扇区。
2、超级块(Superblock)起始地位在1024字节处,即2号扇区,大小为2个扇区。
3、块组形容表从第一个块开始,即从4096字节处开始。
服务器数据恢复过程:
1、将故障服务器上硬盘取出,检测后没有发现硬件故障。以只读形式将磁盘做全盘镜像,镜像实现后依照原样将磁盘还原到原服务器中。后续的数据分析和数据恢复操作都基于镜像文件进行,防止对原始磁盘数据造成二次毁坏。
2、用工具关上Ext4文件系统,能够看到0-23扇区的数据(包含超级块和块组描述符)被日志记录笼罩。Ext3、Ext4文件系统的日志页以C0 3B 39 98结尾。
在journal日志中将超级块的备份查找进去,通过工具查找超级块信息,其标记是“53ef”。超级块0x18-0x1B处形容块大小,确定本案例块大小为4KB。
查找超级块:
通过超级块查看块大小:
块大小:
3、因为原文件系统超级块损坏,所以复原文件时,要把这部分超级块信息粘贴回去,放在2号扇区开始,或1024字节处。做完以上操作,超级块备份某些中央与理论的超级块数值可能不统一,须要通过工具进行批改。对超级块所在的块组进行了批改,超级块在第0个块组里。
4、因为局部块组形容表被毁坏,所以须要在.journal日志文件里找到所有的块组形容表并把它们粘贴回去。.journal日志文件里的块组描述符表存储在超级块的前面,要找块组形容表能够先找到超级块,找到后将块组描述符表内容粘贴到4096字节处。
5、复原某个文件夹比方kyproc文件夹里的数据时,咱们发现这些文件夹在WinHex里是不能关上的状态(如下图1所示),很显著这个目录损坏了。关上其节点信息,发现失常数据被日志填充(如下图2所示)。
找到它的上一级目录,即var文件夹。右击点“open”,关上看到var文件里的所有文件的目录信息。找到要复原的kyproc目录的信息,12 32 EE 00是其i-节点号,10 00示意其目录项长度,06示意其文件名称长度,02示意其文件类型为目录(如下图所示)。
在var文件夹的目录块下查找kyproc目录的地位(如下图所示),标红的地位是找到的后果。此地位显示所在块号为62399108。
依据所在块号能够定位kyproc目录相应节点的地位。关上.journal日志文件,从外面找到其节点信息,把相应的信息粘贴回去。
6、通过上述办法重建目录后开始重建目录里的文件。重建目录里的文件也是应用同样的办法:从.journal日志文件里找到相应的文件的节点信息,找到后粘贴回原来的地位,达到重建文件的目标。