主要メッセージの手引き

"D"

data access exception

原因

新しいハードウェアをサポートしていない旧バージョンのオペレーティングシステムを実行したり、新しいハードウェア用に構成されていないオペレーティングシステムを実行したりすると、このメッセージが表示されることがあります。また、DSIMM が正しくインストールされていない場合やディスク障害がある場合にも表示されることがあります。

対処方法

新しいハードウェアまたはマシンアーキテクチャーをサポートしているバージョンのオペレーティングシステムにアップグレードします。たとえば、(sun4c カーネルアーキテクチャーを持つ) SPARCstation 2 から (sun4m カーネルアーキテクチャーを持つ) SPARCstation 20 にアップグレードするには、オペレーティングシステムのアップグレードまたは再構成が必要です。

関連項目

アップグレードの詳細については、『Solaris 移行ガイド』のシステムとデバイス構成に関する節を参照してください。

Data fault

原因

これは、ほぼ必ずシステムパニックを引き起こす不良トラップの一種です。不良トラップメッセージの後にこのメッセージが表示された場合は、システムのテキストまたはデータへのアクセス障害が発生している可能性が高いです。造 不良トラップメッセージがなかった場合は、ユーザーのテキストまたはデータへのアクセス障害を示します。ブート時以外にこの障害が発生すると、データが失われる恐れがあります。

対処方法

マシンがリブート可能であることを確認してから、/var/adm/messages ログファイルを調べて障害の原因を探します。

造 詳細については「BAD TRAP」メッセージを参照してください。

Deadlock situation detected/avoided

原因

プログラミングのデッドロック状態が検出され、回避されました。

対処方法

システムがデッドロックを検出し回避しなかった場合は、ソフトウェアの一部がハングします。そのプログラムを再度実行してください。デッドロックは再現しない場合があります。

テクニカルノート

このエラーは、通常、ファイルとレコードのロックに関連しています。ただし、mutex、セマフォ、条件変数、読み取り/書き込みロックが対象になる場合もあります。

このエラーのシンボルの名前は、EDEADLKerrno=45 です。

関連項目

System Interface Guide』のデッドロック処理に関する節を参照してください。また、『Multithreaded Programming Guide』のデッドロック回避に関する節も参照してください。

Destination address required

原因

トランスポート終端での操作に必要なアドレスが指定されていません。宛先アドレスが必要です。

テクニカルノート

このエラーのシンボルの名前は、EDESTADDRREQerrno=96 です。

/dev/fd/int: /dev/fd/int: cannot open

原因

シェルスクリプト 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
これで再マウントできなかった場合は、上記のように /etc/vfstab を編集した後、マシンを再起動する必要があります。その後は、シェルスクリプト setuid および setgid が使用できるようになります。

/dev/fd が何のためのものかを理解せずに、fdfs (ファイル記述子ファイルシステム) をマウントする /etc/vfstab 内のエントリをコメントにする管理者もいます。シェルスクリプト setuid または setgid を実行しようとして、はじめて誤りに気付く場合があります。

/dev/rdsk/c0t6d0s2: No such file or directory

原因

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
ボリュームマネージャー (/usr/sbin/vold) が実行中でない場合は、次のコマンドを使用できます。

# eject /dev/rdsk/c1t6d0s2

注: システムの正面パネルで、CD-ROM トレーがさえぎられていないことを確認してください。トレーが物理的にさえぎられて開かないと、eject(1) コマンドが中断しているように見えます。

Device busy

原因

マウント済みのデバイスにマウントしようとしたか、またはアクティブなファイル (オープンファイル、カレントディレクトリ、マウントポイント、実行中のプログラムなど) が入っているデバイスへのマウントを解除しようとしました。また、このメッセージは、すでに使用可能状態になっているアカウンティングを使用可能にしようとした場合にも表示されます。

対処方法

アクティブプロセスを含むデバイスのマウントを解除するには、そのマウントポイントの下にあるすべてのファイルを閉じ、そこから開始しているプログラムがあれば終了し、ディレクトリをその階層から変更します。次に、もう一度マウントを解除します。

テクニカルノート

mutex、セマフォ、条件変数、読み取り/書き込みロックは、このエラー状態を設定することによって、ロックが保持されていることを示します。

このエラーのシンボルの名前は、EBUSYerrno=16 です。

device busy

原因

eject cdrom を実行すると、device busy メッセージが表示されました。これには複数の問題がからんでいる可能性があります。デバイスから CD を取り出すためには、次のチェックと操作を実行します。

対処方法

カレントディレクトリが CD の中ではないことを確認します。


 % cd
 % eject cdrom

ステップ B: root として次のコマンドを実行します。


# cd /etc/init.d
# ./volmgt stop
# eject cdrom 
これが機能した場合は、次のコマンドを実行します。

# ./volmgt start 
これが機能しない場合は、ステップ B に戻ります。

ステップ C: root として次のコマンドを実行します。


# fuser /cdrom  
終了したと考えられるプロセスに対して kill を実行します。これが NFS マウントの CD-ROM で、このドライブにアクセスする他のユーザーがいる場合は、終了するプロセスが何かをその理由とともに理解してください。

# ./volmgt stop
#  ps -ef | grep vold 
vold がまだ存在する場合は、そのプロセスを終了します。

