私の母は、事故ごとにいくつかの重要なファイルを/ tmpに置いています。今、もちろん、彼らはなくなっています。
これは昨日起こりました(マシンの2回の起動以降)
ファイルの削除を取り消そうとしています。それらは/ tmpにあり、これは/の残りと同じパーティションにあったので、マウントされたシステムで実行するツールが必要です(またはlivecdを使用できます...)
今、ダウンロードしたばかりのsystemrescuecdでtestdiskを試しています。/tmpからいくつかのファイルを取得できますが、すべてではありません。 (それは正しいツールですか?それらの「赤い」ファイルとは正確に何ですか?それらの一部のみが回復可能ですか?)
extundelete
を使用することもできます
最初に、ファイルが削除されたファイルシステムをアンマウント(umount
)します。
次に、 章ファイルを削除した場合の対処方法 を読みます。
extundelete
は、古典的なUbuntuリポジトリからインストールできます。
Sudo apt-get install extundelete
または、 最新バージョン をダウンロードしてコンパイルすることもできます:
cd ~/Download
tar -xf extundelete-*.*.*-.tar.bz2 #Replace *.*.* by the version
cd extundelete-*.*.*
Sudo apt-get install e2fslibs-dev #Required for compilation
./configure
make
Sudo make install
extundelete --version #Should be your *.*.* version
使用例:削除されたすべてのファイルをディレクトリImages
から新しく作成されたディレクトリrestore
に復元します
Sudo extundelete --restore-directory Images/ -o restore /dev/sda3
ファイルXXXX
が次の形式で表示される場合、悪いニュースです。
Unable to restore inode NNN (Images/XXXX): Space has been reallocated.
復元されたすべてのファイルを表示します(ファイルを探します):
find restore -name '*'
ファイルをバックアップし、この一時ディレクトリを削除しますrestore
cp restore/Images/XXXX MY_BACKUP_DIRECTORY
Sudo rm -rf restore
特にEXTファイルシステムでのデータリカバリは、ライブCDまたは削除を取り消そうとしているパーティションに依存しない他のシステムから試行する必要があります。ディスクを読み取り専用としてアンマウントまたは再マウントすると、復旧作業に非常に役立ちます。
ほとんどの場合、dd
または同様のツールを使用してパーティションまたはディスクのイメージを作成しようとするため、ディスク自体で作業することはありません。
dd if=/dev/sd[xx] of=/media/backup_drive/recovery.img
画像を取得したら、 ext3grep
などのツールを使用して、探しているファイルを見つけて見つけることができます。試すことができるさまざまなスイッチがたくさんありますが、これは良いスタートかもしれません:
ext3grep --restore-file 'tmp/moms-file.txt' recovery.img
ext3grep
ユーティリティは、ファイルの名前がわからない場合にファイルシステムを検索するいくつかの異なる方法も提供します。検索のさまざまな方法については、ext3grep --help
を確認してください。
私はext4magicを次のように使用することを好みました。
Sudo ext4magic /dev/sdc3 -r -f $USERl/Documents/ -d /tmp/local/tmp/
自分でシンボリックリンクを解決する必要があることに注意してください
参照:
EXTディレクトリデータのデータブロックを解析します。
EXT4の詳細なドキュメントは次の場所にあります。
Perlスクリプトをダウンロードします
git clone https://github.com/halpomeranz/analyzeEXT
保証はありませんが、削除されたファイルシステムを再構築できる場合があります。
Ext4magicまたはextundeleteを使用してcrontabファイルを回復できませんでした。
Debianでは、rootのcrontabは次のとおりです。
/var/spool/cron/crontabs/root
しかし、次のコマンドを使用することで、ログからcrontabを少なくとも手動で回復することができました。
grep CRON /var/log/syslog.* -i| awk -F " CMD " {'print $2;'} |sort | uniq
実行されたcronジョブのみを出力します(タイミングは出力しません)が、少なくともこれは最初から始めるよりもはるかに多くのことができます。
特定のcronジョブが実行される頻度を覚えていない場合は、完全なログを取得してください。 syslog.1これにより、1日の実行回数がカウントされます。
grep CRON /var/log/syslog.1 -i| awk -F " CMD " {'print $2;'} |sort | uniq -c |sort -n