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 日志文件里找到相应的文件的节点信息,找到后粘贴回原来的地位,达到重建文件的目标。