百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

服务器数据恢复—Raid5阵列两块硬盘磁头损坏导致掉线的数据恢复

nanshan 2025-05-24 15:44 27 浏览 0 评论

服务器数据恢复环境:

一台某品牌存储设备上有一组由10块硬盘(9块数据盘+1块热备盘)组建的raid5阵列,上层部署vmware exsi虚拟化平台。

服务器故障:

raid5阵列中两块硬盘对应的指示灯亮黄灯掉线。硬盘序列号无法读取,通过SAS扩展卡也无法读取。

服务器数据恢复过程:

1、将存储中所有磁盘标记后取出。将掉线的其中一块故障盘连接到外部的SAS扩展卡上,加电后通过硬盘声音判断电机可以启动,但是磁头没有进行寻道操作。硬件工程师将硬盘PCB分离下来清洁HDA组件氧化部分,清洁后故障依旧。和用户方沟通并得到同意后,硬件工程师在无尘室将热备盘的PCB替换到故障盘上,并将故障盘PCB上的ROM芯片替换到从热备盘上取出的PCB上面。这时硬盘的电机起转和磁头寻道声音正常,但是在寻道结束后,有明显的敲盘声音,基本上可以判断磁头损坏。和用户方沟通后使用热备盘中的磁头替换故障盘上的磁头,不幸的是这块故障盘已经无法识别,无法读取数据。

再次和用户方沟通后尝试对另一块故障盘进行修复。和第一块故障盘一样,这块故障盘的磁头损坏,通过各种渠道找到相同型号的硬盘并更换磁头。更换磁头后这块故障盘能够被正常识别,于是将这块故障盘所有扇区以只读方式做完整镜像。其他完好硬盘也以只读方式做扇区级全盘镜像。镜像完成后将所有磁盘按照原样还原到存储设备中,后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始数据造成二次破坏。

2、判断起始扇区。

所有硬盘镜像完成后,使用工具打开9块数据盘,9块盘的0扇区都有“55 AA”标志。



0x01C2H处显示“05”,表示这是一个扩展分区。从0扇区看这是一个不正常的MBR分区结构。



继续往下找,在另外的2块盘上找到了“55 AA”的标志。其中一块盘上是一个正常的MBR分区,其0x01C6处数值代表指向的下一个扇区为GPT的头部。



另外一块盘的0x01C6处数值表示指向下的一个扇区不是GPT的头部。



由此可以确定这2块盘中其中一块是第一块盘,另外一块盘可能是最后一块盘。GPT分区所在扇区起始于172032扇区,因此初步确定LUN的起始扇区是172032扇区。

3、判断条带(stripe)大小。

条带也称块,是RAID处理数据的基本单元。不同RAID的条带大小各不相同。RAID5的1个条带组中有1个校验区,1个校验区的大小等于1个条带的大小。根据这个特征分析这个RAID5。如果对VMFS不熟悉,可以通过比较法确定条带大小。如果某一条带组中的校验区和该条带组中的非校验区相差很明显,通过工具查看并对比就可以找出条带大小。北亚企安数据恢复工程师通过上述方法判断出本案例中条带大小是1024个扇区。

4、判断RAID5阵列成员盘盘序。

按照1024扇区进行分割,使一个记录为一个条带的大小,9块盘跳到同一记录283123。



当9块盘都定位到同一位置时,通过对比可以判断校验区的走向,继而判断整个RAID5的走向。将之前判断出的第一块盘放在第一个位置就可以判断走向了。北亚企安数据恢复工程师通过上述方法判断出本案例中raid5的走向和盘序。



5、前面的步骤中已经确定LUN的起始扇区是172032扇区。跳到172032扇区并观察各硬盘的情况。如果172032扇区是LUN的起始扇区,那么这个扇区所属条带中的那块盘应该是校验区,但是此条带中却显示另外一块盘是检验区。根据RAID5的左走向,172032扇区所属条带中的那块盘的校验区应该在172032-1024=171008扇区,即上一个条带。跳转到171008扇区,却发现校验区为172032扇区所属条带显示的另外一块盘,因此可以确定LUN的起始扇区为171008扇区。

6、在工具中按照确定的盘序组织好磁盘并添加进去,选择RAID5,Stripe size 512KB,左异步。



点击Build重组raid5。由于数据从1024*8=8192个扇区开始,若工具没有跳转到此扇区的功能,那么刚组好的RAID必须和一个文件再进行一次重组操作。RAID的起始扇区选择8192,这个文件可以任意选择起始扇区和大小。




7、移交数据。RAID5重组完成后,联系用户方验收数据。经过验证,用户方确认数据没有问题。根据用户方要求把数据移交到用户方带来的新盘上。

