【服务器数据恢复】Linux服务器分区不能挂载的数据恢复案例
服务器数据恢复环境:
某品牌PowerEdge系列服务器,磁盘阵列存储型号为该品牌MD3200系列存储,分配lun;
linux centos 7操作系统,EXT4文件系统。
服务器故障:
服务器在工作中由于未知原因突然关机且无法启动,管理员经过修复后可以启动服务器,但服务器的某个分区无法挂载。管理员对无法挂载的分区执行了fsck修复,修复完成后该分区可以成功挂载,但是查看该分区数据后发现部分文件丢失。
服务器数据恢复过程:
1、数据恢复工程师到达现场后将故障服务器以只读模式映射到北亚企安数据恢复服务器上,将所有硬盘数据以只读方式镜像到数据恢复服务器上,后续数据分析和数据恢复操作都基于镜像文件进行,避免对原始数据造成二次破坏。
2、通过对镜像文件的分析,数据恢复工程师初步诊断导致该服务器故障的原因是机房供电不稳引起的服务器非正常关机。
3、仔细分析故障服务器的底层数据,发现服务器的异常断电导致目录项被破坏,所幸的是底层数据依然存在,只需要数据恢复工程师手工修复即可恢复数据。
4、由于管理员对文件系统执行了fsck修复,被破坏的目录项在修复失败后以目录节点号命名,并存放于lost+found目录内,随后又清除了这些目录项所对应的数据区索引。这就是分区挂载成功后部分文件丢失的原因。这样的情况想要恢复数据,可以根据被删除的虚拟磁盘文件的文件系统和文件类型在vmfs卷自由空间中进行排查,匹配碎片并重新合并,最终通过这种方式将删除的虚拟磁盘文件恢复。
5、由于故障服务器采用的是EXT4文件系统,EXT4文件系统有一个特点就是文件丢失后其节点信息也会被清除,所以在本案例不能采用基于节点信息进行还原的方法来恢复数据,而是根据丢失的文件目录项节点号匹配lost+found目录下的文件名称这种方式来恢复数据。因为lost+found目录下的文件命名规则就是该文件的目录项节点号。可以先提取目录项节点号并与lost+found目录下的文件名进行一一对应,最终还原出服务器的原始目录结构。
6、基于镜像文件分析底层,在底层空间扫描目录项的区域,将目录项的节点号、数量等信息进行统计和记录,根据服务器磁盘中的文件系统信息将统计到的目录项和节点号进行整合匹配,然后匹配lost+found目录下的文件记录号,最终将服务器分区丢失的数据恢复出来。
7、经过管理员对恢复出来的数据进行反复验证后,确认恢复出来的数据完整有效,本次数据恢复工作完成。
【服务器数据恢复】Linux服务器分区不能挂载的数据恢复案例的更多相关文章
- linux篇-Linux MBR分区、挂载操作步骤,逻辑卷扩容操作
Linux MBR分区.挂载操作步骤,逻辑卷扩容操作 服务器开机之后,能自动识别出硬盘,但是硬盘不能够存储数据,必须对硬盘进行分区.格式化.挂载后才能使用:linux主分区和拓展分区总数不能超过4个 ...
- Linux磁盘分区和挂载
Linux磁盘分区和挂载 分区 分区的方式: mbr分区 最多支持4个主分区 系统只能安装到主分区上 扩展分区要占用一个主分区 MBR最大支持2TB,但拥有最好的兼容性 gtp分区 支持无线多个主分区 ...
- Linux 实用指令(7)--Linux 磁盘分区、挂载
目录 Linux 磁盘分区.挂载 1 分区基础知识 1.1 分区的方式: 1.2 windows 下的磁盘分区 2 Linux分区 2.1 原理分析 2.2 磁盘说明 2.3 使用lsblk指令查看当 ...
- Linux磁盘分区、挂载、查看文件大小
快速查看系统文件大小命令 du -ah --max-depth=1 后面可以添加文件目录 ,如果不添加默认当前目录. 下面进入正题~~ 磁盘分区.挂载 引言: ①.分区的方式 a)mbr分区: 最多支 ...
- Linux 磁盘分区和挂载
目录 Linux 磁盘分区和挂载 windows 下的分区 磁盘管理 相关命令 分区及挂载实现步骤 添加硬盘 分区步骤 步骤 挂载步骤 卸载分区步骤 补充: Linux 磁盘分区和挂载 windows ...
- XP下安装Centos 6.4 双系统 :Linux系统分区及挂载点,关键引导程序启动设置
一.关于Linux的分区情况 虽然硬盘分区表中最多能存储四个分区,但我们实际使用时一般只分为两个分区,一个是主分区(Primary Partion)一个是扩展分区(extended partition ...
- linux硬盘分区及挂载
今天买的一台服务器发现其硬盘容量与购买界面的描述不符,于是我去问了客服才知道有一块硬盘需要自己挂载,所以记录自己硬盘分区以及挂载操作得此文. 测试环境 由于时间限制,本人仅在centos 8下测试 ...
- Linux系统分区及挂载点
一.关于Linux的分区情况 虽然硬盘分区表中最多能存储四个分区,但我们实际使用时一般只分为两个分区,一个是主分区(Primary Partion)一个是扩展分区(extended partition ...
- linux下的ssh工具之,本地上传到linux服务器and Linux服务器文件另存为本地。非sftp工具。
首先,当你只有一个ssh工具可以连接linux,但你有想把文件在 linux 和windows(本地)直接的切换.其实可以的: 本文参考 1.将本地的文件,放到ssh远程的linux服务器上: 首先要 ...
- 云服务器 ECS Linux 服务器修改时区的两种方式
在云服务器 ECS Linux 系统中,以 Centos6.5 为例,可以通过如下两种方式,修改系统时区: 可以使用命令 tzselect,修改时区.操作示例: [root@localhost ~]# ...
随机推荐
- scrapy的pipline的不同操作
针对json文件 import json import os class SpyOppoPipeline: def __init__(self): self.file = open('曹姐.json' ...
- 第一个webpack例子demo1
1.运行webpack 在当前目录 管理员CMD下运行命令 : webpack PS: 只有安装webpack时才必须在管理员环境下运行,如今使用可以随便 问题1: 运行中会遇报错: 错误分析:HTM ...
- 使用vscode编辑markdown
目录 markdown在vscode中的使用 标题 一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 列表 图片 表格 网址 代码 文本样式 引用 目录 vscode中使用的插件推荐 截图工 ...
- LeetCode-393 UTF-8编码验证
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/utf-8-validation 题目描述 给定一个表示数据的整数数组 data ,返回它是否为有 ...
- (五)REDIS-哨兵与集群
概念介绍: Sentinel(哨兵)是Redis的高可用性解决方案,主要是通过一个或多个Sentinel实例组成的Sentinel系统对任意多个主服务器以及这些主服务器的所有从服务器进行监视,当某个主 ...
- libcurl CURLOPT_WRITEFUNCTION 回调函数多次触发导致数据错乱的问题
记录一下自己犯的错误,回调函数本身就会提供数据大小,自己算反而出了问题. size_t Get_Receive_Data(void* buffer, size_t size, size_t nmemb ...
- 查询自增ID断点的地方
方法一 SELECT id+1 AS ID FROM table WHERE id+1 not in (SELECT id FROM table);
- video.js 注销上一个对象并重新初始化
.dispose()没有用,不知道为什么. 后来我们为video绑定不同的id,还是随机数,每次初始化都用新video的id.并不建议这样做,但是我们也没有更好的办法了.
- python threading.Thread暂停、唤醒、退出 不消耗cpu
class MyThreadSound(threading.Thread): def __init__(self): super(MyThreadSound, self).__init__() sel ...
- 硬件IIC主从机中断代码注释解析
目录 硬件IIC的主从中断在582的最新EVT中已支持. 对于IIC从机中断,例程中已封装好中断处理过程,用户调用app_i2c时,初始化中需要配置回调函数. 初始化的配置如下. struct i2c ...