IA リリースのインストール時に Adaptec AHA-154x Cx SCSI HBA を使用すると、MDB デバイスプローブ処理中に、プローブがカードを正しく識別したあと、「failed to initialize adapter」というメッセージが表示されることがあります。このエラーの原因はさまざまですが、どの場合もカードの不適切な設定がエラーの原因です。
この問題を解決するためには、起動時に Ctrl-A を押し、154x BIOS 構成ユーティリティを使用します。「Configure/View Host Adapter Settings」オプションを選択してから、F6 キーを押してアダプタを出荷時のデフォルト設定に戻します。
これを行なった後、該当する場合は『Solaris 8 デバイスの構成 (Intel 版)』または『Solaris 2.4 x86 Driver Update Guide』に記載されている指示どおりにアダプタを再設定します。アダプタが DMA 6 を使用する設定になっていることが特に重要です。デフォルトでは DMA 5 に設定されるので、変更する必要があります。
GUI (またはコマンド行) からポリシーをインストールするとき、次のエラーメッセージが表示されます。
default.W: Security Policy Script generated into default.pf default: Compiled OK. Installing Security Policy default on all.all@lab-netra Failed to Load Security Policy: Invalid argument <-------------- !! Installing Security Policy on localhost(localhost) failed |
ポリシーのロードを truss すると、次のメッセージが表示されます。
truss -o /tmp/truss -f -vall -rall -wall /etc/fw/bin/fw /etc/fw/conf/default.W |
次のコードは truss の最後近くの部分です。
1226: open("/dev/fw0", O_RDWR|O_NONBLOCK) = 7 1226: ioctl(7, 0xC0C07A18, 0xEFFFBCA0) Err#22 EINVAL |
この問題は、FireWall-1TM の起動後に新しい Ethernet インタフェースを誰かが「編集」または構成 (つまりシステムの起動後にマニュアルでインタフェースを編集) したことが原因です。
このエラーを解消するには、起動時にインタフェースが自動的に構成されるよう構成し (/etc/hostname.qe0 ファイルを作成するなど)、システムを再起動します。
また次のような解決方法もあります。
/etc/fw/bin/fwstop # Stop firewall modinfo | grep fw # Get kernel module ID 85 f5e19000 3cc0c 51 1 fw (fw) modunload -i 85 # Unload kernel module /etc/fw/bin/fwstart # Restart firewall |
これでポリシーは正しくインストールされます。
# ./fw load ../conf/default.W default.W: Security Policy Script generated into default.pf default: Compiled OK. |
FDDITM 5.0 カードを使用して、ネットワーク経由で Ultra を起動している時にこのメッセージが表示されます。
Setenv auto-boot? を false に設定します。
システムをリセットします。
FDDI カードを起動します。
コマンド行から OpenWindows を起動すると、Solaris の「開始 (Welcome)」画面に次のエラーメッセージが表示されます。fbconsole: ioctl SRIOCSREDIR: Device Busy
OpenWindows に入ると、cmdtool -C の起動時に、バックグラウンドウィンドウに次のメッセージが表示されます。
SYSTEM WARNING: Object 0x340f8, Device busy, ioctl SRIOCSREDIR returned -1, attempt to make tty the console failed (Tty package) |
OpenWindows が (「&」の使用により) バックグラウンドで開始された可能性があります。OpenWindows を終了し、フォアグラウンドで次のコマンドを実行します。 /usr/openwin/bin/openwin
これで解決できない場合は、デーモンまたはプロセスがコンソールを「ホールド」している可能性があります。コマンド fuser /dev/console を入力してください。
プロセス ID のリストが返されます。これらのプロセスを調べ、アプリケーションがコンソールをホールドしていないか調べてください (ps(1) コマンドが便利です)。
このメッセージは、フロッピーディスクドライバ fd(7) がフロッピーディスクのラベルを読めないことを示すために、システムコンソールに表示されます。通常、新しいフロッピーディスクがフォーマットされていないか、またはフォーマット済みのフロッピーディスクが壊れていることが原因です。このメッセージは、多くの場合、volcheck(1) の実行後に read failed と bad format のメッセージとともに表示されます。
フロッピーディスクにデータが入っていないことが明らかな場合は、fdformat -d を実行して DOS 形式でフォーマットします (UFS 形式でフォーマットしてもかまいませんが、大部分のシステムでは使用できません)。フロッピーディスクがフォーマット済みの場合は、修復不可能なほどの損傷がなければ書き込めます。
ファイル記述子が、開いていないファイルを参照しているか、あるいは書き込み専用に開かれているファイルに読み取り要求をしたかのどちらかです。
このエラーの記号名は、EBADFD、errno=81 です。
既存ファイルの名前が、不適切なコンテキストで記述されています。たとえば、csh(1) noclobber オプションが設定されている場合、既存ファイルへのリンクの確立または上書きはできません。
ディレクトリ内のファイル名を調べてから、別の名前でもう一度実行するか、あるいは既存ファイルの名前を変更または削除してから再度実行します。
このエラーの記号名は、EEXIST、errno=17 です。
これはプログラミング上の問題であり、避けられない場合があります。
ユーザーにできるのは、プログラムを再起動して、デッドロックが再現しないように期待することだけです。
ファイルロックサブシステムで、2 つのプロセスが 1 つのロックを同時に変更しようとしました。あるいは、マルチスレッドサブシステムで、2 つのスレッドがデッドロック状態になり、続行できませんでした。スレッドライブラリを使用するプログラムがこのエラーを検出した場合は、プログラムはデッドロックしたスレッドを再起動しなければなりません。
このエラーの記号名は、EDEADLOCK、errno=56 です。
指定したファイル名の文字数が多すぎます。
ファイル名またはパス名の構成要素が長すぎる場合は、短い名前を考えてください。パス名全体が PATH_MAX の文字数よりも長い場合は、中間ディレクトリに変更してから、短いパス名を指定します。短い名前を付けた別のファイルに書き込まない限り、新規に作成したデータは失われます。
UFS または NFS マウントの UFS ファイルシステムで、パス名の構成要素の長さが MAXNAMLEN の文字数 (255) を超えたか、またはパス名全体の長さが PATH_MAX の文字数 (1024) を超えました。あるいは、System V ファイルシステムで、非短縮 (no-truncation) モードが有効になっているにもかかわらず、パス名の構成要素の長さが NAME_MAX の文字数 (14) を超えました。これらの値は、/usr/include/limits.h ファイルに定義されています。
このエラーの記号名は、ENAMETOOLONG、errno=78 です。
このエラーメッセージはログイン時に表示されます。メッセージ「No utmpx entry」が表示されてログインが失敗します。
「No utmpx entry」を参照してください。
fsck(1M) コマンドがファイルシステムのチェックを終え、クリーンな状態であると判断しました。しかし、ファイルシステムのスーパーブロックは、ファイルシステムに「ダーティー」な部分が残っていると見なしています。
ファイルシステムが十分に修復されたと思う場合は、「YES」と答えてファイルシステムにクリーンのマークを付けます。
「ダーティーな」ファイルシステムのさまざまなタイプを /usr/include/sys/fs/ufs_fs.h に列挙してあります。これには、FSACTIVE、FSBAD、FSFIX、FSLOG、FSSUSPEND などが含まれています。
スーパーブロックの詳細については、『Solaris のシステム管理 (第 1 巻)』のファイルシステムの完全性チェックに関する節を参照してください。AnswerBook のオンラインマニュアルを使用している場合は、「bad superblock」 と入力し検索文字列として使用します。
システム上で開いているファイルが多すぎるため、カーネルのファイルテーブルがいっぱいになりました。一時的に、これ以上のファイルは開くことができません。この状態のときに作成されたデータは失われる恐れがあります。
多くの場合は、待っているだけで、ファイルを閉じる時間をシステムに与えることになります。ただし、このメッセージが頻繁に表示される場合は、カーネルを再構成して、開くことができるファイルの数を増やしてください。ファイルテーブルのサイズを大きくする場合は、/etc/system ファイルにある MAXUSERS の値を大きくします。デフォルトの MAXUSERS 値は、M バイト単位のメインメモリー量から 2 を引いたものです。
このエラーの記号名は、ENFILE、errno=23 です。
ファイルのサイズが、ulimit(1) で指定された制限、またはファイルシステムがサポートしている上限を超えました。この状態のときに作成されたデータは失われる恐れがあります。
C シェルの場合は、limit(1) コマンドを使用してデフォルトのファイルサイズを表示または設定します。Bourne シェルまたは Korn シェルの場合は ulimit -a コマンドを使用します。ファイルサイズが無制限であるとシェルが判断した場合でも、実際には FCHR_MAX (通常は 1 G バイト) がシステム上の制限です。
このエラーの記号名は、EFBIG、errno=27 です。
/tmp/.removable ディレクトリを他のユーザーが所有し、1777 モード以外になっていると、ファイルマネージャーはこのメッセージを発行し起動できません。たとえば、複数のユーザーが 1 台のワークステーションを共用している場合は、このようになることがあります。
本来の所有者が chmod(1) によってこのファイルのモードをデフォルトの作成モードである 1777 に戻します。ワークステーションをリブートしても、この問題は解決します。
これは既知の問題であり、Solaris 2.4 リリースで修正されました。
フェーズ 5 の間に、fsck(1M) が、ファイルシステム内の空きブロックの実際の数がスーパーブロックの空きブロックの数と一致しないことを検出しました。df(1M) コマンドは、ファイルシステム容量の計測時にこの空きブロックカウントにアクセスします。
通常、これらの質問にすべて「YES」と答えても、ファイルシステムに悪影響を与えることはありません。
スーパーブロックの詳細は、『Solaris のシステム管理 (第 1 巻)』のファイルシステムの完全性チェックに関する節を参照してください。AnswerBook のオンラインマニュアルを使用している場合は、「bad superblock」と入力して検索文字列として使用します。
fsck(1M) から次のメッセージを受信した場合:
CANNOT READ: BLK 196896 CONTINUE? y THE FOLLOWING SECTORS COULD NOT BE READ: 196896 196897 196898 196899 |
DUMP: Warning - cannot read sector 164016 of /dev/vx/rdsk/newdg/vol02 DUMP: Warning - cannot read sector 164017 of /dev/vx/rdsk/newdg/vol02 DUMP: Warning - cannot read sector 164018 of /dev/vx/rdsk/newdg/vol02 |
次の例に従って、チェックを行ってください。
次のコマンドを実行します。
# fstyp -v /dev/vx/rdsk/newdg/vol02 | head -30 | grep ncg |
ncg 25 size 102400 blocks 95983 |
次にボリュームサイズを確認します。次のコマンドを実行します。
# vxprint -g newdg -vt vol02 |
V NAME USETYPE KSTATE STATE LENGTH READPOL PREFPLEX v vol02 fsgen ENABLED ACTIVE 163840 SELECT |
この問題は、DiskSuiteTM メタデバイスでも発生することがあります。違いは、metastat コマンドでメタデバイスのサイズを確認する必要がある点です。vxprint の場合と同じく、metastat コマンドでは、メタデバイスのサイズをセクターで表示します。
類似したファイルシステムは存在しますが、指定されたパーティションが存在しないため、fsck(1M) コマンドがディスクデバイスを開くことができません。
mount(1M) コマンドまたは format(1M) コマンドを実行して、マシン上で構成されているファイルシステムを確認します。次に、既存のパーティションで fsck(1) を再度実行します。
指定されたファイルシステムが存在しないため、fsck(1M) コマンドがディスクデバイスを開くことができません。
mount(1M) コマンドまたは format(1M) コマンドを実行して、マシン上で構成されているファイルシステムを確認します。次に、既存のファイルシステムで fsck(1M) を再度実行します。
ネームサービスを使用していないユーザーにエラーが発生しました。サービスファイルに異常は認められません。FTP の運用は、root には実行できますが、通常のユーザーには実行できません。
/etc/services ファイルのアクセス権が正しくありません。誰でも読み取りアクセスができるようにアクセス権 (read access) を変更 (644) します。
fwd の実行中に FireWall-1 システムに新しいネットワークインタフェースが追加されると、FireWall-1 カーネルモジュールによりこのエラーメッセージが表示されます。
この問題を解決するには以下のコマンドを実行して、FW カーネルとセキュリティポリシーを再インストールします。
# fw ctl uninstall # fw ctl install # fw fetch localhost |
コンソールに、FW1: Log message queue is full というメッセージが表示されました。
このメッセージログは、FW-1 がすべてのファイアウォールのイベント処理を終了するまでの、そのログをすべて保存するキューです。記録したログが多すぎるとバッファがいっぱいになり、メッセージ「FW1: log message queue is full」が表示されます。通常は、ロード済みのシステムや、さまざまなネットワーク接続を処理するファイアウォールに発生します。
この警告メッセージが表示されなくなるための提案を次に示します。
セキュリティポリシーにおけるログ量を削減する。
ACCOUNTING ロギングのサイズはかなり大きくなります。LONG から SHORT にロギングを削減しても効果があります。
FW カーネルモジュールに割り当てられる内部メモリサイズを増やします。メモリのデフォルトサイズは 524 K です。1 M バイトに増やすには、/etc/system に次の文を追加して再起動します。
set fw:fwhmem=0x100000 |
Excessive Log Grace Period を 0 に設定します。これは Properties -> Logging and Alerting で設定します。変更を有効にするには、セキュリティポリシーの再インストールが必要です。Excessive Log Grace Period を 0 に設定すると、ほぼ同時に受け取った類似のパケットがログに記録されるという問題が生じます。0 でないときは、隠されていました (『Managing FireWall-1 Using the OpenLook GUI』の P.104 を参照)。したがってログに表示されないパケットがなくなり、ログサイズは少し大きくなるかもしれませんが、それを除けば問題はありません。
上位優先順位に Renice fwd を使用します。FW デーモンのデフォルトの優先順位は 0 (ほとんどのプロセスと同様) です。優先順位を上げるには、システムの負荷に応じて負の優先順位を設定します。詳細については、nice(1) のマニュアルページを参照してください。
fwstart コマンドを発行したとき、またはコマンド行から fwm を起動したときに、バージョン 2.1 の FireWall-1 からこのメッセージが表示されます。
これについては次の 2 つの理由が考えられます。
ファイアウォールのモジュールが同じマシン上に制御局なしにインストールされると、コンソール (UNIX の場合) またはイベントログ (Windows NT の場合) にメッセージが表示されます。
メッセージの内容が正しい場合です。これは fwm が起動されておらず、重要なタスクを実行できないことからわかります。考えられる要因の 1 つには、ライセンスの発行先が正しくないホスト ID である場合があります。
ライセンスデーモンがサーバーで実行されていることを確認します。次に次の方法を検討してください。
ケース 1: 現在のメッセージを無視し、2.1c 以上にアップグレードして上記の問題を解消します。
ケース 2: 誤った割り当てのライセンスがないかを確認するために、コマンド hostid(1) を実行します。ユーザーが使用しているホストの hostid が表示されます。
次にコマンド fw printlic を実行します。次のような出力が表示されます。
This is FireWall-1 Version 2.1 Type Expiration Features id-649f152b never stdlight |
Firewall-1 では、SKIP でコード化された接続は一定の回数、それも特に正時近くにドロップされます。たとえば、接続は 10:55 から 11:15 の間はドロップし、11:55 までは正常に機能します。これらのエラーメッセージはコンソールにペアで表示されます。
fwskip_parse_headers: invalid peer n fw_skip_decrypt: cannot parse headers |
これらのエラーメッセージでは n カウンタが基準になります。n カウンタは GMT 時の時間の絶対数です。これは、プレイバック障害に対する対策として、SKIP 計算に組み込みます。暗号化されたパケットをやりとりする 2 つのホストまたはファイアウォールが、GMT 時で同期していない場合、n カウンタが一致せず、上記のエラーになります。
暗号化を行うホストのクロックは、GMT 時から誤差 1 時間以内に合わせてください。