BuringStraw

BuringStraw

記一次伺服器資料恢復

年輕人的第一次刪庫跑路

這件事的起因是 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。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。