主要メッセージの手引き

ファイルが大きすぎます。

原因

ファイルのサイズが、ulimit(1) で指定された制限、またはファイルシステムがサポートしている上限を超えました。この状態のときに作成されたデータは失われる恐れがあります。

対処方法

C シェルの場合は、limit(1) コマンドを使用してデフォルトのファイルサイズを表示または設定します。Bourne シェルまたは Korn シェルの場合は ulimit -a コマンドを使用します。ファイルサイズが無制限であるとシェルが判断した場合でも、実際には FCHR_MAX (通常は 1 G バイト) がシステム上の制限です。

テクニカルノート

このエラーの記号名は、EFBIGerrno=27 です。

ファイルが存在しています。

原因

既存ファイルの名前が、不適切なコンテキストで記述されています。たとえば、csh(1) noclobber オプションが設定されている場合、既存ファイルへのリンクの確立または上書きはできません。

対処方法

ディレクトリ内のファイル名を調べてから、別の名前でもう一度実行するか、あるいは既存ファイルの名前を変更または削除してから再度実行します。

テクニカルノート

このエラーの記号名は、EEXISTerrno=17 です。

ファイル記述子が正しくありません。

原因

ファイル記述子が、開いていないファイルを参照しているか、あるいは書き込み専用に開かれているファイルに読み取り要求をしたかのどちらかです。

テクニカルノート

このエラーの記号名は、EBADFDerrno=81 です。

ファイルテーブルがオーバフローしました。

原因

システム上で開いているファイルが多すぎるため、カーネルのファイルテーブルがいっぱいになりました。一時的に、これ以上のファイルは開くことができません。この状態のときに作成されたデータは失われる恐れがあります。

対処方法

多くの場合は、待っているだけで、ファイルを閉じる時間をシステムに与えることになります。ただし、このメッセージが頻繁に表示される場合は、カーネルを再構成して、開くことができるファイルの数を増やしてください。ファイルテーブルのサイズを大きくする場合は、/etc/system ファイルにある MAXUSERS の値を大きくします。デフォルトの MAXUSERS 値は、M バイト単位のメインメモリー量から 2 を引いたものです。

テクニカルノート

このエラーの記号名は、ENFILEerrno=23 です。

ファイル番号が違います。

原因

一般的に、このメッセージはプログラミングエラーであり、使用方法のエラーではありません。

対処方法

プログラムのベンダまたは作成者に変更を依頼します。

テクニカルノート

ファイル記述子がオープンファイル以外を参照しているか、または書き込み (または読み取り) 専用に開かれたファイルに対して read(2) - または write(2) - 要求が実行されました。

このエラーの記号名は、EBADFerrno=9 です。

ファイル名が長すぎます。

原因

指定したファイル名の文字数が多すぎます。

対処方法

ファイル名またはパス名の構成要素が長すぎる場合は、短い名前を考えてください。パス名全体が PATH_MAX の文字数よりも長い場合は、中間ディレクトリに変更してから、短いパス名を指定します。短い名前を付けた別のファイルに書き込まない限り、新規に作成したデータは失われます。

テクニカルノート

UFS または NFS マウントの UFS ファイルシステムで、パス名の構成要素の長さが MAXNAMLEN の文字数 (255) を超えたか、またはパス名全体の長さが PATH_MAX の文字数 (1024) を超えました。あるいは、System V ファイルシステムで、非短縮 (no-truncation) モードが有効になっているにもかかわらず、パス名の構成要素の長さが NAME_MAX の文字数 (14) を超えました。これらの値は、/usr/include/limits.h ファイルに定義されています。

このエラーの記号名は、ENAMETOOLONGerrno=78 です。

ファイルもディレクトリもありません。

原因

指定したファイルまたはディレクトリが存在しません。ファイル名またはパス名が間違って入力されています。

対処方法

ファイル名とパス名が正しいことを確認してからもう一度実行します。指定したファイルまたはディレクトリがシンボリックリンクの場合は、存在しないファイルまたはディレクトリを指している可能性があります。

テクニカルノート

このエラーの記号名は、ENOENTerrno=2 です。

ファイルロックによるデッドロックエラーです。

原因

これはプログラミング上の問題であり、避けられない場合があります。

対処方法

ユーザーにできるのは、プログラムを再起動して、デッドロックが再現しないように期待することだけです。

テクニカルノート

ファイルロックサブシステムで、2 つのプロセスが 1 つのロックを同時に変更しようとしました。あるいは、マルチスレッドサブシステムで、2 つのスレッドがデッドロック状態になり、続行できませんでした。スレッドライブラリを使用するプログラムがこのエラーを検出した場合は、プログラムはデッドロックしたスレッドを再起動しなければなりません。

このエラーの記号名は、EDEADLOCKerrno=56 です。

