Ext4文件系统故障初检和分析:
服务器上Ext4文件系统umount失败,工作人员使用命令检查文件系统的一致性,结果导致Ext4文件系统mount不上(有时表现为目录变为文件)。日志和数据不一致导致文件系统数据被覆盖的情况在Ext3和Ext4文件系统中出现频繁,不过.journal日志文件留有缓冲数据,可以通过joumal日志文件找到相应信息并重建源文件。
安装Linux操作系统的硬盘的{BANNED}中国{BANNED}中国{BANNED}中国{BANNED}中国{BANNED}中国第一个扇区是MBR扇区,通过查看MBR分区表得知本案例环境中有2个分区:交换分区+Ext4文件系统分区。数据恢复工程师计划通过分析joumal日志文件来恢复丢失的数据。
本案例Ext4文件系统的相关信息:
1、块大小为4KB,即8个扇区。
2、超级块(Superblock)起始位置在1024字节处,即2号扇区,大小为2个扇区。
3、块组描述表从{BANNED}中国{BANNED}中国{BANNED}中国{BANNED}中国{BANNED}中国第一个块开始,即从4096字节处开始。
Ext4文件系统数据恢复过程:
1、将Ext4文件系统打开,可以看到0-23扇区的数据(包括超级块和块组描述符)被日志记录覆盖。Ext3、Ext4文件系统的日志页以C0 3B 39 98开头。
2、超级块中包含关于块大小的信息。从.journal日志中将超级块的备份查找出来,然后通过查找超级块信息,其标志是“53ef”。
超级块0x18-0x1B处描述块大小,确定本案例块大小为4KB。
3、重建(恢复)超级块;由于原文件系统超级块损坏,所以在恢复数据时要把这部分超级块信息粘贴回去,即放在2号扇区开始,或1024字节处。上述操作完成后,超级块备份某些地方与实际超级块数值可能不一致,需要通过数据恢复工具的模板管理器修改。本案例对超级块所在的块组作了修改,它在第0个块组里。
4、重建(恢复)块组描述表;由于部分块组描述表被破坏,所以在.journal日志文件里找到所有的块组描述表,并把它们粘贴回去。.journal日志文件里,块组描述符表存储在超级块的后面,所以找块组描述表之前可以先找到超级块。找到块组描述表后将块组描述符表内容粘贴到4096字节处。
5、根据所在块号,就可以定位kyproc目录相应节点的位置。由于人工补节点比较麻烦,可以打开.journal日志文件,从里面找到其节点信息,然后将相应的信息粘贴回去。通过上述方法可以重建(恢复)目录。恢复目录里的文件也是通过同样的方法,从.journal日志文件里找到相应的文件的节点信息,找到后粘贴回原来的位置即可。