fsckでサルベージ
突然の電源断で CentOS4.4 (x86_64) が正常にシャットダウンできなくなった。
read only うんぬんで各種デーモンの pid が消えない等のエラーが出力される。
異常終了後、サーバを起動させるとオートの fsck が試みられたが失敗。
root のパスワードを入れて手動で対処するよう OS に促された。
そこで root パスワード入力後 fsck 実行。オプション無し。
Enter でデフォルトの Yes 回答を繰り返す。
再起動後、
/lost+found
にデータの残骸がある。
[root@server lost+found]# ls -alth
total 52K
drwxr-xr-x 24 root root 4.0K Jan 9 11:44 ..
-rw------- 1 postgres postgres 6 Jan 7 09:57 #46531638
-rw-r--r-- 1 user user 15K Jan 4 09:36 #7161585
-rw------- 1 postgres postgres 505 Jan 4 09:00 #46531560
-rw-r--r-- 1 user user 407 Jan 4 07:00 #10165485
drwx------ 2 root root 16K Feb 10 2006 .
[root@server lost+found]# file *
#10165485: Non-ISO extended-ASCII text
#46531560: data
#46531638: data
#7161585: Non-ISO extended-ASCII text, with very long lines, with LF, NEL line terminators
バイナリはあきらめて、vi で中身がわかるものだけサルベージ。
その後、すぐバックアップ。