0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【服务器数据恢复】Linux Ext4文件系统执行fsck检查一致性后文件挂载报错的数据恢复案例

Frombyte 来源:Frombyte 作者:Frombyte 2022-10-21 14:11 次阅读

服务器数据恢复环境:

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文件系统的整体结构及第一个块组的具体结构如下图所示:

pYYBAGNSNzqAU2nXAAEm0EIImZA324.png

北亚数据恢复——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开头。

pYYBAGNSN0WAXVA7AAILaPxQPHk007.png

北亚数据恢复——Ext4文件系统数据恢复

超级块中可以找到关于块大小的信息。从journal日志中把超级块的备份查找出来,然后再通过数据恢复工具进行超级块信息的查找,其标志是“53ef”。超级块0x18-0x1B处描述块大小,本案例块大小为4KB。

poYBAGNSN0yAPuagAAOP2HRmpK8266.png

北亚数据恢复——Ext4文件系统数据恢复

通过超级块查看块大小。

pYYBAGNSN1OAU5tnAAKQn9LY-UI346.png

北亚数据恢复——Ext4文件系统数据恢复

通过数据恢复软件的模板编辑器也可以显示块大小。

pYYBAGNSN1iAOeAPAAJ-Gs-RoJY400.png

北亚数据恢复——Ext4文件系统数据恢复

2、重建(恢复)超级块;由于原文件系统超级块损坏,所以恢复文件时要把这部分超级块信息粘贴回去,即放在2号扇区开始或1024字节处。超级块备份的某些部分的数值可能与实际的超级块数值不一致,这种情况下需要通过数据恢复工具的模板管理器进行修改。本案例对超级块所在的第0个块组做了修改。

pYYBAGNSN12Aa-5GAAModKHgGMo455.png

北亚数据恢复——Ext4文件系统数据恢复

3、重建(恢复)块组描述表;由于部分块组描述表被破坏,所以需要先在journal日志文件里找到所有块组描述表并把它们粘贴回去。本案例中journal日志文件里的块组描述符表存储在超级块的后面,要找块组描述表可以先找超级块,找到后将块组描述符表内容粘贴到4096字节处。

4、重建(恢复)目录;当要恢复某个文件夹里的文件时,比如kyproc文件夹里的数据,这些文件夹在WinHex里是不能打开的状态,这意味着这个目录已经损坏(下图1)。打开其节点信息,发现正常数据被日志填充(下图2)。

poYBAGNSN2WAHiggAAIKHVH8Vx0023.png

北亚数据恢复——Ext4文件系统数据恢复

poYBAGNSN22APq6dAAJf-vmwbGs449.png

北亚数据恢复——Ext4文件系统数据恢复

找到上一级目录var文件夹,右击点“open”,打开后能看到var文件夹里的所有文件的目录信息。找到要恢复的kyproc目录的信息:12 32 EE 00是其i-节点号,10 00表示其目录项长度,06表示其文件名称长度,02表示其文件类型为目录。如下图所示。

poYBAGNSN3OAfeihAAKVGaqmAGk968.png

北亚数据恢复——Ext4文件系统数据恢复

在var文件夹的目录块下查找kyproc目录的位置,如下图所示,标红的位置是找到的结果。此位置显示所在块号为62399108。

pYYBAGNSN3iAUx6WAAQQOI_JXdE900.png

北亚数据恢复——Ext4文件系统数据恢复

根据所在块号可以定位kyproc目录相应节点的位置。由于人工补节点比较繁琐,可以从journal日志文件里面找到其节点信息,把相应的信息粘贴回去。

通过上述方法可以重建(恢复)目录。恢复目录里的文件也是通过同样的方法从journal日志文件里找到相应的文件的节点信息,找到后粘贴回原来的位置,达到重建(恢复)文件的目的。

5、经过数据恢复工程师的努力,终于把用户需要的数据都恢复出来,经过数据恢复工程师和用户的核检没有发现问题。本次数据恢复工作完成。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11292

    浏览量

    209329
  • 服务器
    +关注

    关注

    12

    文章

    9123

    浏览量

    85324
  • 数据恢复
    +关注

    关注

    10

    文章

    568

    浏览量

    17432
