年轻人的第一次删库跑路
这件事的起因是 server 酱,但能够成功恢复到最近的状态(零点多?)也多亏了 server 酱。
零点十几分,我更新完 server 酱,重启了服务器(服务器每次启动都会先备份一次)。然后 zyf 他登录帮上了。
我取消了 Xbox 验证,看到 worlds 文件夹里的备份。按照 zyf 的意思,存档每天备份一次。但由于服务器其实经常重启,所以多出了好几份备份。我看着不爽,选中了这些备份,点击删除 - 确认。但是,我上当了。狗日的 vscode 在我展开 worlds 文件夹时给我把 worlds 文件夹选中了。于是整个 worlds 文件夹,包括存档和备份,全都被删除了。
但我并没有发现,仍然启动了服务器。发现是一个全新的世界。直到我打开 worlds 文件夹,我才发现,一切,都没了。
但是机智过人的我,很快搜索到了 extundelete 这个强大的工具。通过再租一台服务器(感谢金主 zyf),将原系统盘挂载为数据盘的方式,然后执行
extundelete /dev/vdb1 --restore-file /root/worlds
extundelete 成功扫描出并假装恢复了两个备份。。。
然后我发现里面的区块文件只恢复了一个,这显然跟没有没什么区别。
之后我又尝试了 foremost,发现它恢复出来的文件文件名是不可辨认的,这,,完全用不了。因为区块文件的文件名也是无规律的数字,与那些被恢复的文件没有办法一一对应。
之后我发现 extundelete 还有一个恢复文件夹的参数
extundelete /dev/vdb1 --restore-directory /root/worlds
执行后却一直蹦 not such directory
查了查发现是没有指定输出目录加上 - o shit 就好了
恢复出来的正确的备份,最近的备份,刚更新 server 酱就保存的备份,居然被夹在了第一遍就出现了,没恢复过来的烂文件夹里。。。
把备份复制回去,启动服务器 - OK。