web-dev-qa-db-ja.com

Linuxサーバーで大きなファイルを空白のファイルで上書きしました。既存のファイルを復元できますか?

私は自分のマシンに戻り、ssh経由でLinuxサーバー(CentOS)にファイルを保存しようとしました。

失敗しました。

行った変更を保持することに興味がなかったので、エディターを閉じてファイルを再度開きました(ssh経由)。

保存しようとすると、ファイルがワイプされました。

最後にリビジョン管理にアップロードしてから、たくさんの変更を加えました。

ファイルをワイプしたばかりなので、データはまだ残っていると思います。それは単なるテキストファイル(php)ですが、それを回復する方法はありますか?

4
wkstar
ファイルをワイプしたばかりなので、データはまだ残っていると思います。

私はあなたが間違って仮定することを恐れています。ファイルシステムと基盤となるデバイスによっては、ファイルを構成していたバイトがまだディスク上に存在する場合がありますが、完全なフォレンジックリカバリ以外ではアクセスできなくなります。これは、支払いたくないと確信しています。にとって。

一時ディレクトリをチェックして、別のコピーが配置されていないことを確認しましたか?その特定のファイルを取り戻すことはおそらくないからです。

悪い知らせをお詫びします。

2
Matt Simmons

Iノードが逆参照された場合は、データを回復できる可能性があります。ブロックが上書きされた場合、マットが特定したようなフォレンジックリカバリが必要になります。

私の好みの方法は debugfs を使用することです。これは、まだ上書きされていないために参照解除されたiノードにアクセスするために使用できます。 lsdel コマンドが重要です。いくつかの簡単なスクリプトを使用して、lsdelによって出力されたすべてのiノードへのハードリンクを作成し、データの拡張を開始できます。

ファイルシステムのgrep または iノードの検索 別の方法を使用するなど、他のトリックもあります。

頑張って注意してください。低レベルのユーティリティは、注意なしに簡単に悲惨な結果を生み出す可能性があります。

4
Warner

PhotoRec を使用します。どうぞ。 LVM2ボリュームグループで物理ボリュームとして使用されていたパーティションを削除し、/ etc/lvm/backupファイルのバックアップがないという問題が1回発生しました(Linux)。 PhotoRecはそれをきちんと解決し、削除されたパーティションを調べて、このファイル(プレーンテキストファイル)を復元しました。そこから元の構成を再構築することができました。幸運を祈ります。

3
paulomuggler

これが最後の手段の提案です-エディターがローカルマシンで開いていたファイルを回復できるかどうかを確認してください。私は以前にこれを行ったことがあり、サーバーでこれを実行しようとせずにローカルで回復することができました。サーバーはビジーであるため、ファイルが占有していたディスク領域を再利用する可能性が高くなります。

0
John Gardeniers