相关推荐

使用nginx配置域名及禁止直接通过IP访问网站

前段时间刚搭建好这个网站,一直没有关注一个问题,那就是IP地址也可以访问我的网站,今天就专门研究了一下nginx配置问题,争取把这个问题研究透彻。1.nginx配置域名及禁止直接通过IP访问先来看n...

如何在 Linux 中使用 PID 号查找进程名称?

在Linux的复杂世界中,进程是系统运行的核心,每个进程都由一个唯一的「进程ID」(PID)标识。无论是系统管理员在排查失控进程,还是开发者在调试应用程序,知道如何将PID映射到对应的进程名称都是一项...

Linux服务器硬件信息查询与日常运维命令总结

1.服务器硬件信息查询1.1CPU信息查询命令功能描述示例lscpu显示CPU架构、核心数、线程数等lscpucat/proc/cpuinfo详细CPU信息(型号、缓存、频率)cat/proc/c...

Ubuntu 操作系统常用命令详解(ubuntu常用的50个命令)

UbuntuLinux是一款流行的开源操作系统,广泛应用于服务器、开发、学习等场景。命令行是Ubuntu的灵魂,也是高效、稳定管理系统的利器。本文按照各大常用领域,详细总结Ubuntu必学...

从 0 到 1:打造基于 Linux 的私有 API 网关平台

在当今微服务架构盛行的时代,API网关作为服务入口和安全屏障,其重要性日益凸显。你是否想过,不依赖商业方案,完全基于开源组件,在Linux上构建一个属于自己的私有API网关平台?今天就带你...

Nginx搭建简单直播服务器(nginx 直播服务器搭建)

前言使用Nginx+Nginx-rtmp-module在Ubuntu中搭建简单的rtmp推流直播服务器。服务器环境Ubuntu16.04相关概念RTMP:RTMP协议是RealTi...

Linux连不上网?远程卡?这篇网络管理指南你不能错过!

大家好!今天咱们聊个所有Linux用户都躲不开的“老大难”——网络管理。我猜你肯定遇到过这些崩溃时刻:新装的Linux系统连不上Wi-Fi,急得直拍桌子;远程服务器SSH连不上,提示“Connecti...

7天从0到上线!手把手教你用Python Flask打造爆款Web服务

一、为什么全网开发者都在疯学Flask?在当今Web开发的战场,Flask就像一把“瑞士军刀”——轻量级架构让新手3天速成,灵活扩展能力又能支撑百万级用户项目!对比Django的“重型装甲”,Flas...

nginx配置文件详解(nginx反向代理配置详解)

Nginx是一个强大的免费开源的HTTP服务器和反向代理服务器。在Web开发项目中,nginx常用作为静态文件服务器处理静态文件,并负责将动态请求转发至应用服务器(如Django,Flask,et...

30 分钟搞定 Docker 安装与 Nginx 部署,轻松搭建高效 Web 服务

在云计算时代,利用容器技术快速部署应用已成为开发者必备技能。本文将手把手教你在阿里云轻量应用服务器上,通过Docker高效部署Nginx并发布静态网站,全程可视化操作,新手也能轻松上手!一、准...

Nginx 配置实战:从摸鱼到部署,手把手教你搞定生产级配置

各位摸鱼搭子们!今天咱不聊代码里的NullPointerException,改聊点「摸鱼必备生存技能」——Nginx配置!先灵魂拷问一下:写了一堆接口却不会部署?服务器被恶意请求打崩过?静态资源加载...

如何使用 Daphne + Nginx + supervisor部署 Django

前言:从Django3.0开始支持ASGI应用程序运行,使Django完全具有异步功能。Django目前已经更新到5.0,对异步支持也越来越好。但是,异步功能将仅对在ASGI下运行的应用程序可用...

Docker命令最全详解(39个最常用命令)

Docker是云原生的核心,也是大厂的必备技能,下面我就全面来详解Docker核心命令@mikechen本文作者:陈睿|mikechen文章来源:mikechen.cc一、Docker基本命令doc...

ubuntu中如何查看是否已经安装了nginx

在Ubuntu系统中,可以通过以下几种方法检查是否已安装Nginx:方法1:使用dpkg命令(适用于Debian/Ubuntu)bashdpkg-l|grepnginx输出...

OVN 概念与实践(德育概念的泛化在理论和实践中有什么弊端?)

今天我们来讲解OVN的概念和基础实践,要理解本篇博客的内容,需要前置学习:Linux网络设备-Bridge&VethPairLinux网络设备-Bridge详解OVS+Fa...

取消回复欢迎 发表评论: