解決: Linuxで削除されたファイルを復元する
1. バックグラウンド
緊急, 一部の重要なデータが誤って削除されました, その上、バックアップはありません.
データのパスは/ data / webapps / xxxx / uploadです. 非常に緊急で、私にはありません
Linuxプラットフォームでのデータ回復の経験. しかし、私のメーターを検索した後、
多くのテストを実行します, 失われたファイルのほとんどは回復されていました.
2. yumによるデータ回復ツールのインストール.
(1) epelリポジトリをインストールする
yum install epel -y
(2) extundelete-yをインストールします
extundelete -v
3. ソースコードによるデータ回復ツールのインストール.
yum -y install bzip2 e2fsprogs-devel e2fsprogs gcc-c ++ make
wget http://zy-res.oss-cn-hangzhou.aliyuncs.com/server/extundelete-0.2.4.tar.bz2
tar jxvf extundelete-0.2.4.tar.bz2
cd extundelete-0.2.4
./構成、設定
作る && インストールする
4. 誤って削除されたデータを確認する
欠測データのパスが少し深いので, だから私はルート辞書から日付を探す必要があります.
extundelete / dev / sda2 –iノード 2
webappsのiノードを見ることができます,
extundelete / dev / sda2 –iノード 913921
このプロジェクトのiノードを見ることができます,
extundelete / dev / sda2 –iノード 913922
最後に, 欠測データディクショナリを見つけました “アップロード”.
extundelete / dev / sda2 –iノード 913923
によってマークされた欠測データを見ることができます “削除されました”,したがって、これらのデータは
回復する.
5. このパーティションとアンマウントを使用するプロセスツリーを強制終了します
フューザー-k /
umount /
6、データ復旧
指定された辞書を復元できます. 現在のルートパーティションに基づいてパスを設定する.
extundelete / dev / sda2 –復元ディレクトリ/ webapps / xxxx / upload
常にディスクへの読み取りと書き込みが存在するため, したがって、欠落しているものに属するいくつかのiノード
データはすでに割り当てられていました,一部のデータにつながるため、回収できません. 回復ツール
どのファイルを復元できないか教えてくれました. しかし、ほとんどのファイルは回復されていました.
だから私は回復したデータをチェックしました. RECOVERED_FILESという名前の1つのフォルダーがで生成されました
現在の辞書. 名前付きRECOVERED_FILESで回復されたデータ.
欠落しているすべてのデータを回復する必要がある場合は、次のコマンドを実行できます.
extundelete / dev / sda5 –すべての復元
extundeleteのオプション
オプション:
–バージョン, -[vV] バージョンを印刷して正常に終了する.
–助けて, このヘルプを印刷して、正常に終了します.
–スーパーブロック残りの部分に加えてスーパーブロックの内容を印刷します.
アクションが指定されていない場合、このオプションが暗示されます.
–ジャーナルジャーナルの内容を表示する.
–dtime以降「dtime」以降に削除されたエントリのみを処理します.
–dtimeの前「dtime」の前に削除されたエントリのみを処理します.
行動:
–iノードinoiノード「ino」に関する情報を表示する.
–ブロックblkブロック「blk」に関する情報を表示する.
–復元-inodeino[,イノ,…]
ファイルを復元する(s) 既知のiノード番号「ino」.
復元されたファイルは./RECOVERED_FILESに作成されます
拡張子としてiノード番号を使用 (すなわち。, file.12345).
–復元ファイルの「パス’ ファイルの「パス」を復元します. '道’ ルートに相対的です
パーティションの「/」で始まらない’
復元されたファイルは現在のファイルで作成されます
「RECOVERED_FILES / path」としてのディレクトリ.
–復元ファイルのパス’ ファイル「パス」にリストされているファイルを復元します.
各ファイル名は、オプションと同じ形式にする必要があります
に –復元ファイル, 1行に1つあるはずです.
–復元ディレクトリの「パス’
ディレクトリの「パス」を復元します. '道’ に関連しています
ファイルシステムのルートディレクトリ. 復元された
ディレクトリは「パス」として出力ディレクトリに作成されます.
–復元-すべてすべてを復元しようとします.
-jjournal指定されたファイルから外部ジャーナルを読み取ります.
-bblocknumber開くときにblocknumberのバックアップスーパーブロックを使用します
ファイルシステム.
-Bblocksizeファイルを開くときのブロックサイズとしてblocksizeを使用します
システム. 数はバイト数でなければなりません.
–ログ 0 プログラムをサイレントにする.
–logfilenameすべてのメッセージをfilenameに記録します.
–log D1 = 0、D2 = filenameコンマ区切りのログメッセージのカスタム制御
以下の例: オプションのリスト. Dnは情報の1つでなければなりません, 警告, または
–ログ情報,エラーエラー. ‘= nameの省略’ メッセージになります
–log warn = 0で、指定されたレベルをコンソールに記録します.
–log error = filenameパラメータが「= 0」の場合, 指定されたログ
レベルがオフになります. パラメータが
‘= filename’, そのレベルのメッセージはファイル名に書き込まれます.
-oディレクトリ復元されたファイルを指定されたディレクトリに保存します.
復元されたファイルはディレクトリに作成されます
「RECOVERED_FILES /」という名前’ デフォルトでは.
最初に行うことは、データが削除された後、削除されたデータが存在するディスクまたはパーティションをアンマウントすることです。.
理由: ルートパーティションが削除された場合, シングルユーザーモードに入る必要があります, そしてこれをマウントします
読み取り専用モードのパーティション. システムはファイルのiノードのポインタを削除するだけなので, まだディスクにある実際のファイル.
ディスクが読み取り/書き込みモードでマウントされている場合、これらの削除されたデータブロックはファイルシステムによって再配置されます, そしてその
データブロックがカバーされていた場合、データは実際に失われます.