一次 Debian Linux 环境下 RAID0 掉盘的数据恢复记录

症状

重启后,RAID0 所对应的分区无法访问,显示丢失超级块 missing superblock.

由于是刚上线的新项目,还没有开始备份,但是已有部分重要代码,如果找不回来等于损失半个月的工作量.

经检查硬盘S.M.A.R.T状态正常,四块硬盘都是正常识别,也没有坏块,但是对应R0的分区无法读取.

环境

系统: Debian 10

CPU: Intel Xeon E5-2699 v3 *2

RAM: 256GB DDR4

阵列状态: RAID0 (Sandisk Extreme Pro 480G SSD *4) RAID1 (希捷 1TB HDD + 西部数据 1TB HDD)

阵列类型: 软件(Software)

处理过程

  1. 直接重新挂载,失败,丢失超级块。
  2. fsck 修复,无效。
  3. 对四块硬盘做镜像后重建阵列,失败。
  4. 以相同信息新建阵列,无法进行操作,必须格式化。
  5. 这时候已经束手无策了,只能考虑磁盘恢复软件。

Testdisk

经过广泛的尝试和搜索,找到了这样一个工具 testdisk

安装

输入命令

1
2
3
apt install -y testdisk
# 运行
testdisk

运行后界面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
TestDisk 7.0, Data Recovery Utility, April 2015
Christophe GRENIER <[email protected]>
http://www.cgsecurity.org


TestDisk is free data recovery software designed to help recover lost
partitions and/or make non-booting disks bootable again when these symptoms
are caused by faulty software, certain types of viruses or human error.
It can also be used to repair some filesystem errors.

Information gathered during TestDisk use can be recorded for later
review. If you choose to create the text file, testdisk.log , it
will contain TestDisk options, technical information and various
outputs; including any folder/file names TestDisk was used to find and
list onscreen.

Use arrow keys to select, then press Enter key:
>[ Create ] Create a new log file
[ Append ] Append information to log file
[ No Log ] Don't record anything

这里是设置保存日志的地方,一般情况下直接回车选择 Create

接下来会要求选择硬盘,直接选择RAID对应的分区即可.

1
2
3
4
5
6
7
8
9
TestDisk 7.0, Data Recovery Utility, April 2015
Christophe GRENIER <[email protected]>
http://www.cgsecurity.org

TestDisk is free software, and
comes with ABSOLUTELY NO WARRANTY.

Select a media (use Arrow keys, then press Enter):
>Disk /dev/md0

如果未识别出分区,会要求选择分区表类型,按照个人类型选择即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
TestDisk 7.0, Data Recovery Utility, April 2015
Christophe GRENIER <[email protected]>
http://www.cgsecurity.org


Disk /dev/md0 - * GB / * GB
* sectors - sector size=*

>[ Analyse ] Analyse current partition structure and search for lost partitions
[ Advanced ] Filesystem Utils
[ Geometry ] Change disk geometry
[ Options ] Modify options
[ Quit ] Return to disk selection

选择 Analyse 就会自动分析出分区,如果分析出了你想要的内容,就可以直接按 浏览文件,然后复制到正常的硬盘中。

选择 Advanced 可以恢复已删除的文件系统,按Undelete即可。

由于我已经在实际环境恢复过一遍,剩下的内容就无法演示了。

总结

Testdisk是强大的数据恢复工具,但是备份才是最重要的,没有人会再想在23点通宵到第二天上午来解决这种数据丢失的问题。

R0一时爽,数据火葬场

这次教训后已将阵列修改为RAID10,兼顾速度与安全性,反正又不缺硬盘。

记得备份!!!