主要メッセージの手引き

"D"

data access exception

原因

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

対処方法

新しいハードウェアまたはマシンアーキテクチャーをサポートしているバージョンのオペレーティングシステムにアップグレードします。

関連項目

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

Data fault

原因

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

対処方法

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

Deadlock situation detected/avoided

原因

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

対処方法

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

テクニカルノート

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

このエラーの記号名は、EDEADLKerrno=45 です。

関連項目

システムインタフェース』のデッドロック処理に関する節を参照してください。また、『マルチスレッドのプログラミング』のデッドロック回避に関する節も参照してください。

Destination address required

原因

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

テクニカルノート

このエラーの記号名は、EDESTADDRREQerrno=96 です。

destination component full

原因

Solstice バックアップにより、destination component full が報告されました。

このメッセージは、jukebox/autochanger にマニュアル操作を実行すると (たとえば、SBU でボリュームをアンマウントせずに、autochanger のボタンを操作してテープドライブを物理的にアンロードするなど) 表示されます。この操作では、SBU は autochanger のメディアステータスを追跡できなくなります。

対処方法

コマンド /user/sbin/nsr/nsrjb -H で問題を解決できます。

/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 の内容はファイル記述子ファイルシステム (FDFS) であって、フロッピーディスクとは関連がありません。

fdfs/dev/fd としてマウントされていることを確認します。次にマシンを再起動する前に、/etc/vfstab の内容を確認してください。次のような行があるはずです (先頭にコメント記号はありません)。


fd		-		/dev/fd		fd	-	no	-

root として次のコマンドを実行すると、再起動しなくても /dev/fd を再マウントできる場合があります。


# mount fd /dev/fd
setuid/setgid シェルスクリプトを使用するには、その他、上記の説明に従って /etc/vfstab を編集してからマシンを再起動する方法があります。

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

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

原因

UltraTM 450 システムで CD-ROM を取り出そうとしましたが、eject cdrom コマンドは失敗し、エラーメッセージが表示されます。

このエラーは、CD-ROM がコントローラ 0 ではなくコントローラ 1 にあると発生します。eject(1) コマンドを使用するとき、CD-ROM "nicname" は /dev/rdsk/c0t6t0s2 になります。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 を実行して上記のメッセージが表示される場合、原因はさまざまです。チェックすべき内容と、デバイスから CD を取り出す方法を次に示します。

対処方法

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


 % cd
 % eject cdrom

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


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

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

ステップ 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/string: 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 です。

Disc quota exceeded

原因

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

対処方法

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

テクニカルノート

このエラーの記号名は、EDQUOTerrno=49 です。

disk does not appear to be prepared for encapsulation

原因

vxinstall の途中でルートディスクをカプセル化しようとすると、このエラーメッセージが表示されます。

ディスクはカプセル化に対応できるよう正しくスライスされていますが、アクセス権が変更されたので prtvtoc コマンドを実行できませんでした。

diskN not unique

原因

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

対処方法

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

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


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

dlopen (libxfn.so) failed

原因

SUNWfns パッケージがエンドユーザークラスタ外部に残されていました。このクラスタをインストールしてオートマウンタを実行しただけでは、上記のメッセージが表示されてエラーになります。libxfn.so は、フェデレーテッドネーミングシステム用の共用ライブラリです。

対処方法

配布 CD から SUNWfns パッケージをインストールします。

driver is already installed

原因

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

dtmail: cannot open mailfile on 2.5.1 /var/mail server

原因

CDE 1.2 (Solaris 2.6 リリース) を実行中のクライアントマシン A に、Solaris 2.5.1 リリースを実行中のサーバーであるマシン B から /var/mail がマウントされました。

OpenWindows のメールツールでは、サーバー上のメールファイルを問題なく読み書きできますが、CDE の dtmail ではメールボックスを開くことができません。

対処方法

このバグのアクセス権と所有権を確認してください。メールディレクトリには、次のアクセス権が必要です。


skywalker$ ls -lad /var/mail
drwxrwsrwt   3 root     mail         512 Feb 10 14:40 /var/mail/
メールボックス自体は次のようになっている必要があります。

-rw-------   1 zvinakis mail     3206838 Feb 19 11:51 /var/mail/zvinakis
ディレクトリのアクセス権の設定が正しくない場合、メールサーバーに次のコマンドを実行します。


chmod a+t /var/mail
chmod g+s /var/mail

アクセス権 (またはグループ) がメールボックス自体で正しくない場合、「joe」がサンプルメールボックスの場合、次のように実行します。


chgrp mail /var/mail/joe
アクセス権を変更するには、次のように実行します。

chmod 600 /var/mail/joe

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

原因

SSA のディスクドライブでユーザー sys (UID 3) として ufsdump(1M) を実行すると、ufsdump(1M) コマンドは失敗し、このメッセージが表示されます。

対処方法

SSA のディスクドライブの SSD "インスタンスパス" に 600 のアクセス権が作成されました。ルート以外のユーザーがこれを読み取るには、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 巻)』のファイルシステムの完全性チェックに関する章を参照してください。