ルートに対してマウント解除せずfsckを実行する方法
fsckはマウントされている状態では実行してはならないのはLinuxの常識らしい。*1
では、ルートに対してfsckをかけるにはどうしたらよいのか?
わからなかったので調べてみた。
何回マウントする毎に、あるいは何日ごとにfsckをかけるというオプションがあるらしいので、これを使うのが良いらしい。
そこで、ルートとしてマウントされる論理ボリュームには、どんな設定がされているのか見てみた。
すると、回数は-1、日付は無期限になっていて、つまり、fsckはしない、という設定になっている。(これはCentOS5.2デフォルトの設定だと思う。)
この意図するところがわからないのだが、つまりfsckは再起動しても永久にかかることはなさそうだ。
では、他にWindowsのchkdskのようにお手軽に確認する方法はないものだろうか?(あれもシステムドライブは起動時にチェックするしかないけれど。)
レスキューモードで立ち上げれば、むろん可能だが、論理ボリュームを使っているのならばスナップショットを使うことで確認はできるようである。
lvcreate --snapshot --size=1G --name=snap /dev/VolGroup00/LogVol00 fsck -f /dev/VolGroup00/snap
こんな感じでスナップショットを作れば、それに対してチェックはできるようである。
ただし、仮に修復してもsnapshotへの書き込みは本体へは反映されないので、その場合はレスキューモードでやることになるのだと思う。
とりあえず、これでシステムを止めずに確認することはできそう。*2
サイズの大きなボリュームに対して起動時にfsckをかけるのはbad ideas、やるならスナップショットをとってやれ、と、どこかの掲示板に書かれていたが、たぶん、CentOS5.2の標準でそうなっているのは、そうゆう理由なのだと思う。