不整合- `

原因

C シェルの csh(1) からのこのメッセージは、終わりの逆引用符を付けずに、初めの逆引用符 (`) のみを付けたコマンドをユーザーが入力したことを示します。引用符 (') や二重引用符 (") を片方しか付けなかった場合も、同様のメッセージが表示されます。他のシェルでは、通常、コマンド行で引用符が片方しかない場合は継続プロンプトが表示されます。

対処方法

コマンド行を訂正して、再度実行します。Cシェルで、改行して入力を続けるには、改行文字の直前にバックスラッシュを入力します。

不正命令の実行

原因

プロセスが、カーネルが許していない命令を実行しようとしたことを示す信号を受信しました。これは、通常少し異なるマシンアーキテクチャー用にコンパイルされたプログラムを実行すると発生します。読み専用ファイルシステムを除き、このメッセージは、通常、コアダンプを伴います。

対処方法

CD-ROM またはネットワークからブートする場合は、Readme ファイルを調べて、マシンアーキテクチャーに適したイメージを使用していることを確認します。また、df(1M) を実行して、システムに十分なスワップ空間があることも確認します。スワップ空間が少なすぎると、このエラーが発生することがあります。最近、CPU を新しいアーキテクチャーにアップグレードした場合は、その新しいアーキテクチャーに対応したオペレーティングシステムに変更します (オペレーティングシステムのアップグレードが必要になる場合があります)。

テクニカルノート

この状態は、プログラムがデータを命令として実行しようとした場合など、プログラミングエラーによって発生することがあります。また、この状態が、システム上のデバイスファイルが損傷していることを示す場合もあります。

不明なユーザーです。

原因

同じシステム上に存在するユーザーであるにもかかわらず、メールを送信しようとすると、エラー「Username... User unknown」が表示されます。

対処方法

電子メールアドレスを入力ミスしていないか確認してください。送り先のユーザーが、/etc/mail/aliases またはユーザーの .mailrc ファイルで、存在しない電子メールアドレスにエイリアス指定されている可能性もあります。

名前に大文字が入っているユーザーにはメールを送信できません。sendmail(1M) は、すべての大文字を小文字に変換してからユーザーを検索します。UNIX では大文字小文字を区別するため、このような大文字から小文字に変更されたユーザー名を検索することができません。そのため、「User unknown」のメッセージが表示されます。

回避策として、すべてのユーザー名が小文字だけで構成されていることを確認してください。

プロセスがありません。

原因

このプロセスを発見できません。このプロセスは、実行し終わり消去されたか、またはシステム内で別の数値 ID の制御下にある可能性があります。

対処方法

ps(1) コマンドを使用して、指定したプロセス ID が正しいことを確認します。

テクニカルノート

指定したプロセス ID (PID)、軽量プロセス ID、または thread_t に一致するプロセスがありません。

このエラーの記号名は、ESRCHerrno=3 です。

ブロック型デバイスを指定してください。

原因

mount(1M) コマンドの呼び出し時など、ブロック型デバイスが必要な場所で raw (文字型特殊) デバイスが指定されました。

対処方法

使用可能なブロック型デバイスを確認するには、ls -l を使用して /devices を調べます。次に、文字型デバイスの代わりにブロック型デバイスを指定します。ブロック型デバイスモードは b で始まり、raw 文字型デバイスモードは c で始まります。

テクニカルノート

このエラーの記号名は、ENOTBLKerrno=15 です。

プロトコルエラー

原因

プロトコルエラーが発生しました。このエラーはデバイス特有ですが、通常、ハードウェア障害には関係ありません。

テクニカルノート

このエラーの記号名は、EPROTOerrno=71 です。

プロトコルエラー、string は接続を閉じました。

原因

SunOS システムをインストールしたマシンで rlogin(1) が失敗しました。

対処方法

  1. 接続を行うマシン上の in.rlogind のアクセス権を確認します。アクセス権は、次のようになっています。


    -rwxr-xr-x  1 root     staff       16384 Jan 20  1994 /usr/sbin/in.rlogind

  2. /etc/inetd.conf ファイルでログイン行を確認します。次のようになっています。


    login	stream	tcp	nowait	root	/usr/sbin/in.rlogind	in.rlogind

  3. /etc/passwd を調べて、ログイン ID のエントリに無効なログインシェルが設定されていないかを確認します。

プロトコルでサポートしていないオプションです。

原因

プロトコルに対してオプションを取得または設定する際に、不正なオプションまたはレベルが指定されました。

テクニカルノート

このエラーの記号名は、ENOPROTOOPTerrno=99 です。

プロトコルの型がソケット用ではありません。

原因

このメッセージは、アプリケーションのプログラミングエラーまたは不正に構成されているプロトコルを示します。

対処方法

/etc/protocols ファイルが NIS protocols(4) マップと数ごとに一致していることを確認します。両者が一致している場合は、アプリケーションのベンダまたは作成者に更新してもらうよう要請してください。

テクニカルノート

要求されたソケットタイプの意味論をサポートしていないプロトコルが指定されました。結果的に、プロトコルはサポートされていないソケットタイプを要求することになります。このソケットを要求したソースコードを調べて、要求しているタイプが /usr/include/sys/socket.h で指定されたタイプに含まれていることを確認します。

このエラーの記号名は、EPROTOTYPEerrno=98 です。