全站搜索
文章正文
群晖(Synology)存储ext4视频文件删除的恢复方法
作者:管理员    发布于:2025-07-06 17:32:53    文字:【】【】【
摘要:随着NAS/SAN 技术的普及,只需要一台小型的存储设备就可以实现轻松数据管理、安全共享等私有云解决方案。比如要管理数量不算少的安防摄像头生成的视频数据,通过一个小型的NAS+网络摄像头就可以完成数据采集到写入的所有环节,大大的节省成本。今天来看一下使用群晖(Synology)存储+ext4文件系统视频删除后如何进行恢复。

故障存储:

群晖(Synology5.45TB/文件系统:ext4/块大小:4KB

故障现象:

某日管理员清理早期数据时误删除了两条视频文件,发现误操作后直接断开了网络并对存储进行了关机操作。

故障分析:

在开始分析前先对ext4文件系统做个简单的介绍:

Linux系统中的ext2ext3ext4 文件系统,它们都有很强的向后和向前兼容性,可以在数据不丢失的情况下进行文件系统的升级。ext4是一个相对较成熟、稳定且高效的文件系统,适用于绝大部分规模和需求的Linux环境。

ext4突出的特点有:数据分段管理、多块分配、延迟分配、持久预分配、日志校验、支持更大的文件系统和文件大小。而和其它的老前辈一样,ext4仍然使用块(Block)和块组(BlockGroup)进行管理,最小的操作单元就是块(类似于windows的簇)。本例中的块大小为4KB(如图1),4KB算是比较经典的块大小了,兼顾了IO性能和空间的浪费,不仅仅是ext4实际上ntfs文件系统也更加偏爱4KB的块(簇)大小。

一般来讲,NAS还是比较偏爱ext或者btrfs的,这个小存储做为视频数据最终的“落脚点”使用ext4相对来讲比较适合,因为整体的系统开销会更低。而做为网络服务器更多的使用“网络IO”,网络IO的典型特点就是:1、排队  2、分块,比如同一时间可能会有摄像头A和摄像头B都有IO请求,这个时候就需要先排队,再写入,(A写一块然后再写B不断循环)这样就导致了数据的“碎片化”,现实情况下可能排队数量远远大于AB两个客户端,可能会更多。此案例中使用的是mp4文件,这也是目前使用比较广泛的封装格式,其文件结构相对“弹性”,可以实现分块传输、在线播放(如图2)。通过对存在文件的分析发现以下特征:

1、碎片数量多

2、碎片区间较大

3、偏移值并非线性而是随机

这些特殊的情况都让这次恢复变的难度很高,特别是第2点,可以看到实例分析中的碎片区间已经达到了1.36TB(如图3),此文件还算是碎片数量较少的。

2-1

1:块大小为4KB

390c8b20-569f-4305-9051-c06aa3567c8b

2mp4文件使用AVC视频编码和MP4A音频编码

3:碎片化的存储方式典型的“网络IO

故障处理:

STEP1:“海选”式定位文件。

由于存储空间较大,而其MP4使用的是结构体前置的方式,所以初步方案是先进行文件头定位,在海量的数据中去查找客户所需要的文件,当然前提是文件头没有被覆盖,如果此方案无果再进行深入遍历。

使用通用恢复软件成功找到客户所需要的两条视频,由于存在碎片的原因,仅仅能播放前1分钟的画面,但也成功定位到了文件头所在的块偏移(如下图),经过“海选”定位文件没有被覆盖的可能性概率较大,这样就可以继续下一步的恢复工作了。96

4:海选式定位

 

 

 

 

STEP2:确定大概范围。根据分析的视频特征进行数据定位,由于空间过大的原因还是使用了手工定位。