fsck_ffs -b: 代替スーパーブロック2006年04月30日 05時30分09秒

日常的なハードディスクの障害の中で生活をしていると、必然的に fsck の回数が増える。

FreeBSD には、比較的に早い時期から background fsck が開発されたので、起動時の fsck には正しく umount 去れていなかった時も、ルートパーティションを除き、簡単な点検だけで終らせて、システムを開始しする。

background fsck に移行できない場合は、シングルユーザモードに移動し、手動で fsck を起動すれば、ほとんどの場合は問題ない。ルートパーティション以外だったら、少なくても /sbin などのものが使えたり、/usr も問題が無ければ、他のパーティションの復活も他愛も無いことだ。

しかし、今回だけは、そうは問屋が卸さない。 ルートパーティションのスーパーブロックが壊れてしまい、第二ローダが起動すらしない。


FreeBSD/i386 boot
Default: 0:ad(0,a)/boot/loader

と出てくるところである。ここで、ad(0,3,a) などとやっても、

No UFS at boot
no super block

などと出て、起動しない。しかし、慌てる必要には早すぎる。このようなときのために、dual boot にしているのだから。フロッピーディスクや CD-ROM から起動しても、構わない。

そこで、もう一つのルートパーティションから起動し、代替スーパーブロックを -b で指定して、fsck を試す。

-b Use the block specified immediately after the flag as the super block for the file system. An alternate super block is usually located at block 32 for UFS1, and block 160 for UFS2.
man fsck_ffs に、載っている。

fsck_ffs -b 160

そのまま、やった。スーパーブロックも修復され、次回からは、問題なく起動できた。

通常に fsck を使うだけでは復活できない程、fs が壊れるのは珍しいが BSD 使いなら fsck_ffs -b は押さえておきたい。これを試す前に、newfs & restore に逃げるには早すぎる。

実は、この時に使ったルートパーティションに不良セクタがあるので、少々恐かったのは内緒だ。起動には全然関係ないファイルだが、死のファイルがあった。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2006/04/25/341742/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。