Ext4文件系统没有卸载,然后进行fsck *** 作检查一致性,导致Ext4文件无法挂载(有时目录变成了文件)。
错误消息:装载:错误的文件系统类型,错误的选项,错误的超级块
2.故障原理分析当故障发生时,由于日志和数据之间的不一致,正常的文件系统数据被覆盖。这种故障经常发生在Ext3和Ext4文件系统中。幸运的是。日志文件有一个缓冲区。恢复时,您可以从。日志文件,并将其粘贴回相应的位置,以达到重建原始文件的目的。
3.案例重要信息Linux系统硬盘的第一个扇区就是MBR扇区。从MBR分区表可以看出,在这种情况下有两个分区。第一个分区是交换分区,共7.8G,第二个分区是Ext4文件系统,共292G。的总尺寸是300克。
3.Ext34文件系统具有日志功能。在这种情况下,我们考虑从。日志文件。
1.块大小固定为4KB,即8个扇区。
2.超级块起始于1024字节,即扇区2,大小为2个扇区。
3.块组描述表从第一块开始,即从4096字节开始。
4.案例重要概念超级块:用于存储文件系统的配置参数(如块大小、总块数、I节点数)和动态信息(当前空空闲块数、I节点数)。Ext4文件系统的超级块从1024字节开始,也就是扇区2。
block:ext4文件系统的整体空分为若干个块组,每个块组中的结构大致相同。
块描述符表:每个块组对应一个块组描述符。这些块组描述符统一放在文件系统的前端,称为块组描述符表。每个块组描述符大小为32字节,主要描述块位图、I节点位图、I节点表地址等信息。
Node:描述文件的时间信息、大小、块指针等信息。
组描述符和超级块在块中的位置:当块大小为2扇区时,块0为引导程序或保留块,超级块从块1开始。当块大小为4个扇区时,引导程序或保留块位于块0的前两个扇区,超级块位于块0的后两个扇区。当块大小为8个扇区时,引导程序或保留块位于块0的扇区0-1,超级块位于块0的扇区2-3。
Ext4文件系统的整体结构和第一块组的具体结构如图1所示。
5.解决步骤步骤摘要:
1.通过超级块备份在。日志文件,并确定块大小。
2.通过超级块备份在。日志文件并重建超级块信息。
3.通过查找目录节点。日志文件并重建(恢复)目录。
4.通过查找目录节点。日志文件,以查找要还原的文件的节点信息,并重建(还原)该文件。
首先用WinHex打开Ext4文件系统,可以看到0-23扇区的数据(包括超级块和块组描述符)被日志记录覆盖。3.Ext3文件系统的日志页从C03B3998开始。如图2所示。
图2
图3
按超级块检查块大小,如图4所示。
图4
或者WinHex模板编辑器也可以显示块大小,如图5所示。
图5
2.重建(恢复)超级块
因为原文件系统的超级块损坏,在恢复文件的时候,把这个超级块信息贴回去,也就是放在扇区2的开头,或者1024字节。
以上 *** 作后,超级块备份的某些部分可能与实际超级块值不一致,需要通过WinHex的模板管理器进行修改。这种情况下,超级块所在的块组已经被修改,在第0块组。如图6所示。
图6
3.重建(恢复)块组描述表
由于一些块组描述表已损坏,请在中查找所有块组描述表。日志文件并将它们粘贴回去。
在日志文件中,如图1所示,块组描述符表存储在超级块的后面。所以当你想找块组描述表的时候,可以先找超级块。找到后,将块组描述符表的内容粘贴到4096字节。
4.重建(恢复)目录
例如,当我们想要恢复某个文件夹中的文件时,我们需要恢复kyproc文件夹中的数据。我们发现这些文件夹无法在WinHex中打开。如图7所示。显然,该目录已损坏。打开它的节点信息,发现正常数据被日志填充,如图8所示。
图7
图8
我们找到了它的上层目录,即var文件夹。右键“打开”打开var文件中所有文件的目录信息。找到要恢复的kyproc目录的信息。1232EE00是它的I节点号,1000是它的目录项长度,06是它的文件名长度,02是它作为目录的文件类型。如图9所示。
图9
然后在var文件夹的目录块下查找kyproc目录的位置,如图10所示。红色标记的位置就是结果。这个位置显示街区号是62399108。
图10
根据块号,可以定位到kyproc目录对应的节点。因为手动填充节点很繁琐,所以我们可以打开。日志文件,从中找到它的节点信息,并将相应的信息粘贴回去。
上面的方法可以重建(恢复)目录,被恢复目录中的文件也从。日志文件,并将其粘贴回原来的位置,以达到重建(恢复)文件的目的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)