收藏 人收藏

    评论

    相关推荐

    Ext4文件系统新特性

    任何Ext3文件系统都可以轻松的迁移到Ext4文件系统,你只需要在只读模式下运行几条命令即可。这就意味着你完全可以不格式化硬盘、不重装操作系统
    发表于 04-27 19:30 1291次阅读

    服务器数据恢复linux ext3文件系统执行FSCK后无法挂载数据恢复案例

    服务器数据恢复环境: POWEREDGE系列某型号服务器LINUX系统+RAID5。
    的头像 发表于 10-27 11:58 692次阅读
    【<b class='flag-5'>服务器</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>】<b class='flag-5'>linux</b> <b class='flag-5'>ext</b>3<b class='flag-5'>文件系统</b><b class='flag-5'>执行</b><b class='flag-5'>FSCK</b>后无法<b class='flag-5'>挂载</b>的<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    服务器数据恢复】ocfs2文件系统被误格式化的数据恢复案例

    用户误操作将linux文件系统误装入到Ocfs2文件系统数据卷上,导致原始Ocfs2文件系统被格式化为
    的头像 发表于 12-28 11:21 885次阅读
    【<b class='flag-5'>服务器</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>】ocfs2<b class='flag-5'>文件系统</b>被误格式化的<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    EXT4文件系统下分区不能挂载数据恢复案例

    服务器数据恢复环境: 某品牌PowerEdge系列服务器,磁盘阵列存储型号为该品牌MD3200系列存储,分配lun; linux cen
    的头像 发表于 02-23 14:44 859次阅读

    服务器数据恢复-EXT3文件系统下邮件数据恢复案例

    服务器数据恢复环境: 一台服务器组由8块盘组建的RAID5阵列,EXT3
    的头像 发表于 08-08 15:15 495次阅读
    <b class='flag-5'>服务器</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>-<b class='flag-5'>EXT</b>3<b class='flag-5'>文件系统</b>下邮件<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    服务器数据恢复-ext4文件系统服务器数据恢复案例

    一台服务器挂载台存储设备,存储中划分个Lun;服务器操作系统
    的头像 发表于 08-10 14:03 642次阅读

    服务器数据恢复- Ext4文件系统服务器数据恢复案例

    某公司服务器Ext4文件系统umount失败,管理员执行fsck操作检查
    的头像 发表于 09-04 15:32 631次阅读
    <b class='flag-5'>服务器</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>- <b class='flag-5'>Ext4</b><b class='flag-5'>文件系统</b><b class='flag-5'>服务器</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    服务器数据恢复-LINUX下误删除/格式化的数据恢复方案

    服务器数据恢复环境: 基于EXT2/EXT3/EXT4/Reiserfs/Xfs
    的头像 发表于 09-15 15:29 949次阅读

    服务器数据恢复—ocfs2文件系统被误格式化为Ext4文件系统数据恢复案例

    由于工作人员的误操作,将Ext4文件系统误装入到存储中Ocfs2文件系统数据卷上,导致原Ocfs2文件系统被格式化为
    的头像 发表于 12-04 10:49 445次阅读
    <b class='flag-5'>服务器</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—ocfs2<b class='flag-5'>文件系统</b>被误格式化为<b class='flag-5'>Ext4</b><b class='flag-5'>文件系统</b>的<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    服务器数据恢复】UFS2文件系统数据恢复案例

    服务器数据恢复环境: 一台服务器,虚拟化系统为esxi,上层使用iSCSI的方式实现FC SAN功能,iSCSI通过FreeNAS构建。
    的头像 发表于 01-09 14:53 885次阅读

    服务器数据恢复—非正常关机导致服务器文件丢失的数据恢复案例

    服务器数据恢复环境: 某品牌PowerEdge R730服务器+PowerVault MD3200存储,划分若干lun,操作系统版本是ce
    的头像 发表于 01-19 13:42 511次阅读

    虚拟机数据恢复EXT4文件系统下KVM虚拟机数据恢复案例

    发行版本中。KVM使用Linux自身的调度进行管理。 本案例中的服务器操作系统Linux文件系统
    的头像 发表于 04-17 14:22 375次阅读
    虚拟机<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—<b class='flag-5'>EXT4</b><b class='flag-5'>文件系统</b>下KVM虚拟机<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    服务器数据恢复EXT3文件系统下误删除数据恢复案例

    服务器数据恢复环境: 邮件服务器中有组由8块盘组成的RAID5阵列, 上层是Linux操作
    的头像 发表于 10-23 15:11 158次阅读
    <b class='flag-5'>服务器</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—<b class='flag-5'>EXT</b>3<b class='flag-5'>文件系统</b>下误删除<b class='flag-5'>数据</b>的<b class='flag-5'>恢复</b>案例

    服务器数据恢复—异常断电导致linux系统无法启动的数据恢复案例

    服务器数据恢复环境: 某品牌服务器+同品牌存储,Linux centos7+EXT4
    的头像 发表于 10-25 17:42 283次阅读

    服务器数据恢复——Ext4文件系统umount失败的数据恢复案例

    块组:Ext4文件系统的全部空间被划分为若干个块组,每个块组结构基本上相同。 块组描述符表:每个块组都对应个块组描述符,这些块组描述符统放在
    的头像 发表于 11-13 13:25 241次阅读
    <b class='flag-5'>服务器</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>——<b class='flag-5'>Ext4</b><b class='flag-5'>文件系统</b>umount失败的<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例