# eject cdrom 
これが有効でない場合は、次のコマンドを実行します。

# cd /vol 
devdskrdskrmt がディレクトリにあることを確認します。これらがディレクトリにない場合は、/vol ディレクトリが破壊されている可能性が高く、再起動して適切に再構築する必要があります。

ステップ D: 最後に 3 つの方法があります。1) 再起動します。2) CD ドライブが外付けの場合は、ドライブの電源を入れて、取り出しボタンを押します。3) CD-ROM が外付けで、前述の 2 つの方法が失敗した場合は、取り出しボタンの右側の小さな穴に、細いまっすぐな棒状のものを挿入して、手動で CD-ROM を取り出します。

/dev/rdsk/string: CAN'T CHECK FILE SYSTEM.

原因

このファイルシステムは正しく設定されていないか、またはハードディスクに障害がある可能性があるため、システムは自動的にファイルシステムを整理 (補修) できません。このメッセージは、データが損傷している恐れがあるため、手動で fsck(1M) を実行するように求めています。

対処方法

fsck を実行して該当するファイルシステムを整理します。正しい手順については、「/dev/rdsk/int: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.」メッセージを参照してください。

/dev/rdsk/string: 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 による修復中に失われるファイルは、クラッシュまたは電源障害の発生直前に作成されたもので、復元できません。重要なファイルを失った場合は、バックアップテープから復元できます。

バックアップがない場合は、fsck(1M) の実行を専門家に任せてください。

関連項目

ファイルチェックの詳細については、『Solaris のシステム管理 (第 1 巻)』のファイルシステムの完全性チェックに関する節を参照してください。

Directory not empty

原因

rmdir(1) によるディレクトリ削除などのディレクトリ操作は、空ディレクトリに対してのみ実行できます。

対処方法

ディレクトリを削除するには、まず、このディレクトリに含まれているファイルをすべて削除します。空でないディレクトリ階層を削除する簡単な方法は、rm -r コマンドを使用することです。

テクニカルノート

このエラーのシンボルの名前は、ENOTEMPTYerrno=93 です。

diskN not unique

原因

システムの起動時に、「disk0 not unique」と表示されます。カーネルを読み込む前にエラーが発生します。

対処方法

disk0 について複数の devalias エントリがあります。OK プロンプトで devalias を使用し、エントリを表示します。

重複したものを削除するために、OK プロンプトで次のコマンドを実行します。


nvunalias disk0
次に、システムをリセットします。

Disc quota exceeded

原因

ユーザーファイルシステムでユーザーのディスク制限を超過しました。通常、制限を超えてファイルが作成されたか、またはファイルが制限よりも大きくなったことが原因です。これは、磁気ディスクで発生することがほとんどで、光ディスクでは発生しません。この状態の発生後に作成されたデータは失われます。

対処方法

ユーザーがファイルを削除して、ディスクの使用度を制限以下にするか、またはサーバ管理者が edquota(1M) コマンドを使用して、ユーザーのディスク制限を緩和します。

テクニカルノート

このエラーのシンボルの名前は、EDQUOTerrno=49 です。

driver is already installed

原因

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 に関するセクションを削除してから、パッケージを再インストールする必要があります。

DUMP: Cannot open dump device `/dev/rdsk/c2t0d0s1': Permission denied

原因

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
/etc/minor_perm ファイルに、次の行を追加することもできます。

	ssd:* 0640 root sys   
こうすると、あとで追加されたディスクアレイに同じ問題が起きません。

dumptm: Cannot open `/dev/rmt/string': Device busy

原因

他のプロセスがテープドライブを開いたままにしているため、ファイルシステムのバックアップ中に dump プログラムがテープドライブを開けません。

対処方法

テープドライブを開いているプロセスを探して kill(1) するか、または終了するまで待ちます。


# ps -ef | grep /dev/rmt
# kill -9 processID

DUP/BAD I=i OWNER=o MODE=m SIZE=s MTIME=t FILE=f REMOVE?

原因

フェーズ 1 の間に、fsck(1M) が、FILE= の後に指定されたファイルまたはディレクトリに関連する重複ブロックまたは不良ブロックを発見しました。i ノード番号は、(他の情報とともに) I= の後に表示されています。

対処方法

このファイルまたはディレクトリを削除する場合は YES と答えます。この状態で多数のファイルを削除するとデータが失われるため、バックアップテープからファイルシステムを復元することを推奨します。

関連項目

ファイルシステムチェックの詳細については、『Solaris のシステム管理 (第 1 巻)』のファイルシステムの完全性チェックに関する節を参照してください。

int DUP I=int

原因

すでに別の i ノードから取り込まれているブロックを検出すると、fsck(1M) は、重複ブロック番号とそれを含む i ノード (I= の後) を表示します。

対処方法

fsck(1M) のフェーズ 2 とフェーズ 4 で、これらの不良ブロックをクリアするかどうかを判断します。fsck(1M) による修復を確定する前に、ncheck(1M) コマンドに i ノード番号を渡すと、この i ノードが含まれるファイルを特定できます。


# ncheck -iinum filesystem

関連項目

詳細については、『Solaris のシステム管理 (第 1 巻)』のファイルシステムの完全性チェックに関する章を参照してください。