Solaris のシステム管理 (上級編)

初期化フェーズでの fsck メッセージ

初期化フェーズでは、コマンド行構文がチェックされます。ファイルシステムのチェックを実行する前に、fsck はテーブルを設定してファイルを開きます。

この節のメッセージは、コマンド行オプション、メモリー要求、ファイルのオープン、ファイルの状態、ファイルシステムのサイズチェック、およびスクラッチファイルの作成によるエラー条件に関するものです。ファイルシステムを修復する間に、どんな初期化エラーが発生した場合も、fsck は終了します。


Can't roll the log for device-name.

DISCARDING THE LOG MAY DISCARD PENDING TRANSACTIONS.
DISCARD THE LOG AND CONTINUE?
エラーの発生原因

UFS ファイルシステムのエラーチェックを行う前に、記録されている UFS ファイルシステムのトランザクションログをフラッシュできなかった。

対処方法

yes と応答する場合には、ファイルシステム操作がログに記録されていても、ファイルシステムに適用されなければ、そのファイルシステム操作は失われる。この場合、fsck は、通常と同様の検査を実行してフェーズ 5 で次の質問が表示される。


FREE BLK COUNT(S) WRONG IN SUPERBLK (SALVAGE)

ここで yes と応答すると、ログに使用したブロックを回収する。次回にログを有効にしてファイルシステムをマウントすると、ログが再作成される。

no と応答すると、ログを保持したまま終了するが、ファイルシステムはマウントできない。

bad inode number inode-number to ginode
エラーの発生原因

inode-number が存在しないため、内部エラーが発生した。fsck は終了する。

対処方法

ご購入先に問い合わせる。


cannot alloc size-of-block map bytes for blockmap
cannot alloc size-of-free map bytes for freemap
cannot alloc size-of-state map bytes for statemap
cannot alloc size-of-lncntp bytes for lncntp
エラーの発生原因

内部テーブル用のメモリー要求に失敗した。fsck は終了する。このメッセージは、即座に処理しなければならない重大なシステム障害を示す。他のプロセスが大量のシステム資源を使用していると、このエラー条件が発生することがある。

対処方法

他のプロセスを終了すると問題を解決できることがある。解決できない場合は、ご購入先に問い合わせる。

Can't open checklist file: filename
エラーの発生原因

ファイルシステムの検査リストファイル filename (通常は /etc/vfstab) を開いて読み込めない。fsck は終了する。

対処方法

ファイルの有無と、そのアクセスモードで読み取りが可能かどうかを検査する。

Can't open filename
エラーの発生原因

fsck はファイルシステム filename を開けなかった。対話形式で実行している場合、fsck はこのファイルシステムを無視し、次に指定されたファイルシステムの検査を続ける。

対処方法

そのファイルシステムの raw デバイスファイルに読み取り、または書き込みができるかどうかをチェックする。


Can't stat root
エラーの発生原因

fsck はルートディレクトリに関する統計情報要求に失敗した。fsck は終了する。

対処方法

このメッセージは、重大なシステム障害を示す。ご購入先に問い合わせる。


Can't stat filename
Can't make sense out of name filename
エラーの発生原因

fsck はファイルシステム filename に関する統計情報要求に失敗した。対話形式で実行している場合、fsck はこのファイルシステムを無視し、次に指定されたファイルシステムの検査を続ける。

対処方法

ファイルシステムの有無とそのアクセスモードをチェックする。


filename: (NO WRITE)
エラーの発生原因

-n オプションが指定されているか、fsck はファイルシステム filename を書き込み用に開けなかった。fsck を非書き込みモードで実行中であれば、診断メッセージはすべて表示されるが、fsck は何も修正しない。

対処方法

-n を指定しなかった場合は、指定したファイルのタイプを検査する。通常ファイル名の可能性がある。


IMPOSSIBLE MINFREE=percent IN SUPERBLOCK (SET TO DEFAULT)
エラーの発生原因

スーパーブロックの最小容量が 99 パーセントを超えているか、0 パーセント未満である。

対処方法

minfree パラメータをデフォルトの 10 パーセントに設定するには、デフォルトプロンプトから y と入力する。エラー条件を無視するには、デフォルトプロンプトから n と入力する。


filename: BAD SUPER BLOCK: message
USE AN ALTERNATE SUPER-BLOCK TO SUPPLY NEEDED INFORMATION;
e.g., fsck[-f ufs] -o b=# [special ...]
where # is the alternate superblock.  See fsck_ufs(1M)
エラーの発生原因

スーパーブロックが破損している。

対処方法

次のいずれかのメッセージが表示される。


CPG OUT OF RANGE
FRAGS PER BLOCK OR FRAGSIZE WRONG
INODES PER GROUP OUT OF RANGE
INOPB NONSENSICAL RELATIVE TO BSIZE 
MAGIC NUMBER WRONG 
NCG OUT OF RANGE 
NCYL IS INCONSISTENT WITH NCG*CPG 
NUMBER OF DATA BLOCKS OUT OF RANGE
NUMBER OF DIRECTORIES OUT OF RANGE
ROTATIONAL POSITION TABLE SIZE OUT OF RANGE
SIZE OF CYLINDER GROUP SUMMARY AREA WRONG
SIZE TOO LARGE 
BAD VALUES IN SUPERBLOCK

代替スーパーブロックを使用して fsck を再実行してみる。手始めにブロック 32 を指定するとよい。スライスに対して newfs -N コマンドを実行すると、スーパーブロックの代替コピーの位置を調べることができる。-N を指定しないと、 newfs は既存のファイルシステムを上書きするので注意する。


UNDEFINED OPTIMIZATION IN SUPERBLOCK (SET TO DEFAULT)
エラーの発生原因

スーパーブロックの最適化パラメータが OPT_TIME でも OPT_SPACE でもない。

対処方法

ファイルシステム上で処理の実行時間を最小限度まで短縮するには、SET TO DEFAULT プロンプトから y を入力する。このエラー条件を無視するには、n と入力する。