2009年9月18日

[Apache-Users 7428] Re:誤消去してしまった秘密鍵の復元

** Apache ユーザーズメーリングリスト **
** 注意:このメールへの返信は Apache-Users へ行きます **

はじめまして、本田と申します。

まだ、ファイルをOpen中ならこんな方法でも
回復できますよ!

---------------------------------

WhiteBox Linux Enterprise Linux 4 (WBEL4)


■ 削除したファイルをlsofで復元する


ファイルを間違って削除してしまったときのショックはよく分かる。誰にでもあり得る失敗だ。
だが、失われたファイルを取り戻す簡単な方法はある。
しかも、それはどの標準Linuxシステムでも使える方法だから、覚えておいて絶対に損はない。

 例えば、あなたが午後いっぱいを費やして製作したオーディオファイルの再生を楽しみながら、
「やあ、こいつはすごい音だ! こっちに移動しておくとしよう」と思ったとする。
そのとき、潜在意識が違和感を唱えるのだ。「ええと、mvだっけ、rmじゃないのか?」……やっちまった。
そのショックはよく分かる。誰にでもあり得る失敗だ。
だが、失われたファイルを取り戻す簡単な方法はある。
しかも、それはどの標準Linuxシステムでも使える方法だから、覚えておいて絶対に損はない。

 簡単に説明すると、Linuxファイルシステム上にあるように見えるファイルは、
実際はinodeへのリンクにすぎない。

inodeには、ファイルのあらゆるプロパティ(アクセス権や所有権など)のほか、
ファイルの中味が実際に存在するディスク上のデータブロックのアドレスも記録される。

rmコマンドでファイルを削除すると、ファイルのinodeを指すリンクは削除されるが、
inodeそのものは削除されない。

削除した時点で、ほかのプロセス(オーディオプレーヤーなど)でファイルがまだ開かれている場合もある。
このようなプロセスがすべて終了し、すべてのリンクが削除されるまで、
inodeとそれに関連づけられたデータブロックが書き込みの対象となることはない。

 このように実際のファイルが削除されるまでタイムラグがあることは、素早い復元の成功にとって重要なポイントだ。
ファイルを開いているプロセスがあれば、データはまだ存在する。

例えディレクトリリストからファイルが消えてしまっていても。 復元できる可能性がある。


■復元方法

1.TEST用ファイル(/tmp/test)の作成

[hoge ~]$ echo "TEST" > /tmp/test

[hoge ~]$ less /tmp/test
TEST

2.TEST用ファイル(/tmp/test)を使用中(OPEN中)にする
[hoge ~]$ less /tmp/test
TEST
/tmp/test (END)

終了させずにこのままの状態にする

3.TEST用ファイル(/tmp/test) の削除

(2.) のまま別ターミナルを起動し、ファイルを削除

[root tmp]# rm test
rm: remove 通常ファイル `test'? y

[root tmp]# ls -la test
ls: test: そのようなファイルやディレクトリはありません

4.TEST用ファイル(/tmp/test) を使用しているプロセスの特定

[root tmp]# lsof | grep test
less 9451 shin 4r REG 253,0 5 16390 /tmp/test

5.OPENしているプロセスんpファイルディスクリプタの確認

[root tmp]# ls -l /proc/9451/fd/
0 1 2 3 4

[root tmp]# ls -l /proc/9451/fd/4
lr-x------ 1 shin apache 64 5月 23 01:25 /proc/9451/fd/4 -> /tmp/test (deleted)

6.ファイルの復元

[root tmp]# cp /proc/9451/fd/4 /tmp/test2

[root tmp]# cat /tmp/test2
TEST

/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
from s.honda(shin@xxxxx)
/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
--
入退会・変更・配送一時停止は以下へ
http://www.apache.jp/mailman/listinfo/apache-users


投稿者 xml-rpc : 2009年9月18日 13:51
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/88672
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。