实战:最麻烦的群晖SHR+Btrfs阵列数据救援

开篇语

这篇文章与其说是教程,不如说是一次经验总结。

我并不是专业数据恢复人员,只是在互联网上搜索各类教程,然后尝试,最终获得了成功!

前前后后一共折腾了5天,有很多次都不想搞了,但我抱着一个信念:只要硬盘没坏,数据没被覆写,就一定能救回来!

这篇文章对EXT2/3/4、Btrfs、以及各种Linux阵列数据恢复都有一定参考价值。

希望能帮上你的忙!

情况介绍

NAS使用情况

六盘位蜜獾超存,DSM 6.2.2 二合一系统,按照下图配置,长期稳定使用。

上图可见,蜜獾超存的6块硬盘为Basic+Basic+SHR形态。

其中,SHR阵列由2块希捷+2块西数组成,且四块硬盘生产时间各不相同。

(但这次坏的就是这个看似最稳的SHR,离谱!)

发现问题

7月13日下午,远程登陆系统,发现系统报警,提示阵列损毁。

这块阵列本来是10.9TB,现在变成0B了,在系统内无法访问任何数据,但4块硬盘均显示0坏道。

这块阵列里存放着2年来的所有摄影资料和视频工程素材,部分重要的数据使用Cloud Sync工具同步到了DS220J机器和云盘上,其他数据虽然不是特别重要,但丢失了很麻烦!

注意:群晖提示硬盘损毁、数据丢失后,切勿进行任何的文件写入操作,包括删除存储池之类的,否则可能会覆盖数据,导致无法恢复!

实战救援一:重建阵列

查阅资料发现Windows+UFS Explorer Professional Recovery(下称UFS工具)可以读取群晖资源,说干就干。

转移:将涉事硬盘接驳到Windows设备上

如果你的NAS是白群,则要找一台有足够多空硬盘位的Windows设备,将相关的硬盘转移到那台机器上去。

较新的Windows台式机主板上一般都配备有4~6个SATA接口,准备好充足的SATA数据线以及大4pin转SATA供电线,将所有硬盘接驳到Windows设备上后,开始下一步工作。

黑群晖则不需要这一步,因为黑群晖可以直接运行Windows。

准备:Windows PE环境+UFS工具

需要一个U盘,8至16G足矣。

个人推荐使用Firpe,干净稳定,Github开源。

UFS Explorer Professional Recovery数据恢复www.golue.com/game/v598460.html

你要用别的PE也可以,或者去其他站点下载UFS工具也行,我只是提供个方便。

将PE写入U盘,再把UFS工具拷贝到U盘,准备就完成了。

这一步很简单,打开下载的Firpe,在“选择设备”中找到你的U盘,点击“全新制作”就行。

开工:进PE,扫描数据

不同机器设置U盘启动的方法各有不同,但大多都是按F10、Del、F12、F2之类的按键进入Bios,然后在引导菜单(Boot)中将第一引导设置为U盘。

如果不懂的,建议百度搜索“你的主板品牌+进Bios”,比如“华硕进Bios”,这一步也不麻烦,耐心找找即可。

进入PE后,安装U盘里的UFS工具。

上图右侧是安装包,左侧是Patch破解包。先装安装包,一路勾选下一步就能完成安装。安装完成后不要打开软件,先进行Patch破解。

注意:Firpe的系统盘符是X盘,软件安装在默认目录即可,Patch程序手动定位到X:/Program Files/Data Recovery内就能找到UFS工具的exe并进行破解。打开软件也是到这个目录。

打开软件后,不出意外在底部就会有你的阵列信息(如上图所示),右键选择Scan for Lost Data(扫描丢失数据),就会进入扫描界面。

这里要先选择硬盘格式,如NTFS、EXT、ZFS等,我们勾选好Btrfs后,点击“开始扫描”。

7月13日23:20开始处理,系统提示需要扫描24小时,我们耐心等待。

因为监视器屏幕太辣眼睛,我找了个HDMI采集卡,在笔记本电脑上使用OBS进行监看。

7月14日23:26分,发现已经走完了第一个“Searching for Lost Data”(寻找丢失数据)流程,软件自动开始了下一个流程,“Completing virtual file system”(重建虚拟文件系统),提示总共需要3小时。

7月15日2:02,已完成重建。

实战救援二:拷贝数据

准备:Ubuntu系统

上一步是重建阵列,而这一步就要把数据从损坏的盘里拷出来了。

但UFS工具破解不完全,只能重建阵列,可以读取到所有的数据,但无法拷贝,提示受试用版权限限制

这时候,只能用到群晖官方的办法——使用Ubuntu系统!

准备一个性能比较好的U盘,并下载一个Ubuntu系统镜像,写入到U盘(使用balenaEtcher工具)

选择镜像,选择U盘,点击刷入——三个按钮依次操作,就可以了。

写入完成后,从U盘启动(搞过winpe的你已经很熟这一招了)

进入系统,选择试用Ubuntu就行!这是系统直接在u盘里运行的方式,不影响任何硬盘数据。

挂载:你的硬盘在哪里

进入系统后是不显示任何Btrfs硬盘的,如何操作呢?

按照官方的教程,打开“终端”进行操作。

请以此输入下方的代码。

Sudo -i(获取超级管理权限)
Apt-get update(升级软件仓库)
Apt-get install lvm2 mdadm -y(安装LVM2和mdadm软件)
Mdadm -Asf && Vgchange -ay(识别群晖磁盘和阵列并挂载,但此时你会发现只有单盘挂载了,SHR阵列并未显示出来)
↓↓下方内容不在群晖官方教程之中↓↓
在主目录中新建一个名为111的文件夹,回到“终端”
Lvscan(查看阵列的路径)
Mount /dev/vg1/volume_2 /home/ubuntu/111 -o ro(把阵列Volume2挂载到主目录的111文件夹里)
↑根据Lvscan结果来看Volume几
Sudo -s(获取指定SHELL)←其实这行我也不清楚具体作用,但就是要
Nautilus(打开超级权限文件管理器)

现在,你可以选择把数据拷贝到群晖里的其他硬盘,或者USB的外置硬盘里啦!

完成!

结束语

如果采用传统RAID+EXT4文件格式,只要进WinPE就能恢复。

采用了Btrfs,就必须要用到Ubuntu(或者其他Linux)了,不得不说麻烦多了!

建议大家使用群晖,斟酌好利弊,尽量用EXT4就行。