若者の初めてのデータ削除事件
この事件の発端は server 酱ですが、最近の状態(零時過ぎ?)に無事復旧できたのも server 酱のおかげです。
零時十数分、server 酱の更新を終え、サーバーを再起動しました(サーバーは毎回起動時にバックアップを取ります)。その後、zyf がログインして手伝ってくれました。
私は Xbox の認証をキャンセルし、worlds フォルダー内のバックアップを見ました。zyf の言う通り、データは毎日バックアップされるはずです。しかし、サーバーは実際には頻繁に再起動するため、いくつかのバックアップが余分に作成されていました。私はそれが気に入らず、これらのバックアップを選択して削除 - 確認をクリックしました。しかし、私は騙されました。クソな vscode が私が worlds フォルダーを展開したときに worlds フォルダーを選択してしまいました。結果として、worlds フォルダー全体、つまりデータとバックアップがすべて削除されてしまいました。
しかし、私は気づかずにサーバーを起動しました。すると、全く新しい世界が現れました。worlds フォルダーを開くまで、すべてが消えてしまったことに気づきませんでした。
しかし、賢い私はすぐに extundelete という強力なツールを見つけました。別のサーバーを再レンタルし(スポンサーの zyf に感謝)、元のシステムディスクをデータディスクとしてマウントし、次のコマンドを実行しました。
extundelete /dev/vdb1 --restore-file /root/worlds
extundelete は成功裏にスキャンし、2 つのバックアップを復元したふりをしました。。。
しかし、区画ファイルの中には 1 つしか復元されておらず、これは明らかに何も変わらないのと同じでした。
その後、foremost を試みましたが、復元されたファイルのファイル名は識別不可能で、これは全く使えませんでした。区画ファイルのファイル名も無秩序な数字で、復元されたファイルと一対一で対応することができませんでした。
その後、extundelete にはフォルダーを復元するためのパラメータがあることに気づきました。
extundelete /dev/vdb1 --restore-directory /root/worlds
実行すると、常に not such directory というエラーが出ました。調べてみると、出力ディレクトリを指定していなかったため、-o shit を追加すれば良いことが分かりました。
正しいバックアップ、最近のバックアップ、server 酱を更新した直後に保存されたバックアップが、最初の試行で現れた復元されなかったゴミフォルダーの中に挟まっていました。。。
バックアップをコピーし戻し、サーバーを起動 - OK。