Solaris のシステム管理

ファイルシステムの状態はどのように記録されるか

fsck コマンドは、スーパーブロックに格納された状態フラグを使用して、ファイルシステムの状態を記録します。また、このフラグを使用して、ファイルシステムの整合性をチェックすべきかどうかが判断されます。このフラグはブート時には /sbin/rcS スクリプトによって使用され、コマンド行からは fsck-m オプションを指定した場合に使用されます。fsck-m オプションの結果を無視するのなら、状態フラグの設定に関係なく、すべてのファイルシステムをチェックできます。

表 31-1 に状態フラグを示します。

表 31-1 状態フラグの値

状態フラグの値 

説明 

FSCLEAN

ファイルシステムが正しくマウント解除されていない場合は、状態フラグが FSCLEAN に設定される。FSCLEAN 状態フラグが設定されているファイルシステムは、システムのブート時にチェックされない。

 

FSSTABLE

ファイルシステムはマウントされている (またはされた) が、前回のチェックポイント (sync または fsflush) 以後に変更がなかった。チェックポイントは、通常は 30 秒ごとに発生する。たとえば、カーネルはファイルシステムがアイドル状態かどうかを定期的にチェックし、アイドル状態であれば、スーパーブロック内の情報をディスクにフラッシュさせて FSSTABLE マークを設定する。システムがクラッシュした場合、ファイルシステムの構造は安定しているが、少量のデータが失われる。FSSTABLE マークが付いたファイルシステムは、マウント前のチェックをスキップできる。ファイルシステムの状態が FSCLEAN でも FSSTABLE でもなければ、mount(2) システムコールではファイルシステムは読み取り/書き込み用にマウントされない。

FSACTIVE

ファイルシステムがマウントされ、後から変更されると、状態フラグが FSACTIVE に設定される。ファイルシステムには整合性のなくなったものが含まれていることがある。変更後のメタデータがディスクに書き込まれる前に、ファイルシステムに FSACTIVE マークが付けられる。ファイルシステムが正常にマウント解除されると、状態フラグは FSCLEAN に設定される。FSACTIVE フラグが設定されたファイルシステムは、整合性がないので、fsck でチェックしなければならない。

FSBAD

ルート (/) ファイルシステムが、状態が FSCLEAN でも FSSTABLE でもないときにマウントされると、状態フラグが FSBAD に設定される。カーネルは、このファイルシステムの応対を FSCLEAN または FSSTABLE に変更しない。ルート (/) のファイルシステムにブートプロセスの一部として FSBAD フラグが設定されると、読み取り専用としてマウントされる。row のルートデバイス上で fsck を実行できる。その後で、ルート (/) ファイルシステムを読み取り/書き込みとしてマウントし直す。

表 31-2 は、状態フラグが変更される場合を示しています。

表 31-2 状態フラグが変更される場合

fsck の前

fsck の後

 

 

 

 

新しい状態  

 

初期状態

エラーなし

すべてのエラーを修正済み

エラーが未修正

不明 

安定 

安定 

不明 

有効 

安定 

安定 

有効 

安定 

安定 

安定 

有効 

クリーン 

クリーン 

安定 

有効 

不良 

安定 

安定 

不良