![]() |
panic して down したとか、どーしよーもなくなって Stop + A しちゃった
ような場合、 disk が sync されなくて Super Block に不整合が出たような
場合にイケまつ。
具体的には、 OS の起動時に
ミタイなメッセージが表示されて、root の password 入れて Single user mode で起動するか、 Control-D を入力して起動を継続するかっちゅーよーなメッセージ がでたらそのときでつ。
Solaris 7 から ufs logging が実装されて Super Block が壊れにくくなって いるハヅでつが、
ので、修復のコマンドを覚えてしまいましょう。
あ、それと、 disk の Hard 的な故障に起因する場合は、fsck の修復は
効果ナシでつ。
その場合は、 format の repair で代替セクタに置き換える
方法で修復できる可能性がありまつが・・・・。
セクタを置き換えて修復した場合、ファイルが途中でちょん切れの壊れっぱの
可能性がありまつ。
と言うことで。
Read 出来たとしてもアテにはなりません。
fsck が終わったら、 lost+found にファイルが置かれている場合がありまつ。
path の情報が失われたけど、復旧でたッポイようなファイルが収められていまつ。
ファイルをチェックして、正常なら元々あったレポジトリに mv しませう。
fsck は"ファイルシステムの不整合を是正する"のであって、
"修復する" っちゅーのとは違いまつ。
fsck の実行により、結果的には元通りになる場合が殆どでつが、
とゆーわけで、ファイルを壊したくなければこまめな backup しかない
っつーワケでつ。
あと、技術系のサイトとかで fsck を解説しているところを散見しまつ。
その中で、 "backup を確保してから fsck しましょう"的な
事を書いてるライターがいるけど・・・・
解説してくれよ。
マヂで。
不整合を発見したファイルシステムはフツーは mount されていません。
なので、/usr とかが mount されていないと大部分のコマンドが
動かせないことになってしまいまつ。
/usr で super block の不整合が起こるとサイアク。
/usr/sbin/fsck 動かせないし。
とわゆっても、 fsck しないワケにもいかないので、ダメモトでmount してみましょう。
/etc/vfstab に /usr の mount 定義が書いてあれば、
# mount /usr |
で
Solaris 9 アタリから、デフォルトで OS をインストールしたような場合のスライス
構成は、 / と swap しか作らないようになったので、いまどきの Solaris だと、
やらなくてもヨイと思いまつが、知っておいたほうがよいカモってことで・・・
良い子の豆知識だ。
古き良き時代の慣習に従っている良い子のみんなわ、頑なに独立したスライスに /usr
を mount している事でありましょう。
その場合は、 > b sd(0,6,2) と同様のことして fsck を動かしてくれたまへ。
良い子の皆んなならワカルよな?
swap は スライス1 に作るよな?
/ はやっぱスライス0 だよね?
/export/home はスライス7 だよな?
Blocak device には実行できません。
なので、破損したファイルシステムが mount されていた場合は、可能な限り
umount しておきましょう。
# umount /foo/hoge |
でおっけ。
本題の fsck でつが、起動すると、 Super block salvage ? とか y / n を沢山聞いてきて
うっといったらありゃしない。
なので、 fsck 起動時にパラメータを直接与えて勝手にやってもらっちゃいましょう。
# fsck -y /dev/rdsk/device-file |
でつ。
-y のオプションは、 y / n 応答があった場合に、全部 "y"で答える
コトにするオプションでつ。
パラメータのデバイス部分は、 OS の起動時に不整合が発生したデバイス名
が表示されるので、それをメモしておけばよろしいかと。
device-file の部分は、ワイルドカードも使用可能でつ。
対象のファイルシステムが複数あった時は、 /dev/rdsk/c0t0d0s? や、 /dev/rdsk/c0t1*
も指定できます。
ファイルシステムの種類も明示したいのであれば、 #/usr/sbin/fsck -F ufs -y /dev/rdsk/c0t0d0s0
とか指定してね。
復旧の処理はエライ時間がかかりまつ。
disk の容量は大きくなれば、それに比例して時間がかかるようになりまつ。
まぁ、気長に待つしかないのでつが。
fsck が終わったら、
とかして再起動しても良いでつし、直接 mount コマンドでファイルシステム
を mount しても良いでしょう。
あと、 dmesg のメッセージも見てみて、 Hard 的な Error を吐き出していないか
確認すれば、さらに (o^-')b_彡☆GJ! でしょう。