誰かがコメントで提供したリンクは、おそらくあなたの最高のチャンスです.
Linux debugfs ハック:ファイルの削除を取り消す
少し威圧的に見えますが、その記事は実際にはかなり簡単です。一般的な手順は次のとおりです。
<オール>debugfs を使用してファイルシステムのログを表示する
$ debugfs -w /dev/mapper/wks01-root
debugfs プロンプトで
debugfs: lsdel
サンプル出力
Inode Owner Mode Size Blocks Time deleted
23601299 0 120777 3 1/ 1 Tue Mar 13 16:17:30 2012
7536655 0 120777 3 1/ 1 Tue May 1 06:21:22 2012
2 deleted inodes found.
debugfs でコマンドを実行
debugfs: logdump -i <7536655>
ファイルの inode を決定
...
...
....
output truncated
Fast_link_dest: bin
Blocks: (0+1): 7235938
FS block 7536642 logged at sequence 38402086, journal block 26711
(inode block for inode 7536655):
Inode: 7536655 Type: symlink Mode: 0777 Flags: 0x0 Generation: 3532221116
User: 0 Group: 0 Size: 3
File ACL: 0 Directory ACL: 0
Links: 0 Blockcount: 0
Fragment: Address: 0 Number: 0 Size: 0
ctime: 0x4f9fc732 -- Tue May 1 06:21:22 2012
atime: 0x4f9fc730 -- Tue May 1 06:21:20 2012
mtime: 0x4f9fc72f -- Tue May 1 06:21:19 2012
dtime: 0x4f9fc732 -- Tue May 1 06:21:22 2012
Fast_link_dest: bin
Blocks: (0+1): 7235938
No magic number at block 28053: end of journal.
上記の inode 情報を使用して、次のコマンドを実行します
# dd if=/dev/mapper/wks01-root of=recovered.file.001 bs=4096 count=1 skip=7235938
# file recovered.file.001
file: ASCII text, with very long lines
ファイルは recovered.file.001
に復元されました .
その他のオプション
上記があなたのためではない場合、私は photorec
などのツールを使用しました 過去にファイルを回復するために使用されますが、画像ファイルのみを対象としています。この方法については、次のタイトルの記事でブログに詳しく書いています:
Fedora/CentOS/RHEL でデジタル カメラの SDD カードから破損した jpeg および mov ファイルを復元する方法。
少しのチャンスですが、このスクリプトまたは回答の次の解決策を使用して、削除されたファイルを復元できる場合があります:
#!/bin/bash
if [[ ! $1 ]]; then
echo -e "Usage:\n\n\t$0 'file name'"
exit 1
fi
f=$(ls 2>/dev/null -l /proc/*/fd/* | fgrep "$1 (deleted" | awk '{print $9}')
if [[ $f ]]; then
echo "fd $f found..."
cp -v "$f" "$1"
else
echo >&2 "No fd found..."
exit 2
fi
もう 1 つの便利なトリックがあります。削除したファイルのパターンがわかっている場合は、alt と入力します。 +sys +回答 読み取り専用で再起動して再マウントするには、ライブ CD で grep
を使用します ハードドライブを検索するには:
grep -a -C 500 'known pattern' /dev/sda | tee /tmp/recover
次に /tmp/recover
を編集します 以前のファイルのみを保持します。
UNIX の哲学ですべてがファイルである場合、これを利用する時が来ましたね。
私にとってうまくいったのは、アーチによって与えられたものです(テキストファイルにのみ適用されます):
grep -a -C 200 -F 'Unique string in text file' /dev/sdXN
どこで /dev/sdXN
失われたファイルを含むパーティションです (mount
で確認してください) わからない場合)。
少し時間がかかりますが、まだコミットしていないソース コードを誤って削除してしまったときにうまくいきました!