
去年秋天的一个晚上,我在NAS上整理照片,看到一个叫「待整理-老婆手机」的文件夹,62个G,我以为是从手机自动备份重复倒腾出来的旧货,在Windows映射的网络驱动器里右键删掉了。看它进了回收站,我还犯强迫症,顺手把回收站一并清空——反正都是重复的,占着盘干嘛。
第二天早上老婆问我:她那批换手机搬过来的照片和视频,放哪了。
我后背一凉,才想起来那不是重复目录,是她旧手机里唯一的一份原始备份,新手机里只有挑出来转存的几百张。
我是怎么捞回来的:前后二十分钟,丢了一张晚饭照
冷静下来第一件事不是到处点,是想:我的照片盘当年格的是Btrfs。这要归功于当初选文件系统时研究过的一晚(ext4还是Btrfs那次),Btrfs带快照,而我的快照计划是每小时拍一个、保留48个。
删除发生在晚上十点四十,我早上八点进后台,翻到前一天22点那个快照,整个「待整理-老婆手机」文件夹原样躺在里面,62个G全在。整个目录拷回正式目录,前后二十分钟。
代价是最后一张晚饭照片,22点20分拍的,不在22点的快照里,手机里也没存。老婆念叨了半个月。
顺带说个细节:我一开始都不确定自己是几点删的。后来是翻手机相册,看到晚饭照片的时间戳是22点20,往前推算删除动作在22点40上下,再去挑快照版本就有数了。删了什么、几点删的,这两个信息越早想清楚,后面翻快照越快。
这事之后我把快照保留策略改了:每小时一个留48个,外加每天一个留14天。误删这种事,发现得越晚越致命,保留期长一点,容错就多一点。
先搞清楚:文件是从哪条路删掉的,下场完全不一样
很多人以为NAS有个统一的回收站,删什么都在。不是的。回收站是个按协议挂上去的功能,你从哪条路删的,决定了文件还有没有全尸:
| 删除的路子 | 进不进回收站 |
| Windows/Mac映射盘或网络邻居里删 | 进(前提是开了回收站) |
| NAS网页端文件管理器里删 | 群晖进#recycle,飞牛看设置 |
| App相册里删(飞牛相册/群晖Photos) | 多数直接删,不进 |
| SSH终端rm、FTP删 | 不进,直接永久删 |
群晖官方知识库的口径很明确:回收站主要挂在SMB这类共享协议上,File Station里删的也会进;但SSH里敲rm是文件系统层面的操作,绕过一切,删了就是删了。所以越是会玩SSH的人,手上越没保险。
另外提醒一句:家里老人小孩的账号,能限权限就限权限,只给读写、不给删除的目录分开建,权限怎么划我之前专门写过。我丈母娘现在只能往「上传区」里放东西,动不了照片库。
第一站:回收站,九成乌龙到这就结了
群晖的开关在控制面板→共享文件夹→编辑→勾「启用回收站」。勾上之后,从共享协议删掉的东西都躺在共享文件夹下的#recycle目录里,File Station里能看到,右键还原就回去了。
DSM7还能给回收站设自动清理周期,我设的30天。这里说个我的血泪体会:清空回收站这个动作,永远交给自动周期去做,别手动点。我当时就是看着回收站占了几十个G手痒,一键清空,亲手把后悔药倒了。盘又不是不够用,急什么。后来我算过账,回收站常驻也就吃掉照片库七八个点的空间,拿这点空间换30天的反悔期,怎么算都是赚的。
飞牛那边,0.8.32版本起「文件管理」的设置里多了个「删除文件偏好」,可以自定义从SMB这类共享协议挂载的外部设备里删文件,进不进回收站。老版本默认可能是不进的,升级之后自己去把这个勾上,不然Windows映射盘里删东西就是裸删。这是个挺新的功能,很多人不知道。
第二站:快照,回收站空了它才出场
快照的前提只有一个:存储池是Btrfs。ext4没有快照,这是两种文件系统最实际的差别,不是参数表上的数字,是出事那天晚上能不能睡着觉的差别。
群晖在套件中心装Snapshot Replication,给共享文件夹设快照计划就行。救援的时候有三条路,都比想象中简单:
- 套件里「快照→浏览」,直接翻旧版本,找到文件复制或恢复回去
- File Station里看共享文件夹下面的#snapshot目录,里面按时间排着历代快照,手动拷
- Windows里右键文件→「以前的版本」,快照会以挂载方式出现在这,图形界面最顺手
飞牛的存储空间选了Btrfs之后,文件管理里也有快照浏览,进到对应时间点的快照里把文件拷出来,逻辑一样。
快照这东西平时看着吃点空间(我这边快照常驻占7%上下),但它救的不只是误删。勒索软件把文件全加密了,快照照样能回滚到中毒前——当时给NAS上三道闸的时候,快照就是头一道。
两站都扑空:ext4用户的压箱底退路
如果当年选了ext4,快照没有,回收站也没开或者已经清了,文件是被真删掉的,还有一步可走,但成功率看运气。
头一件事:停止写入。删掉的文件数据其实还躺在盘上,只是目录里不认了;新数据写进去,覆盖一块就永久少一块。发现误删的瞬间,停写清单挨个过一遍:下载器里挂着的任务全暂停、手机相册的自动备份先断开、电脑上挂着这个共享目录的同步软件退出、Docker里会写盘的容器停掉。硬盘灯要是还在闪,就还没停干净。我当时要是继续往里倒东西,神仙也救不回。
然后是数据恢复软件,R-Studio、DiskGenius这类,把盘拆下来挂到电脑上扫。论坛里有人飞牛单盘ext4误删后用R-Studio捞,普通的列表模式扫出来全是0字节的空壳,换成「按文件分类」扫才把内容找回来,就是文件名和目录结构全丢了,得自己重新归类。两个铁律:恢复软件别装在出事的盘上,捞出来的文件别恢复到原盘。
捞不回来也别急着认栽,想想有没有别的副本——同步到电脑的、网盘上的、旧硬盘里的。顺便说一句,同步不等于备份,同步盘的删除是会传染的,Drive同步的坑我踩过;正经的备份思路还是3-2-1那套,怎么备老文章里有账。
对号入座:误删之后头五分钟干什么
把顺序排成一张表,真出事的时候照着走,别凭本能乱点:
| 你是哪种情况 | 头五分钟做什么 |
| 映射盘/网络邻居里删的 | 直接翻NAS回收站,还原 |
| 回收站空了,但盘是Btrfs | 翻快照,按时间点拷回 |
| 盘是ext4,快照没有 | 立刻停止一切写入,盘挂电脑跑恢复软件 |
| SSH里rm删的 | 同上,rm不进回收站,一步到位进最坏情况 |
捞回来之后干两件事:把回收站和快照都开好,再给自己留一份离线备份。NAS这东西盘越换越大,一次误删的杀伤力也跟着翻倍,回收站和快照都是系统白送的功能,花十分钟配置好,比出事后花一晚上碰运气划算多了。

发表评论