新しいハードウェアをサポートしていない旧バージョンのオペレーティングシステムを実行したり、新しいハードウェア用に構成されていないオペレーティングシステムを実行したりすると、このメッセージが表示されることがあります。また、DSIMM が正しくインストールされていない場合やディスク障害がある場合にも表示されることがあります。
新しいハードウェアまたはマシンアーキテクチャーをサポートしているバージョンのオペレーティングシステムにアップグレードします。たとえば、(sun4c カーネルアーキテクチャーを持つ) SPARCstation 2 から (sun4m カーネルアーキテクチャーを持つ) SPARCstation 20 にアップグレードするには、オペレーティングシステムのアップグレードまたは再構成が必要です。
アップグレードの詳細については、『Solaris 移行ガイド』のシステムとデバイス構成に関する節を参照してください。
これは、ほぼ必ずシステムパニックを引き起こす不良トラップの一種です。不良トラップメッセージの後にこのメッセージが表示された場合は、システムのテキストまたはデータへのアクセス障害が発生している可能性が高いです。造 不良トラップメッセージがなかった場合は、ユーザーのテキストまたはデータへのアクセス障害を示します。ブート時以外にこの障害が発生すると、データが失われる恐れがあります。
マシンがリブート可能であることを確認してから、/var/adm/messages ログファイルを調べて障害の原因を探します。
造 詳細については「BAD TRAP」メッセージを参照してください。
プログラミングのデッドロック状態が検出され、回避されました。
システムがデッドロックを検出し回避しなかった場合は、ソフトウェアの一部がハングします。そのプログラムを再度実行してください。デッドロックは再現しない場合があります。
このエラーは、通常、ファイルとレコードのロックに関連しています。ただし、mutex、セマフォ、条件変数、読み取り/書き込みロックが対象になる場合もあります。
このエラーのシンボルの名前は、EDEADLK、errno=45 です。
『System Interface Guide』のデッドロック処理に関する節を参照してください。また、『Multithreaded Programming Guide』のデッドロック回避に関する節も参照してください。
トランスポート終端での操作に必要なアドレスが指定されていません。宛先アドレスが必要です。
このエラーのシンボルの名前は、EDESTADDRREQ、errno=96 です。
シェルスクリプト setuid および setgid が実行できません。「/dev/fd/3: /dev/fd/3: cannot open」のようなエラーメッセージだけが返されます (/dev/fd/ の次の数字は 3 とは限りません)。スクリプトの最初の行は正しくシェルを開始しましたが、スクリプトの入っているファイルシステムが nosuid オプションでマウントされていません。
シェルスクリプト上で truss を実行すると、open(2) のコールが失敗し、エラー番号 6 (ENXIO) が発生することがわかります。
open("/dev/fd/3", O_RDONLY) Err#6 ENXIO |
シェルスクリプト setuid および setgid は、/dev/fd 内のファイル記述子を使用します。/dev/fd の内容は Solaris 2 のファイル記述子ファイルシステム (fdfs) であって、フロッピーディスクとは接続がありません。
fdfs が /dev/fd としてマウントされていることを確認します。次にマシンを再起動する前に、/etc/vfstab の内容を確認してください。次とまったく同じ行があるはずです (先頭にコメント記号はありません)。
fd - /dev/fd fd - no - |
root として次のコマンドを実行すると、再起動しなくても /dev/fd を再マウントできる場合があります。
# mount fd /dev/fd |
/dev/fd が何のためのものかを理解せずに、fdfs (ファイル記述子ファイルシステム) をマウントする /etc/vfstab 内のエントリをコメントにする管理者もいます。シェルスクリプト setuid または setgid を実行しようとして、はじめて誤りに気付く場合があります。
Ultra 450 システムで CD-ROM を取り出そうとしましたが、eject cdrom コマンドは失敗し、エラーメッセージが表示されます。
これは CD-ROM がコントローラ 0 ではなくコントローラ 1 にあるためです。eject(1) コマンドの場合、cdrom の「別名」は /dev/rdsk/c1t6d0s2 です。Ultra 450 の場合、CD-ROM は /dev/rdsk/c1t6d0s2 です。このため、cdrom という指定は無効です。
次のコマンドを代わりに使用します。
# eject cdrom0 |
# eject /dev/rdsk/c1t6d0s2 |
注: システムの正面パネルで、CD-ROM トレーがさえぎられていないことを確認してください。トレーが物理的にさえぎられて開かないと、eject(1) コマンドが中断しているように見えます。
マウント済みのデバイスにマウントしようとしたか、またはアクティブなファイル (オープンファイル、カレントディレクトリ、マウントポイント、実行中のプログラムなど) が入っているデバイスへのマウントを解除しようとしました。また、このメッセージは、すでに使用可能状態になっているアカウンティングを使用可能にしようとした場合にも表示されます。
アクティブプロセスを含むデバイスのマウントを解除するには、そのマウントポイントの下にあるすべてのファイルを閉じ、そこから開始しているプログラムがあれば終了し、ディレクトリをその階層から変更します。次に、もう一度マウントを解除します。
mutex、セマフォ、条件変数、読み取り/書き込みロックは、このエラー状態を設定することによって、ロックが保持されていることを示します。
このエラーのシンボルの名前は、EBUSY、errno=16 です。
eject cdrom を実行すると、device busy メッセージが表示されました。これには複数の問題がからんでいる可能性があります。デバイスから CD を取り出すためには、次のチェックと操作を実行します。
カレントディレクトリが CD の中ではないことを確認します。
% cd % eject cdrom |
ステップ B: root として次のコマンドを実行します。
# cd /etc/init.d # ./volmgt stop # eject cdrom |
# ./volmgt start |
ステップ C: root として次のコマンドを実行します。
# fuser /cdrom |
# ./volmgt stop # ps -ef | grep vold |
# eject cdrom |
# cd /vol |
ステップ D: 最後に 3 つの方法があります。1) 再起動します。2) CD ドライブが外付けの場合は、ドライブの電源を入れて、取り出しボタンを押します。3) CD-ROM が外付けで、前述の 2 つの方法が失敗した場合は、取り出しボタンの右側の小さな穴に、細いまっすぐな棒状のものを挿入して、手動で CD-ROM を取り出します。
このファイルシステムは正しく設定されていないか、またはハードディスクに障害がある可能性があるため、システムは自動的にファイルシステムを整理 (補修) できません。このメッセージは、データが損傷している恐れがあるため、手動で fsck(1M) を実行するように求めています。
fsck を実行して該当するファイルシステムを整理します。正しい手順については、「/dev/rdsk/int: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.」メッセージを参照してください。
ブート時に /etc/rcS スクリプトは、fsck(1M) コマンドを実行して、/etc/vfstab で 「fsck」とマークされたファイルシステムの完全性をチェックします。ファイルシステムを自動的に修復できない場合、fsck(1M) はブート手順を中断して、このメッセージを表示します。この状態になった fsck(1M) は、ファイルを 1 つ以上失わずにファイルシステムを修復できないため、判断を管理者に任せます。データが損傷している恐れがあります。
まず、ファイルシステムで fsck -n を実行し、存在する障害の数と種類を調べます。次に、fsck(1M) を再度実行してファイルシステムを修復します。ファイルシステムの最新のバックアップがある場合は、通常、fsck(1M) からのすべての質問に「y」と答えることができます。後で参照できるように、問題のあるファイルと i ノード番号をすべて記録として残しておくことを推奨します。ユーザーが自分で fsck(1M) を実行するには、ブートスクリプトが推奨するオプションを指定します。たとえば、次のようにします。
# fsck /dev/rdsk/c0t4d0s0 |
バックアップがない場合は、fsck(1M) の実行を専門家に任せてください。
ファイルチェックの詳細については、『Solaris のシステム管理 (第 1 巻)』のファイルシステムの完全性チェックに関する節を参照してください。
rmdir(1) によるディレクトリ削除などのディレクトリ操作は、空ディレクトリに対してのみ実行できます。
ディレクトリを削除するには、まず、このディレクトリに含まれているファイルをすべて削除します。空でないディレクトリ階層を削除する簡単な方法は、rm -r コマンドを使用することです。
このエラーのシンボルの名前は、ENOTEMPTY、errno=93 です。
システムの起動時に、「disk0 not unique」と表示されます。カーネルを読み込む前にエラーが発生します。
disk0 について複数の devalias エントリがあります。OK プロンプトで devalias を使用し、エントリを表示します。
重複したものを削除するために、OK プロンプトで次のコマンドを実行します。
nvunalias disk0 |
ユーザーファイルシステムでユーザーのディスク制限を超過しました。通常、制限を超えてファイルが作成されたか、またはファイルが制限よりも大きくなったことが原因です。これは、磁気ディスクで発生することがほとんどで、光ディスクでは発生しません。この状態の発生後に作成されたデータは失われます。
ユーザーがファイルを削除して、ディスクの使用度を制限以下にするか、またはサーバ管理者が edquota(1M) コマンドを使用して、ユーザーのディスク制限を緩和します。
このエラーのシンボルの名前は、EDQUOT、errno=49 です。
Sunpc 4.1 パッケージを追加し、その次に必要なパッチ (102924) を追加しました。sunpc_install を実行しようとすると、エラーメッセージが表示されます。prtconf(1M) では、ドライバが接続されていないことが示され、modinfo(1M) では 4 つのモジュールが表示されます。
パッケージを削除し、パッチを除去しました。その後、インストールし直しましたが、同じエラーが表示されます。
パッケージを削除する Sunpc は、以前にシステムにインストールされています。pkgrm(1M) コマンドでパッケージの削除を実行しても、コンポーネントがすべて削除されたわけではありません。pkgrm(1M) は sunpc_install スクリプトの行なった変更を認識しないからです。
この問題を解決するには、/etc/devlink.tab ファイル、/etc/driver_aliases ファイル、および /etc/rc2.d/S10storekernname ファイル内の Sunpc に関するセクションを削除してから、パッケージを再インストールする必要があります。
SSA のディスクドライブでユーザー sys (UID 3) として ufsdump(1M) を実行すると、ufsdump(1M) コマンドは失敗し、このメッセージが表示されます。
SSA のディスク用の ssd「インスタンスパス」のアクセス権が、600 になっています。root でないユーザーがこれらを読めるようにするためには、アクセス権を 0640 にする必要があります。次に例を示します。
# ls -lL /dev/rdsk/c2t0d0s1 crw------- 1 root sys 192,241 Jul 10 1996 /dev/rdsk/c2t0d0s1 |
crw-r----- 1 root sys 192,241 Jul 10 1996 /dev/rdsk/c2t0d0s1 |
ssd:* 0640 root sys |
他のプロセスがテープドライブを開いたままにしているため、ファイルシステムのバックアップ中に dump プログラムがテープドライブを開けません。
テープドライブを開いているプロセスを探して kill(1) するか、または終了するまで待ちます。
# ps -ef | grep /dev/rmt # kill -9 processID |
フェーズ 1 の間に、fsck(1M) が、FILE= の後に指定されたファイルまたはディレクトリに関連する重複ブロックまたは不良ブロックを発見しました。i ノード番号は、(他の情報とともに) I= の後に表示されています。
このファイルまたはディレクトリを削除する場合は YES と答えます。この状態で多数のファイルを削除するとデータが失われるため、バックアップテープからファイルシステムを復元することを推奨します。
ファイルシステムチェックの詳細については、『Solaris のシステム管理 (第 1 巻)』のファイルシステムの完全性チェックに関する節を参照してください。
すでに別の i ノードから取り込まれているブロックを検出すると、fsck(1M) は、重複ブロック番号とそれを含む i ノード (I= の後) を表示します。
fsck(1M) のフェーズ 2 とフェーズ 4 で、これらの不良ブロックをクリアするかどうかを判断します。fsck(1M) による修復を確定する前に、ncheck(1M) コマンドに i ノード番号を渡すと、この i ノードが含まれるファイルを特定できます。
# ncheck -iinum filesystem |
詳細については、『Solaris のシステム管理 (第 1 巻)』のファイルシステムの完全性チェックに関する章を参照してください。