完全に裏目

やってしまった.研究室で使ってる PC のファイルシステムを破損してしまった.

現在 /lost+found からサルベージ中….元々ホームディレクトリに存在していたファイル群は半分くらい復活したが,肝心のプログラムソース (~/local/src に置いてた分) とか 2 年間分の進捗報告資料とかがまだ復活してない.これらを救出できたところで,OS の再インストールほか諸々の再設定は避けられない.Gentoo だと丸 2 日くらいかかるんじゃなかろーか.めんどい….

なぜ破損してしまったのか.

“適切なデュアルディスプレイ環境”というものを構築するために,/etc/X11/xorg.conf を書き直しては /etc/init.d/xdm restart,という作業を繰り返していたところ,X が立ち上がる途中でフリーズしたかのような状態が時々発生したんで,その度に (よろしくないとは思いつつ) ハードウェアリセットしてた.だって何にも映らねーんだからどうしようもねーじゃん.因みに,X -config ~/xorg.conf.new のようにして X を立ち上げようとした場合にも同様の状態になってた.

ふと,「ハードウェアリセットをこんだけの回数繰り返してたら ファイルシステムは大丈夫なんかいな」と思った.ここまでは良い.そう思うまでは良かったが,「じゃあ fsck するか」と,深く考えもせずに,バックアップも取らずに,コマンドライン引数を調べる事もせずに,実に安易に実行してしまったのが問題だった.俺自身がファイルシステムを破壊したようなもんだ.

fsck のせいで /lost+found に移動されリネームされたファイル群から,目的のファイルをどうやってサルベージするのか.

  1. サルベージ対象の計算機で KNOPPIX を起動する
  2. サルベージ対象のパーティションを読み込み専用でマウントする (マウントポイントを /mnt/sda1 とする)
  3. /mnt/sda1/lost+found 以下にあるファイルの所有者を逐一調べる
  4. 所有者が俺のユーザアカウントに一致するファイルを,中身を確認した上で適当な場所にコピーする
  5. (/ramdisk の空き容量がなくなってしまうのは目に見えているんで) 適宜,サルベージしたファイルを適当なサーバに一時的に置かせてもらう
  6. 3~5 を繰り返す

幸運な事に,元のディレクトリ階層が保たれたまま (例えば ~/local/doc/research/slide/slide.tex → /mnt/sda1/lost+found/#1234567/research/slide/slide.tex) だったために 簡単に復活できたものが結構あった.

以下 教訓.

  • fsck を使う場合は十分に注意しましょう
  • 日頃からバックアップを取っておきましょう
  • 今の設定が少々気に入らなくても少しは妥協するということを覚えましょう