このパートでは、Solaris 2.x ソフトウェアで発生する問題を解決する手順を説明します。次の章が含まれます。
一般的なソフトウェアの問題を解決する方法の概要と、システムクラッシュを解決する手順を説明します。 |
|
クラッシュダンプを保存する手順とシステムエラー記録をカスタマイズする手順を説明します。 |
|
一般的なソフトウェアの問題 (システムがハングする、システムがブートしないなど) の状況と可能な解決策を説明します。 |
|
一般的なファイルアクセスについての問題 (正しくないコマンド検索パスやファイルのアクセス権など) の解決策を説明します。 |
|
一般的なプリンタの問題 (出力が出ない、出力がおかしいなど) の解決策を説明します。 |
|
ファイルシステムに関連する問題について、特定の fsck エラーメッセージとその解決策を説明します。 |
|
ソフトウェアパッケージを追加および削除するときに発生する問題について、特定のエラーメッセージと可能な解決策を説明します。 |
この章では、ソフトウェアの問題の解決についての概要を説明します。システムクラッシュの問題の解決とシステムメッセージの表示などが含まれます。
この章の内容は次のとおりです。
ソフトウェアの問題の解決手順については、次を参照してください。
Solaris オペレーティング環境が動作しているシステムがクラッシュした場合、core ファイルを含む、可能なかぎりの情報を購入先に提供してください。
最も重要なことは、次のとおりです。
システムのコンソールメッセージを書き取ります。
システムがクラッシュした場合は、システムをリブートする前に、まずコンソール画面にメッセージが表示されていないかを確かめてください。このようなメッセージは、クラッシュした原因を解明するのに役立ちます。システムが自動的にリブートして、コンソールメッセージが画面から消えた場合でも、システムエラーログファイルを表示すれば、これらのメッセージをチェックできます。システムエラーログファイルは、/var/adm/messages (または /usr/adm/messages) に自動的に生成されます。システムエラーログファイルを表示する方法の詳細は、「システムメッセージを表示する方法」を参照してください。
クラッシュが頻繁に発生して、その原因を特定できない場合は、システムのコンソールや /var/adm/messages ファイルから得られるすべての情報を収集して、購入先に問い合わせください。購入先に問い合わせるときに必要な問題解決のための情報の完全なリストについては、「システムクラッシュの問題の解決」を参照してください。
システムのクラッシュ後にリブートが失敗する場合は、第 70 章「ソフトウェアで発生するさまざまな問題の解決」を参照してください。
次のように入力してディスクとの同期をとり、リブートします。
ok sync
システムのクラッシュ後にリブートが失敗する場合は、第 70 章「ソフトウェアで発生するさまざまな問題の解決」を参照してください。
savecore コマンドを実行して、スワップ領域に書き込まれたクラッシュ情報を保存します。
# savecore
クラッシュダンプを自動的に保存する方法については、第 69 章「システムクラッシュ情報の生成と保存」を参照してください。
システムの問題を特定するために、次の質問に答えてください。クラッシュしたシステムの問題を解決するためのデータを収集するには、「システムクラッシュを解決するためのチェックリスト」を参照してください。
表 68-1 システムクラッシュに関するデータの収集
質問 |
説明 |
---|---|
問題を再現できるか |
この質問は、再現可能なテストケースは実際のハードウェア問題をデバッグするために重要であることが多いために重要である。購入先では、特殊な計測機構を使用してカーネルを構築して問題を再現し、バグを引き起こし、診断、および修正できる |
Sun 以外のドライバを使用しているか |
ドライバは、カーネルと同じアドレス空間で、カーネルと同じ特権で動作する。したがって、ドライバにバグがあると、システムクラッシュの原因となることがある |
クラッシュの直前にシステムは何を実行していたか |
システムが通常でないこと (新しい負荷テストの実行など) を行なったり、通常よりも高い負荷がシステムにかかった場合、クラッシュの原因となることがある |
クラッシュ直前に、異常なコンソールメッセージが表示されたか |
システムは、実際にクラッシュする前に問題の兆候を示すことがある。この情報は役立つことが多い |
/etc/system ファイルに調整パラメタを追加したか |
調整パラメタはシステムクラッシュの原因となることがある。たとえば、共有メモリーセグメントを増やした結果、システムが限度以上の多くのメモリーを割り当てようとした |
問題は最近発生するようになったか |
そうであれば、問題の原因は、システムの変更 (たとえば、新しいドライバ、新しいソフトウェア、作業負荷の変化、CPU のアップグレード、メモリーのアップグレードなど) にある可能性がある |
クラッシュしたシステムの問題を解決するためのデータを収集するときは、次のチェックリストを使用します。
項目 |
ユーザーのデータ |
---|---|
コアファイルが生成されているか |
|
オペレーティングシステムのリリースと適切なソフトウェアアプリケーションのリリースレベルを確認する |
|
システムのハードウェアを確認する sun4d システムの prtdiag 出力を含める |
|
パッチはインストールされているか。そうであれば、showrev -p 出力を含める |
|
問題を再現できるか |
|
Sun 以外のドライバをシステムで使用しているか |
|
クラッシュ直前のシステムの動作は |
|
クラッシュ直前に、異常なコンソールメッセージが表示されたか |
|
/etc/system ファイルにパラメタを追加したか |
|
問題は最近発生するようになったか |
|
システムがクラッシュしたとき、次のようなメッセージがシステムのコンソールに表示されることがあります。
panic: error message
error message は、crash(1M) に説明されている、パニックエラーメッセージの 1 つです。
さらに頻繁ではありませんが、パニックメッセージではなく、次のメッセージが表示されることがあります。
Watchdog reset !
エラー記録デーモン syslogd は、自動的に、さまざまなシステムの警告やエラーをメッセージファイルに記録します。デフォルトでは、これらのシステムメッセージの多くは、システムコンソールに表示されて、/var/adm (または /usr/adm) に格納されます。システム記録を設定することによって、これらのメッセージを格納する場所を指示できます。詳細は、「システムのメッセージ記録をカスタマイズする方法」を参照してください。これらのメッセージは、失敗の予兆のあるデバイスなど、システム障害をユーザーに警告できます。
/var/adm ディレクトリには、いくつかのメッセージファイルが含まれています。最も新しいメッセージは、/var/adm/messages (および messages.0) の中にあり、最も古いメッセージは、messages.3 の中にあります。一定の期間 (通常は 10 日) ごとに、新しい messages ファイルが作成されます。messages.0 のファイル名は messages.1 に、messages.1 は messages.2 に、messages.2 は messages.3 にそれぞれ変更されます。その時点の /var/adm/messages.3 は削除されます。
/var/adm ディレクトリは、メッセージやクラッシュダンプなどのデータを含んでいる大きなファイルを格納するため、多くのディスク容量を消費します。/var/adm ディレクトリが大きくならないようにするために、そして将来のクラッシュダンプが保存できるために、不要なファイルを定期的に削除しなければなりません。crontab を使用すれば、この作業は自動化できます。この作業を自動化する方法については、「クラッシュダンプファイルを削除する方法」と第 59 章「システムイベントのスケジュール設定」を参照してください。
システムクラッシュまたはリブートによって生成された最近のメッセージを表示するには、dmesg コマンドを使用します。
$ dmesg
あるいは、more コマンドを使用して、メッセージを 1 画面ごとに表示します。
$ more /var/adm/messages
詳細は、dmesg(1M) のマニュアルページを参照してください。
$ dmesg Nov 12 16:53 SunOS Release 5.6 Version A [UNIX(R) System V Release 4.0] copyright (c) 1983-1997, Sun Microsystems, Inc. DEBUG enabled WARNING: cannot load psm xpcimach mem = 32376K (0x1f9e000) avail mem = 25247744 root nexus = i86pc Unable to install/attach drive `isa' eisa0 at root NOTICE: eisa: DMA buffer-chaining not enabled NOTICE: IN i8042_acquire NOTICE: out i8042_acquire NOTICE: IN i8042_release NOTICE: about to enable keyboard NOTICE: out i8042_release . . .
/etc/syslog.conf ファイルを変更すると、さまざまなシステムプロセスが生成するエラーメッセージを記録できます。デフォルトでは、/etc/syslog.conf は、多くのシステムプロセスのメッセージが /var/adm メッセージファイルに格納されるように指示しています。クラッシュとブートのメッセージも、同様にこのファイルに格納されます。/var/adm メッセージを表示する方法については、「システムメッセージを表示する方法」を参照してください。
/etc/syslog.conf ファイルは、タブで区切られた 2 つの列から構成されています。
facility.level ... |
action |
facility.level |
機能またはメッセージや状態のシステムでの出所。コンマで区切られた機能のリスト。機能の値については表 68-2 を参照。level は、記録する状態の重要度や優先順位を示す。優先レベルについては表 68-3 を参照 |
action |
動作フィールドは、メッセージが転送される場所を示す |
次は、デフォルトの /etc/syslog.conf ファイルの例です。
user.err /dev/console user.err /var/adm/messages user.alert `root, operator' user.emerg *
最も一般的なエラー状態の出所を表 68-2 に示します。最も一般的な優先順位を、重要度順に表 68-3 に示します。
表 68-2 syslog.conf メッセージのソース機能
出所 |
説明 |
---|---|
カーネル |
|
認証 |
|
すべてのデーモン |
|
メールシステム |
|
lp |
スプールシステム |
ユーザープロセス |
Solaris 2.6 リリース以降、/etc/syslog.conf ファイルで有効化できる syslog 機能の数の制限は解除されます。以前のリリースでは、機能の数は 20 個に制限されていました。
優先順位 |
説明 |
---|---|
emerg |
システムの緊急事態 |
alert |
すぐに修正が必要なエラー |
crit |
致命的なエラー |
err |
その他のエラー |
info |
情報メッセージ |
debug |
デバッグ用の出力 |
none |
この設定は出力を記録しない |
スーパーユーザーになります。
任意のエディタで、/etc/syslog.conf ファイルを編集します。syslog.conf(4) のマニュアルページに説明されている構文に従って、メッセージの出所、優先順位、およびメッセージの記録場所を追加または変更します。
変更を保存して編集を終了します。
次の /etc/syslog.conf 行は、Solaris インストール中にデフォルトで提供されます。
user.err /dev/console user.err /var/adm/messages user.alert `root, operator' user.emerg *
これは、次のユーザーメッセージが自動的に記録されることを意味します。
ユーザーエラーは、コンソールに出力されて、/var/adm/messages ファイルにも記録されます。
早急な処置が必要なユーザーメッセージ (alert) は、root と operator に送信されます。
ユーザー緊急メッセージは、各ユーザーに送信されます。
この節では、クラッシュダンプを有効または無効にする方法と、システムメッセージを表示または収集する方法について説明します。
この章で説明する手順は次のとおりです。
システムクラッシュは、ハードウェアの誤動作、電源の異常、入出力の障害、およびソフトウェアのエラーが原因で発生します。ソフトウェアの突然異常 (たとえば、オペレーティングシステムのバグによる致命的なカーネルエラーなど) によってシステムがクラッシュした場合、システムはその物理メモリーのイメージを、ディスクのスワップスライスの最後に core ファイルとして書き込みます。このファイルはカーネルの状態のスナップショットであり、クラッシュ時に捕捉されたプログラムのテキスト、データ、および制御構造体を含んでいます。
UNIX システムがクラッシュしたときに書き込まれるクラッシュダンプ、つまり core ファイルは、カーネルのデバッグに熟練した人が使用すれば、クラッシュの原因を突き止める鍵となります。しかし、システムで core ファイルをクラッシュダンプファイルに保存することを有効にしていなければ、UNIX システムがクラッシュ後にリブートすると、通常の場合は、生成されていた core ファイルが上書きされてしまいます。
システムがクラッシュダンプファイルを保存することを有効にする方法の詳細は、「クラッシュダンプの使用方法の作業マップ」を参照してください。クラッシュダンプファイルは非常に大きくなる可能性があるため、不要なものは削除してください。
制御構造体、アクティブなテーブル、動作中またはクラッシュしたシステムカーネルのメモリーのイメージなど、カーネルの動作についての情報を調べるには、crash ユーティリティを使用します。crash を完全に使いこなすには、カーネルについての詳細な知識が必要ですが、このマニュアルでは扱いません。crash ユーティリティの動作の詳細は、crash(1M) のマニュアルページを参照してください。
また、crash で保存したクラッシュダンプを購入先に送って、システムがクラッシュした原因を解析してもらうことも可能です。購入先にクラッシュダンプファイルを送る場合は、「クラッシュダンプの使用方法の作業マップ」にリストされている最初の 3 つの作業を実行してください。
作業 |
説明 |
手順の説明 |
|||||
---|---|---|---|---|---|---|---|
クラッシュダンプディレクトリを作成する |
/var/crash/system-name ディレクトリを作成して、クラッシュダンプファイルを格納する。 | ||||||
クラッシュダンプファイル用の容量を確保する |
クラッシュダンプファイル用に割り当てるディスク容量を決定する。 | ||||||
| |||||||
クラッシュダンプファイルを有効にする |
/etc/init.d/sysetup ファイルを編集して、クラッシュダンプファイルの保存を有効にする。 | ||||||
| |||||||
クラッシュダンプファイルを調査する |
crash コマンドを使用して、クラッシュダンプファイルを表示する。 | ||||||
| |||||||
クラッシュダンプファイルを無効にする |
(省略可能) /etc/init.d/sysetup ファイルを編集して、クラッシュダンプファイルの保存を無効にする。 | ||||||
|
システムにクラッシュダンプを保存させるには、次の手順に従ってください。
クラッシュダンプディレクトリを作成します。
クラッシュダンプファイル用に割り当てるディスク容量を決定します。
/etc/init.d/sysetup ファイルを編集して、クラッシュダンプファイルの保存を有効にします。
システムにクラッシュダンプを保存させないようにするには、この逆の手順に従います。
スーパーユーザーになります。
# mkdir /var/crash
/var/crash ディレクトリに移動します。
# cd /var/crash
システム名でディレクトリを作成します。
# mkdir system-name
system-name |
クラッシュダンプファイルを保存するシステム |
ディレクトリが作成されていることを確認します。
# ls system-name
次の例は、システム saturn のクラッシュダンプファイルを保存するディレクトリを作成する方法を示しています。
# mkdir /var/crash # cd /var/crash # mkdir saturn # ls saturn
表 69-1 に示している必要な作業を完了していることを確認します。
/var/crash/system-name ディレクトリに移動します。
# cd /var/crash/system-name
system-name |
クラッシュダンプファイルを保存するシステム |
任意のエディタで、クラッシュダンプ用に確保しておく最小利用可能空き領域の最小値を指定する数 (単位はキロバイト) を含む、minfree という名前のファイルを作成します。
ファイルを終了して、変更を保存します。
次の例は、システム saturn のクラッシュダンプファイルを保存するための、500K バイトの利用可能な空き領域を確保する、minfree ファイルの内容を示しています。
$ more /var/crash/saturn/minfree 500
表 69-1 に示している必要な作業を完了していることを確認します。
スーパーユーザーになります。
任意のエディタで、/etc/init.d/sysetup ファイルを編集し、クラッシュダンプを有効にする行の先頭からコメント記号 (#) を削除して、これらの行を有効にします。
変更を保存し、編集を終了します。
次の例は、クラッシュダンプを有効にするように編集した /etc/init.d/sysetup ファイルの該当セクションを示しています。
## ## Default is to not do a savecore ## if [ ! -d /var/crash/`uname -n` ] then mkdir -m 0700 -p /var/crash/`uname -n` fi echo 'checking for crash dump...¥c ' savecore /var/crash/`uname -n` echo ''
スーパーユーザーになります。
crash ユーティリティを使用して、クラッシュダンプを調査します。
# /usr/sbin/crash [-d crashdump-file] [-n name-list] [-w output-file]
-d crashdump-file |
システムのメモリーイメージが格納されているファイルを指定する。デフォルトのクラッシュダンプファイルは /dev/mem である |
-n name-list |
システムのメモリーイメージへシンボルでアクセスを調査する場合、シンボルテーブル情報が格納されるテキストファイルを指定する。デフォルトのファイル名は /dev/ksyms である |
-w output-file |
クラッシュセッションからの出力を格納するファイルを指定する。デフォルトは標準出力である |
クラッシュ状態情報を表示します。
# /usr/sbin/crash dumpfile = /dev/mem, namelist = /dev/ksyms, outfile = stdout > status . . . > size buf proc queue . . .
次の例は、crash ユーティリティからのサンプル出力を示しています。状態とバッファについての情報、プロセス、および待ち行列のサイズが表示されています。
# /usr/sbin/crash dumpfile = /dev/mem, namelist = /dev/ksyms, outfile = stdout > status system name: SunOS release: 5.6 node name: saturn version: Generic machine name: sun4m time of crash: Fri Jan 10 14:14:39 1997 age of system: 60 day, 5 hr., 24 min. panicstr: panic registers: eip: 0 esp: 0 > size buf proc queue 120 1552 88
/etc/init.d/sysetup ファイルを編集して、次に示すように各行の先頭にコメント記号 (#) を挿入します。
#if [ ! -d /var/crash/`uname -n` ] #then mkdir -p /var/crash/`uname -n` #fi # echo `checking for crash dump...¥c ` #savecore /var/crash/`uname -n` # echo ''
変更を保存します。
/var/crash ディレクトリからクラッシュダンプ用のファイルを削除します。
# rm -rf /var/crash/system-name
system-name |
この章では、ときどき発生するが修正しやすい、さまざまなソフトウェアの問題について説明します。特定のソフトウェアアプリケーションや内容に関連しない問題 (リブートの失敗やファイルシステムがフルになるなど) の解決方法も含みます。これらの問題の解決方法は、この後の節で説明します。
この章の内容は次のとおりです。
システムがリブートに失敗した場合またはリブートしたがクラッシュした場合は、システムのブートを妨害しているソフトウェアまたはハードウェアの障害があると考えられます。
問題 - システムがブートしない理由 |
解決方法 |
---|---|
システムが /platform/`uname -m`/kernel/unix を見つけられない |
SPARC システムの PROM 内の boot-device 設定を変更しなければならない。「SPARC: デフォルトのブートデバイスを変更する方法」を参照 |
x86 システムで、デフォルトのブートデバイスが存在しない。「Not a UFS filesystem.」というメッセージが表示される |
Configuration Assistant/Boot (構成用補助) フロッピーディスクを使用してシステムをブートし、ブートするディスクを選択する |
/etc/passwd ファイル内に無効なエントリが存在する |
無効な passwd ファイルから復元する方法については、パート IIIを参照 |
ディスクなどのデバイスに、ハードウェアの問題がある |
ハードウェアの接続を確認する
|
上記のリストで問題が解決できない場合は、ご購入先にお問い合わせください。
ソフトウェアプロセスに問題がある場合、システムは、完全にクラッシュせずに、凍結、つまりハングすることがあります。ハングしたシステムから回復するには、次の手順に従ってください。
システムがウィンドウ環境を実行していたかどうかを調べて、次のリストの推奨事項に従ってください。これらのリストで問題が解決できなかった場合は、手順 2 に進みます。
コマンドを入力しているウィンドウの中に、ポインタがあることを確認します。
間違って Control-s キー (画面を凍結する) を押した場合は、Control-q キーを押します。Control-s キーはウィンドウだけを凍結し、画面全体は凍結しません。ウィンドウが凍結している場合は、他のウィンドウを試します。
可能であれば、ネットワーク上の他のシステムからリモートでログインします。ps コマンドを使用して、ハングしているプロセスを見つけます。ウィンドウシステムがハングしている場合は、そのプロセスを特定して強制終了します。
Control-¥ キーを押して、動作しているプログラムを強制終了します。core ファイルが書き出されることがあります。
リモートからログインして、システムをハングさせているプロセスを特定して強制終了します。
リモートからログインして、スーパーユーザーになり、システムをリブートします。
システムがまだ応答しない場合は、強制的にクラッシュダンプしてリブートします。強制的にクラッシュダンプしてリブートする方法については、第 69 章「システムクラッシュ情報の生成と保存」を参照してください。
ルート (/) ファイルシステムや他のファイルシステムがフルになると、次のようなメッセージがコンソールウィンドウに表示されます。
.... file system full
ファイルシステムがフルになる原因はいくつかあります。次の節では、フルになったファイルシステムを回復する方法をいくつか説明します。ファイルシステムがフルにならないように、古い使用されていないファイルを日常的に整理する方法については、第 57 章「ディスク使用の管理」を参照してください。
エラーの原因 |
解決方法 |
---|---|
ファイルかディレクトリを間違った場所にコピーした。これは、アプリケーションがクラッシュして、大きな core ファイルをファイルシステムに書き込んだときにも発生する |
スーパーユーザーとしてログインし、特定のファイルシステムで ls -tl コマンドを使用し、新しく作成された大きなファイルを特定して削除する。core ファイルを削除する方法については、「core ファイルを見つけて削除する方法」を参照 |
エラーの原因 |
解決方法 |
---|---|
これは、tmpfs に許可されているよりも多く書き込もうとした、または現在のプロセスがメモリーを多く使用している場合に発生する |
tmpfs 関連のエラーメッセージから回復する方法については、tmpfs(7FS) のマニュアルページを参照 |
エラーの原因 |
解決方法 |
---|---|
ACL を持つファイルまたはディレクトリを /tmp ディレクトリにコピーすると、ACL 属性が消失する。/tmp ディレクトリは、通常、一時ファイルシステムとしてマウントされ、ACL などの UFS ファイルシステム属性はサポートしない |
代わりに、/var/tmp ディレクトリにファイルをコピーまたは復元する |
この節では、データをバックアップまたは復元するときのいくつかの基本的な問題の解決方法について説明します。
ファイルシステムをバックアップしている際に、ルート (/) ファイルシステムがフルになります。このとき、媒体には何も書き込まれていなく、ufsdump コマンドは、媒体の 2 番目のボリュームを挿入するようにプロンプトを表示します。
エラーの原因 |
問題の解決方法 |
---|---|
-f オプションに無効な宛先デバイス名を使用した場合、ufsdump コマンドはファイルをルート (/) ファイルシステムの /dev ディレクトリに書き込み、このファイルシステムをフルにする。たとえば、/dev/rmt/0 ではなく /dev/rmt/st0 と入力した場合、バックアップファイルはテープドライブには送信されず、/dev/rmt/st0 がディスクに作成される |
/dev ディレクトリで ls -tl コマンドを使用して、新しく作成された、異常に大きなファイルを特定して削除する |
ufsrestore を使用できるのは、ufsdump でバックアップしたファイルを復元するときだけです。tar でバックアップした場合は、tar で復元します。他のコマンドで書き込まれたテープを ufsrestore コマンドを使用して復元しようとした場合、テープが ufsdump フォーマットでないことを知らせるエラーメッセージが表示されます。
ファイルを復元する場合に、間違った場所に復元してしまうことがよくあります。ufsdump コマンドは、常にファイルシステムのルートからのフルパス名でファイルをコピーします。したがって、ufsrestore を実行する前に、ファイルシステムのルートディレクトリに移動しなければなりません。それよりも下のディレクトリでファイルを復元すると、そのディレクトリの下に完全なファイルツリーが作成されます。
dump コマンドで作成した複数ボリュームのフロッピーディスクのバックアップセットからファイルを復元するには、ufsrestore コマンドは使用できません。このようなファイルは、SunOS 4.x システムで復元しなければなりません。
対話式コマンドを使用するとき、次の例のように ufsrestore> プロンプトが表示されます。
# ufsrestore ivf /dev/rmt/0 Verify volume and initialize maps Media block size is 126 Dump date: Wed Nov 06 15:21:10 1996 Dumped from: the epoch Level 0 dump of /usr on venus:/dev/dsk/c0t1d0s6 Label:none Extract directories from tape Initialize symbol table. ufsrestore>
ufsrestore> プロンプトでは、「対話式復元コマンド」にリストされているコマンドを使用して、ファイルを見つけたり、復元するファイルのリストを作成したり、作成したリストのファイルを復元したりできます。
この章で説明する手順は次のとおりです。
以前は使用できていたプログラム、ファイル、またはディレクトリにアクセスできなくなるような問題が発生する (システム管理者に問い合わせる) 場合があります。このようなときは、次の 3 点を調べてください。
ユーザーの検索パスが変更されているか、または検索パス中のディレクトリが適切な順序であるか
ファイルまたはディレクトリに適切なアクセス権や所有権があるか
ネットワーク経由でアクセスするシステムの構成が変更されているか
この章では、これらの 3 点を確認する方法を簡単に説明して、可能な解決策を提案します。
「コマンドが見つかりません」というメッセージは、次のいずれかを示しています。
コマンドがそのシステムに存在しない。
コマンドのディレクトリが検索パスに存在しない。
検索パスの問題を解決するには、コマンドが格納されているディレクトリのパス名を知る必要があります。
間違ったバージョンのコマンドが見つかってしまうのは、同じ名前のコマンドを持つディレクトリが検索パスにある場合です。この場合、正しいディレクトリが、検索パスの後ろの方にあるか、まったく存在しない可能性があります。
現在の検索パスを表示するには、echo $PATH コマンドを使用します。
$ echo $PATH /home/kryten/bin:/sbin:/usr/sbin:/usr/openwin/bin:/usr/openwin/bin/xview: /usr/dist/local/exe:/usr/dist/exe
間違ったバージョンのコマンドを実行しているかどうかを調べるには、which コマンドを使用します。
$ which maker /usr/doctools/frame5.1/bin/maker
which コマンドは、.cshrc ファイルの中のパス情報を調べます。.cshrc ファイルに which コマンドの認識する別名を定義している場合に、Bourne シェルか Korn シェルから which コマンドを実行すると、間違った結果が返される場合があります。正しい結果を得るために、which コマンドは C シェルで使用してください。Korn シェルの場合は、whence コマンドを使用します。
現在の検索パスを表示して、コマンドが入っているディレクトリがユーザーのパス内に存在しない (あるいはスペルが間違っている) ことを確認します。
$ echo $PATH
次の項目をチェックします。
検索パスは正しいか
検索パスのいずれかにコマンドが存在するか
パスを修正する必要がある場合は、手順 3 に進みます。修正する必要がない場合は、手順 4 に進みます。
次の表に示すように、適切なファイルでパスを追加します。
次のように、新しいパスを有効にします。
シェル |
パスが指定されているファイル |
パスを有効にするコマンド |
---|---|---|
Bourne と Korn |
.profile |
$ . ./.profile |
C |
.cshrc |
hostname% source .cshrc |
|
.login |
hostname% source .login |
次のコマンドを使用して、パスを確認します。
$ which command
この例は、which コマンドを使用して、OpenWindows の実行可能ファイルが検索パス中のどのディレクトリにも存在しないことを示しています。
venus% openwin openwin: コマンドが見つかりません venus% echo $PATH no openwin in . /home/ignatz /sbin /usr/sbin /usr/bin /etc /home/ignatz/bin /bin /home/bin /usr/etc venus% vi ‾.cshrc(適切なコマンドディレクトリを検索パスに追加する) venus% source .cshrcvenus% openwin
コマンドを見つけることができなかった場合は、マニュアルページでそのディレクトリパスを調べます。たとえば、lpsched コマンド (lp プリンタデーモン) を見つけることができなかった場合、lpsched(1M) のマニュアルページを調べると、そのパスが /usr/lib/lp/lpsched であることが解かります。
以前はアクセスできていたファイルまたはディレクトリにアクセスできない場合、そのファイルまたはディレクトリのアクセス権または所有権が変更されていることがあります。
表 71-1 は、ファイルとディレクトリのアクセス権を設定する 8 進数値を示しています。これらの数を 3 つのセットで使用して、所有者、グループ、およびその他のユーザーのアクセス権を (この順番で) 設定します。たとえば、値 644 は、所有者に読み取り権と書き込み権を設定して、グループとその他のユーザーに読み取り権のみを設定します。
表 71-1 ファイルのアクセス権を示す 8 進数値
値 |
説明 |
---|---|
0 |
アクセス権なし |
1 |
実行権のみ |
2 |
書き込み権のみ |
3 |
書き込み権と実行権 |
4 |
読み取り権のみ |
5 |
読み取り権と実行権 |
6 |
読み取り権と書き込み権 |
7 |
読み取り権、書き込み権、および実行権 |
誰かがスーパーユーザーとしてファイルを編集したために、ファイルやディレクトリの所有権が変更されていることがあります。新しいユーザーのためにホームディレクトリを作成するときは、そのホームディレクトリのドット (.) ファイルの所有者をそのユーザーにすることを忘れないようにしてください。ユーザーが「.」を所有していない場合、そのユーザーは自分のホームディレクトリにファイルを作成できません。
アクセスに関する問題は、グループの所有権が変更されたとき、またはユーザーがメンバーであるグループが /etc/group データベースから削除されたときにも発生します。
ファイルの所有権を変更するには、chown コマンドを使用します。
# chown new-owner filename
new-owner |
ファイルの新しい所有者のユーザー名または UID を指定する。指定したユーザー名のエントリが passwd ファイルに存在しなければならない |
filename |
ファイルまたはディレクトリを指定する |
グループの所有権を変更するには、chgrp コマンドを使用します。
# chgrp new-owner filename
new-owner |
新しいグループの所有者のグループ名または GID を指定する。指定したグループ名のエントリが group ファイルに存在しなければならない |
filename |
ファイルまたはディレクトリを指定する |
ファイルのアクセス権を表示します。
# ls -l filename
-l |
ファイルの現在のアクセス権を含む、長いリストを表示する |
filename |
ファイルまたはディレクトリを指定する |
# chmod nnn filename
nnn |
ファイルの所有者、グループの所有者、およびその他のすべてのユーザーに (この順番で) 割り当てるアクセス権を表す数値 |
filename |
ファイルまたはディレクトリを指定する |
アクセス権は、指定した数値を使用して変更されます。
ファイル名にメタキャラクタ (* など) を指定したり、ファイル名とメタキャラクタを組み合わせたりすることによって、ディレクトリ内の複数のファイルまたはすべてのファイルのアクセス権を変更できます。
ls -l コマンドを使用して、アクセス権が変更されていることを確認します。
$ ls -l filename
長いリストによって、ファイルの現在のアクセス権が表示されます。
次の例は、公開ディレクトリのアクセス権を、744 (読み取り/書き込み/実行、読み取り専用、読み取り専用) から 755 (読み取り/書き込み/実行、読み取り/実行、読み取り/実行) に変更する方法を示しています。
$ ls -ld public_dir drwxr--r-- 1 ignatz staff 6023 Aug 5 12:06 public_dir $ chmod 755 public_dir $ ls -ld public_dir drwxr-xr-x 1 ignatz staff 6023 Aug 5 12:06 public_dir
次の例は、実行可能なシェルスクリプトのアクセス権を、読み取り/書き込みから読み取り/書き込み/実行に変更する方法を示しています。
$ ls -l my_script -rw------- 1 ignatz staff 6023 Aug 5 12:06 my_script $ chmod 700 my_script $ ls -l my_script -rwx------ 1 ignatz staff 6023 Aug 5 12:06 my_script
ファイルまたはディレクトリの所有者を変更するには、そのファイルまたはディレクトリを所有していなければなりません (または、ルートのアクセス権を持っていなければなりません)。
スーパーユーザーになります。
ファイルのアクセス権を表示します。
# ls -l filename
-l |
ファイルの所有権 (3 番目の列に表示される) を含む、長いリストを表示する |
filename |
ファイルまたはディレクトリを指定する |
# chown new-owner filename
所有権は、指定した新しい所有者に割り当てられます。
ファイルの所有権が変更されていることを確認します。
# ls -l filename
# ls -l quest -rw-r--r-- 1 fred staff 6023 Aug 5 12:06 quest # chown ignatz quest # ls -l quest -rw-r--r-- 1 ignatz staff 6023 Aug 5 12:06 quest
ファイルのアクセス権を表示します。
# ls -l filename
ファイルまたはディレクトリを所有するグループを変更します。
$ chgrp GID filename
指定したファイルまたはディレクトリのグループ ID が変更されます。
ファイルの所有権が変更されていることを確認します。
# ls -l filename
$ ls -l junk -rw-r--r-- 1 kryten other 3138 Oct 31 14:49 junk $ chgrp staff junk $ ls -l junk -rw-r--r-- 1 kryten staff 3138 Oct 31 14:49 junk
グループアカウントを編集する方法については、第 51 章「ファイルのセキュリティの適用手順」を参照してください。
リモートコピーコマンド rcp を使用してネットワーク上でファイルをコピーするときに問題が発生した場合、リモートシステム上のディレクトリやファイルは、アクセス権の設定によりアクセスが制限されている可能性があります。他に考えられる問題の原因は、リモートシステムとローカルシステムがアクセスを許可するように構成されていないことです。
ネットワークアクセスで発生する問題と AutoFS 経由でシステムにアクセスするときの問題については、『NFS の管理』を参照してください。
この章では、印刷サービスの設定または管理の際に発生する可能性のある印刷上の問題を解決する方法について説明します。
この章では次の手順を説明します。
印刷と LP 印刷サービスの概要については、第 39 章「印刷管理の概要」を参照してください。
プリンタを設定し終わった後に、何も印刷されないことがあります。また、若干は処理されるものの、何か印刷しても正しく出力されない、または読みづらいなど、期待どおりの結果が得られないことがあります。このような問題が発生すると、他にも次のような問題が発生することがあります。
LP コマンドがハングする
プリンタがアイドル状態になる
ユーザーが矛盾したメッセージを受け取る
この章の推奨事項の多くはパラレルプリンタに関連しますが、より一般的なシリアルプリンタにも当てはまります。
Solaris 2.6 リリースをインストールした後 Admintool を使用してリモートプリンタへのアクセスを追加しようとすると、次のメッセージが表示される場合があります。
Admintool: Error add remote printer failed
この場合は、SunSoft 印刷クライアントソフトウェアがネットワークにインストールされていて、リモートプリンタがすでに利用できる可能性があります。プリンタを追加する前に lpstat -t コマンドを使用して、プリンタが利用できるかどうかを確認してください。
何も印刷されないときは、次の部分をチェックします。
プリンタハードウェア
ネットワーク
LP 印刷サービス
バナーページは印刷されるのに、他には何も印刷されない場合は、不正な出力の特殊ケースです。「出力が正しくない場合の解決方法」を参照してください。
ハードウェアは、最初にチェックすべきポイントです。文字どおり、プリンタが電源に接続され、電源がオンになっているかどうかを確認してください。また、ハードウェア付属のマニュアルを参照して、ハードウェアの設定値を調べてください。コンピュータによっては、プリンタポートの特性を変更するハードウェアスイッチが付いているものがあります。
プリンタハードウェアには、プリンタ、コンピュータへの接続ケーブル、ケーブルの先端を接続するポートが含まれます。一般的なアプローチとしては、プリンタからコンピュータへと順番に調べてください。まず、プリンタをチェックします。次に、ケーブルがプリンタに接続される箇所をチェックします。次に、ケーブルをチェックします。最後に、ケーブルがコンピュータに接続されている箇所をチェックします。
よく問題が発生するのは、印刷クライアントから印刷サーバーに送られるリモート印刷要求です。印刷サーバーと印刷クライアント間でネットワークアクセスが使用可能になっているかどうかを確認してください。
ネットワークがネットワーク情報サービスプラス (NIS+) を実行している場合は、システム間のアクセスを使用可能にする方法について、『NIS+ と FNS の管理』を参照してください。ネットワークがネットワーク情報サービス (NIS) または NIS+ を実行していない場合は、印刷サーバーと印刷クライアントを設定する前に、各クライアントシステムのインターネットアドレスとシステム名を、印刷サーバー上の /etc/hosts ファイルに組み込んでください。また、印刷サーバーのインターネットアドレスとシステム名を、各印刷クライアントシステムの /etc/hosts ファイルに組み込まなければなりません。
正常に印刷するには、印刷サーバーと印刷クライアント上で LP スケジューラが動作していなければなりません。動作していない場合は、/usr/lib/lp/lpsched コマンドを使用して起動する必要があります。スケジューラの起動に問題がある場合は、「印刷スケジューラを再起動する方法」を参照してください。
スケジューラが動作していることの他に、出力を行う前にプリンタが使用可能になっていて、印刷要求を受け付けられる状態になっていなければなりません。LP 印刷サービスがプリンタへの要求を受け付けなければ、依頼した印刷要求は拒否されます。その場合、一般にユーザーは印刷要求を依頼すると警告メッセージを受け取ります。LP 印刷サービスがプリンタで使用可能になっていないと、印刷要求はプリンタが使用可能になるまでシステム上の待ち行列に残ります。
一般に、次のようにして印刷時の問題を分析してください。
手順ごとに印刷要求の経路を追跡します。
手順ごとに LP 印刷サービスの状態を調べます。
構成は正しいか
プリンタは要求を受け付けるか
プリンタは要求を処理できるか
要求が転送時にハングしている場合は、syslog.conf 内の lpr.debug を設定して、転送状況を表示します。
要求がローカルでハングしている場合は、プリンタデバイスエラー (障害) の通知を送らせ、プリンタを再度使用可能にします。
「印刷時の問題の解決」に掲載されている手順では、この方法を使用して LP 印刷サービスに関する各種の問題に対処する方法を説明します。
LP 印刷サービスの基本的な問題解決の手順で問題を解決できない場合は、当てはまる特定のクライアント/サーバーのケースごとに問題解決の手順を実行する必要があります。
SunOS 5.x 印刷サーバーを使用する SunOS 5.x 印刷クライアント (操作説明については、「SunOS 5.x クライアントから SunOS 5.x 印刷サーバーへの印刷をチェックするには」を参照)
SunOS 4.1 印刷サーバーを使用する SunOS 5.x 印刷クライアント (操作説明については、「SunOS 5.x クライアントから SunOS 4.1 印刷サーバーへの印刷をチェックするには」を参照)
SunOS 5.x 印刷サーバーを使用する SunOS 4.1 印刷クライアント (操作説明については、「SunOS 4.1 クライアントから SunOS 5.x 印刷サーバーへの印刷をチェックするには」を参照)
プリンタと印刷サービスソフトウェアが正しく構成されていない場合は、プリンタで印刷されても、期待どおりに出力されないことがあります。
LP 印刷サービスでプリンタを設定するときに間違ったプリンタタイプを使用すると、不適切なプリンタ制御文字がプリンタに送られる可能性があります。その結果は予測できません。何も印刷されない、出力が読みづらい、正しい文字セットやフォントで印刷されないなどの結果となります。
SunOS 5.x 印刷クライアントまたは SunOS 5.x 印刷サーバーで間違ったファイル内容形式を指定した場合、バナーページは印刷できますが、他には何も印刷されません。プリンタに指定されたファイル内容形式は、プリンタがフィルタなしで直接印刷できるファイル形式を示します。ユーザーがプリンタにファイルを送信すると、フィルタなしでファイルはプリンタに直接送信されます。プリンタが実際にその形式を処理できないときに、問題が発生します。
印刷クライアントの設定時には、ファイル内容形式が印刷サーバーと印刷クライアントの両方で正しくなければならないので、間違いをおかす機会が多くなります。推奨する方法は、印刷クライアントのファイル内容形式を any に設定することです。こうすると、ファイルはサーバーに直接送信され、フィルタが必要かどうかはサーバー側で決定されます。したがって、ファイル内容形式は、サーバー側だけで正しく指定すればよいことになります。
印刷クライアント側でファイル内容を指定し、フィルタリングの負荷をサーバーからクライアントに移すことができますが、内容の形式は印刷サーバー側でサポートしなければなりません。
デフォルトの stty (標準端末) 設定値がプリンタから要求される設定値と一致しないと、多数のフォーマット上の問題が生じる可能性があります。この後の節では、設定値の一部が間違っているときに発生する問題について説明します。
コンピュータのボーレート設定値がプリンタのボーレート設定値と一致しないときは、通常何らかの出力はありますが、希望する出力は得られません。特殊文字や不要なスペースが異常に混じったランダムな出力が表示されます。LP 印刷サービスのデフォルトは 9600 ボーレートです。
プリンタがパラレルポートで接続されている場合、ボーレート設定値は関係ありません。
プリンタによっては、パリティビットを使用して、印刷用に受け取ったデータに伝送中に誤りがなかったことを確認するものがあります。コンピュータとプリンタのパリティビットの設定値は一致しなければなりません。一致しない場合、文字によってはまったく印刷されないか、他の文字で置き換えられることもあります。その出力は、文字間隔が正しく、ほとんどの文字が正しい位置にあるので、一見正しいように見えます。LP 印刷サービスの場合、デフォルトではパリティビットは設定されません。
ファイルにタブが含まれていても、プリンタがタブを予期していなければ、印刷出力にはファイルの内容が完全に印刷されますが、テキストは右マージンに対して正確に配置されないことがあります。また、プリンタのタブ設定が間違っていると、テキストに左マージンがない、テキストがつながってしまう、テキストがページの一部分に集中する、間違ってダブルスペースになってしまうなどの問題が発生します。デフォルトでは、タブは 8 スペースごとに設定されます。
出力がシングルスペースのはずなのにダブルスペースになる場合は、プリンタのタブ設定値が間違っているか、プリンタが Return の後に 1 行追加されています。LP 印刷サービスは、改行の前に 1 つ Return を追加するので、その組み合わせによって 2 行の改行が発生します。
ジグザグに印刷される場合は、改行の前に Return を送る stty オプションの onlcr が設定されていません。stty=onlcr オプションはデフォルトで設定されますが、他の印刷問題を解決しようとしたときに、それをクリアした可能性があります。
lp コマンド (lpsystem、lpadmin、lpstat など) を入力しても何も発生しない (エラーメッセージ、状態情報、またはプロンプトが表示されない) 場合は、LP スケジューラに問題が発生した可能性があります。このような問題は、一般に LP スケジューラを停止して再起動すれば解決できます。操作手順については、「印刷スケジューラを停止する方法」と 「印刷スケジューラを再起動する方法」を参照してください。
プリンタが印刷要求を待ち行列に入れているのに、アイドル状態になっていることがあります。プリンタがアイドル状態になっている場合は、次の原因が考えられます。
現在の印刷要求にフィルタがかけられている
プリンタに障害がある
ネットワーク上の問題が原因で、印刷処理が中断されている
低速印刷フィルタは、プリンタを拘束しないようにバックグラウンドで実行されます。フィルタリングが必要な印刷要求は、フィルタリングが終わるまで印刷されません。
LP 印刷サービスが障害を検出すると、印刷はすぐにではありませんが自動的に再開されます。LP 印刷サービスは約 5 分間待機し、要求が正常に印刷されるまで試行し続けます。プリンタを使用可能にすると、すぐに再試行できます。
ネットワーク経由でファイルを印刷するときには、次の問題が発生することがあります。
印刷サーバーに送られた要求が、クライアントシステム (ローカル) の待ち行列で停止する
印刷サーバーに送られた要求が、印刷サーバー (リモート) の待ち行列で停止する
印刷サーバーに依頼された印刷要求は、次の原因でクライアントシステムの待ち行列で停止することがあります。
印刷サーバーがダウンしている
プリンタが印刷サーバー側で使用不可にされている
印刷クライアントと印刷サーバー間のネットワークがダウンしている
ベースになる SunOS 5.x ネットワークソフトウェアが適切に設定されていない
問題の原因を突き止めるときには、新しい要求を待ち行列に追加しないでください。詳細は、「プリンタへの印刷要求を受け付けるまたは拒否する方法」 を参照してください。
印刷要求が印刷サーバーの待ち行列で停止する場合は、プリンタが使用不可になっている可能性があります。プリンタが要求を受け付けても処理しないとき、その要求は印刷するために待ち行列に入れられます。プリンタを使用可能にすると、それ以外に問題がなければ、待ち行列内の印刷要求は印刷されます。
ユーザーが印刷要求を入力すると、クライアントシステムからは受け付けられたことが通知され、印刷サーバーからは印刷要求が拒否されたことを示すメールを受け取ることがあります。これらの矛盾したメッセージは、次の原因で発生することがあります。
印刷クライアントは要求を受け付けることができても、印刷サーバーは要求を拒否している場合
印刷クライアント側のプリンタの定義が、印刷サーバー側のプリンタの定義と一致しない場合。特に、フィルタ、文字セット、印字ホイール、フォームなど、印刷ジョブコンポーネントの定義が、クライアントとサーバーシステムの間で一致していない場合
ローカルユーザーが印刷サーバー上でプリンタにアクセスできるように、これらのジョブコンポーネントの定義が印刷クライアントと印刷サーバーの両方で登録されているかどうかを確認してください。
この節では、次の手順について説明します。
出力されない問題を解決する方法
出力が正しくない問題を解決する方法
LP コマンドのハングを解除する方法
アイドル状態になった (ハングした) プリンタの問題を解決する方法
矛盾した状態メッセージを解決する方法
この作業には、次の問題解決の手順が含まれています。印刷要求をプリンタに出したのに何も印刷されない場合は、これらの手順を試してください。
ハードウェアのチェック (「ハードウェアをチェックするには」)
ネットワークのチェック (「ネットワークをチェックするには」)
LP 印刷サービスの基本機能のチェック (「LP 印刷サービスの基本機能をチェックするには」)
SunOS 5.x 印刷クライアントから SunOS 5.x 印刷サーバーへの印刷チェック (「SunOS 5.x クライアントから SunOS 5.x 印刷サーバーへの印刷をチェックするには」)
SunOS 5.x 印刷クライアントから SunOS 4.1 印刷サーバーへの印刷チェック (「SunOS 5.x クライアントから SunOS 4.1 印刷サーバーへの印刷をチェックするには」)
SunOS 4.1 印刷クライアントから SunOS 5.x 印刷サーバーへの印刷チェック (「SunOS 4.1 クライアントから SunOS 5.x 印刷サーバーへの印刷をチェックするには」)
該当する印刷クライアント/サーバーのケースに進む前に、上記のうち最初の 3 つの手順をリストの順に試してください。ただし、バナーページは印刷されても他に何も印刷されない場合は、「出力が正しくない場合の問題を解決する方法」の説明に進んでください。
プリンタがコンセントに接続され、電源がオンになっているかどうかを確認します。
ケーブルがプリンタのポートと、システムまたはサーバーのポートに接続されているかどうかを確認します。
そのケーブルが正しいケーブルであり、欠陥がないことを確認します。
ハードウェア付属のマニュアルを参照してください。プリンタがシリアルポートに接続されている場合は、そのケーブルでハードウェアフロー制御がサポートされることを確認してください。NULL モデムアダプタでは、この機能がサポートされます。表 72-1 は、NULL モデムケーブル用のピン構成を示しています。
表 72-1 NULL モデムケーブル用のピン構成
ホスト |
プリンタ |
|
---|---|---|
Mini-Din-8 |
25-Pin D-sub |
25-Pin D-sub |
- |
1(FG) |
1(FG) |
3(TD) |
2(TD) |
3(RD) |
5(RD) |
3(RD) |
2(TD) |
6(RTS) |
4(RTS) |
5(CTS) |
2(CTS) |
5(CTS) |
4(RTS) |
4(SG) |
7(SG) |
7(SG) |
7(DCD) |
6(DSR)、8(DCD) |
20(DTR) |
1(DTR) |
20(DTR) |
6(DSR)、8(DCD) |
ポート用のハードウェアスイッチが正しく設定されていることを確認します。
正しい設定については、プリンタのマニュアルを参照してください。
プリンタが動作するかどうかを確認します。
プリンタにセルフテスト機能が付いている場合は、それを使用します。プリンタのセルフテストの詳細は、プリンタのマニュアルを参照してください。
コンピュータとプリンタのボーレートの設定値が正しいかどうかを確認します。
コンピュータとプリンタのボーレートの設定値が一致しなければ、何も印刷されないことがあり、さらに正しく出力されない場合もあります。詳細は、「出力が正しくない場合の問題を解決する方法」を参照してください。
ping コマンドを使用すると、印刷サーバーと印刷クライアント間のネットワークが正しく設定されているかどうかを確認できます。
print_client# ping print_server print_server is alive print_server# ping print_client print_client not available
システムが動作していることを示すメッセージが表示されれば、そのシステムにアクセスできることがわかるので、そのネットワークは正常です。また、このメッセージは、入力したホスト (システム) 名が、ネームサーバーまたはローカルの /etc/hosts ファイルによって IP アドレスに変換されたことを示します。変換されていない場合は、IP アドレスを入力する必要があります。
「not available」というメッセージが表示された場合は、次の 3 点を確認してください。まず、NIS または NIS+ はサイトでどのように設定されているか。次に、印刷サーバーと印刷クライアントが相互に通信できるように付加的な作業が必要か。最後に、サイトが NIS または NIS+ を実行していない場合、各印刷クライアントの /etc/hosts ファイルに印刷サーバーの IP アドレスを入力し、印刷サーバーの /etc/hosts ファイルにすべての印刷クライアントの IP アドレスを入力したか確認します。
(SunOS 5.0 - 5.1 印刷サーバーのみ) listen ポートモニターが正しく構成されているかどうかを確認します。
(SunOS 5.0 - 5.1 印刷サーバーのみ) ネットワーク待機サービスが印刷サーバー上のポートモニターに登録されているかどうかを確認します。
この手順では、基本 LP 印刷サービス機能をチェックする例として、プリンタ luna を使用しています。
印刷サーバー上と印刷クライアント上で、LP 印刷サービスが動作していることを確認します。
このコマンドは、LP スケジューラが動作しているかどうかを表示します。
# lpstat -r scheduler is running
スケジューラが動作していない場合は、スーパーユーザーまたは lp になり、スケジューラを起動します。
# /usr/lib/lp/lpsched
スケジューラを起動できない場合は、「LP 印刷サービスのハングを解除する方法」を参照してください。
印刷サーバー上と印刷クライアント上で、プリンタが要求を受け付けていることを確認します。
プリンタが要求を受け付けていることを確認します。
# lpstat -a mars accepting requests since Jun 04 16:13 1997 luna not accepting requests since Jun 04 08:10 1997 unknown reason
このコマンドは、LP システムがシステム用に構成された各プリンタの要求を受け付けているかどうかを確認します。
プリンタが要求を受け付けていない場合は、スーパーユーザーまたは lp になり、プリンタが印刷要求を受け付けるようにします。
# accept luna
これで、指定したプリンタは要求を受け付けます。
印刷サーバー上と印刷クライアント上で、プリンタが依頼された印刷要求の印刷で使用可能になっているかどうかを確認します。
プリンタが使用可能になっていることを確認します。
# lpstat -p luna printer luna disabled since Jun 04 09:40 1997. available. unknown reason
このコマンドは、プリンタの状態に関する情報を表示します。プリンタ名を省略すると、システム用に設定されたすべてのプリンタに関する情報を表示できます。次の例は、使用不可になっているプリンタを示しています。
プリンタが使用不可になっている場合は、スーパーユーザーまたは lp になり、プリンタを使用可能にします。
# enable luna printer "luna" now enabled.
指定したプリンタが、印刷要求の処理に使用可能になります。
印刷サーバー上で、プリンタが正しいシリアルポートに接続されていることを確認します。
プリンタが正しいシリアルポートに接続されていることを確認します。
# lpstat -t scheduler is running system default destination: luna device for luna: /dev/term/a
「device for printer-name」というメッセージは、ポートアドレスを示します。LP 印刷サービスの接続先のポートにケーブルが接続されているかどうかを確認します。ポートが正しければ、手順 5に進みます。
スーパーユーザーまたは lp になります。
ポートを表すデバイスファイルのファイル所有権を変更します。
# chown lp device-filename
このコマンドは、特殊なユーザー lp をデバイスファイルの所有者として割り当てます。このコマンドで、device-filename はデバイスファイル名です。
プリンタポートのデバイスファイルのアクセス権を変更します。
# chmod 600 device-filename
このコマンドにより、root または lp だけがプリンタポートデバイスファイルにアクセスできます。
印刷サーバー上と印刷クライアント上で、プリンタが正しく構成されていることを確認します。
プリンタが適切に設定されていることを確認します。
# lpstat -p luna -l printer luna is idle. enabled since May 20 17:39 1997. available. Content types: postscript Printer types: PS
上の例は、正しく設定された PostScript プリンタと、そのプリンタを印刷要求の処理に利用できることを示しています。プリンタタイプとファイル内容形式が正しい場合は、手順 6 に進みます。
プリンタタイプまたはファイル内容形式が違っている場合は、印刷クライアント上で、プリンタタイプを unknown に設定し、内容形式を any に設定してください。
# lpadmin -p printer-name -T printer-type -I file-content-type
印刷サーバー上で、プリンタがプリンタ障害のために待機していないことを確認します。
プリンタ障害のためにプリンタが待機していないことを確認します。
# lpadmin -p printer-name -F continue
このコマンドは LP 印刷サービスに対して、障害のために待機していない場合は続行するように指示します。
プリンタを再び使用可能にすることによって、すぐに再試行させます。
# enable printer-name
(省略可能) プリンタ障害をすぐに通知するように、LP 印刷サービスに指示します。
# lpadmin -p printer-name -A 'write root'
このコマンドは LP 印刷サービスに対して、プリンタが障害を起こした場合に、root に書き込むというデフォルトポリシーを設定し、root がログインした端末にプリンタ障害メッセージを送るように指示します。これにより、問題を修正するときに障害通知をすぐに受け取れます。
プリンタがログイン端末として間違った設定になっていないかどうかを確認します。
ログイン端末としてプリンタを設定する作業では誤りをおかしやすいので、当てはまらないように思われる場合にも、必ず設定値を確認してください。
ps -ef コマンドの出力で、プリンタポートのエントリを探します。
# ps -ef root 169 167 0 Apr 04 ? 0:08 /usr/lib/saf/listen tcp root 939 1 0 19:30:47 ? 0:02 /usr/lib/lpsched root 859 858 0 19:18:54 term/a 0:01 /bin/sh -c ¥ /etc/lp/ interfaces/luna luna-294 rocket!smith "passwd¥n## #
このコマンドの出力で、プリンタポートのエントリを探します。上の例で、ポート /dev/term/a はログイン端末として間違って設定されています。この行の最後に "passwd¥n## 情報が付いているのでわかります。ポートが正しく設定されている場合は、この手順の最後を飛ばしてください。
印刷要求を取り消します。
# cancel request-id
このコマンドで、request-id は取り消したい印刷要求の要求 ID 番号です。
プリンタポートをログインデバイス以外のものとして設定します。
# lpadmin -p printer-name -h
ps -ef コマンドからの出力をチェックして、プリンタポートがログインデバイスではなくなったことを確認します。
基本的な LP 印刷サービス機能に印刷時の問題の原因が見つからない場合は、次の中から該当するクライアント/サーバーの手順に進んでください。
まだチェックしていない場合は、印刷サーバー上で LP 印刷サービスの基本機能をチェックします。
基本機能をチェックする手順については、「LP 印刷サービスの基本機能をチェックするには」を参照してください。印刷クライアントから要求が出されたときに何も印刷されない原因を探す前に、プリンタがローカルで正しく動作することを確認してください。
まだチェックしていない場合は、印刷クライアント上で LP 印刷サービスの基本機能をチェックします。
基本機能をチェックする手順については、「LP 印刷サービスの基本機能をチェックするには」を参照してください。クライアントからの要求が印刷される前に、印刷クライアント上で LP スケジューラが動作していなければならず、またプリンタが使用可能であり、要求を受け付けられる状態になっていなければなりません。
次の手順のほとんどは、root または lp としてログインして実行しなければなりません。
SunOS 5.1 印刷クライアント上でのみ、Admintool の 「プリンタの変更 (Modify Printer)」ウィンドウを表示して、印刷サーバーのタイプが s5 になっていることを確認します。
このコマンドでは、印刷サーバーが正常に動作しているかどうかが表示されます。
# lpstat -t luna scheduler is running system default destination: luna device for luna: /dev/term/a luna accepting requests since May 20 17:41 1997. available. printer luna now printing luna-314. enabled since May 20 17:41 1997. available. luna-129 root 488 May 20 17:45 #
上の例は、印刷サーバーが起動され、動作していることを示しています。
印刷サーバーが正常に動作していない場合は、手順 1 に戻ります。
まだチェックしていない場合は、印刷クライアント上で LP 印刷サービスの基本機能をチェックします。
手順については、「LP 印刷サービスの基本機能をチェックするには」を参照してください。
印刷サーバーがアクセス可能であることを確認します。
印刷サーバーの lpd デーモンが正しく構成されていることを確認します。
印刷サーバー上でスーパーユーザーになり、lpc コマンドを入力します。
# /usr/etc/lpc lpc>
LP 状態情報を取得します。
lpc> status luna: queuing is enabled printing is enabled no entries no daemon present lpc>
状態情報が表示されます。上の例で、デーモンは動作していないので再起動する必要があります。
lpc> restart luna
デーモンが再起動されます。
lpd デーモンが起動されていることを確認します。
lpc> status
lpc コマンドを終了します。
lpc> quit
シェルプロンプトが再表示されます。
印刷クライアントが印刷サーバーにアクセスできることを確認します。
4.1 印刷サーバー上に /etc/hosts.lpd ファイルがあるかどうかをチェックします。
4.1 印刷サーバー上では、このファイルが存在する場合は、着信印刷要求を受け付けられるかどうかの判定に使用されます。このファイルが存在しない場合、すべての印刷クライアントシステムがアクセスできるため、次の手順 b と c を飛ばしてください。
ファイルが存在する場合は、印刷クライアントがファイルにリストされるかどうかを調べます。
ファイルにリストされていないクライアントシステムからの要求は、印刷サーバーに転送されません。
クライアントがリストされていない場合は、印刷クライアントをファイルに追加します。
ここまでで特に問題点が見つからない場合は、SunOS 4.1 システムは正常に設定され、機能しているはずです。
印刷クライアントからリモート lpd 印刷デーモンへの接続が正しく行われていることを確認します。
リモート印刷サーバーが SunOS 4.1 システムとして正しく識別されていることを確認します。
まだチェックしていない場合は、印刷サーバー上で LP 印刷サービスの基本機能をチェックします。
手順については、「LP 印刷サービスの基本機能をチェックするには」を参照してください。印刷クライアントから要求が出されたときに何も印刷されない原因を調べる前に、プリンタがローカルで動作していることを確認してください。
次の手順で指定されたシステムでは、スーパーユーザーまたは lp としてログインする必要があります。
印刷クライアントにアクセスできることを確認します。
印刷クライアント上で、プリンタが正しく設定されているかを確認します。
# lpr -P luna /etc/fstab lpr: cannot access luna #
このコマンドでは、印刷クライアントが動作しているかどうかが表示されます。上の例は、印刷クライアントが正常に動作していないことを示しています。
印刷クライアント上で lpd デーモンが動作していることを確認します。
印刷クライアント上で、印刷サーバーを識別する printcap エントリが存在することを確認します。
プリンタが認識されていることを確認します。
# lpr -P mercury /etc/fstab lpr: mercury: unknown printer #
上の例は、指定したプリンタのエントリが /etc/printcap ファイルに入っていないことを示しています。
エントリがない場合は、/etc/printcap ファイルを編集して次の情報を追加します。
printer-name|print-server:¥ :lp=:rm=print-server:rp=printer-name:br#9600:rw:¥ :lf=/var/spool/lpd/printer-name/log:¥ :sd=/var/spool/lpd/printer-name:
次の例は、印刷サーバー neptune に接続されたプリンタ luna のエントリを示しています。
luna|neptune:¥ :lp=:rm=neptune:rp=luna:br#9600:rw:¥ :lf=/var/spool/lpd/luna/log:¥ :sd=/var/spool/lpd/luna:
再試行を強制し、印刷クライアント lpd が待機状態になっていないことを確認します。
印刷サーバーが動作し応答している場合は、印刷クライアント lpd は再試行する前に待ち状態になっている可能性があります。
印刷サーバーへの接続をチェックします。
印刷クライアント上でスーパーユーザーになり、プリンタのログファイルを調べます。
# more /var/spool/lpd/luna/log
多くの場合、何も表示されません。
プリンタ状態ログもチェックします。
# more /var/spool/lpd/luna/status waiting for luna to come up #
接続が正常な場合は、印刷サーバー上で印刷サーバーが正しく設定されているかを確認します。
# lpstat -t scheduler is running system default destination: luna device for luna: /dev/term/a luna accepting requests since May 20 17:45 1997 printer luna now printing luna-314. enabled since May 20 17:45 1997. available. luna-129 root 488 May 20 17:47 #
上の例は、印刷サーバーが起動され、動作していることを示しています。
印刷サーバーが動作していない場合は、先に進む前に 手順 1 に戻ってください。
スーパーユーザーまたは lp としてログインします。
プリンタタイプが正しくないと、正しく出力されないことがあります。たとえば、プリンタタイプ PS を指定してページを逆順に印刷する場合は、プリンタタイプ PSR を試してください (この 2 つのタイプ名は大文字で指定しなければなりません)。また、プリンタタイプが正しくないと、テキストの欠落、読みづらいテキスト、または間違ったフォントのテキストが出力されることがあります。プリンタタイプを判別するには、terminfo データベース内のエントリを調べます。terminfo データベースの構造については、「プリンタタイプ」を参照してください。
印刷サーバー上で、プリンタの特性を表示します。
$ lpstat -p luna -l printer luna is idle. enabled since Tue Apr 29 11:55:52 MDT 1997. available. Form mounted: Content types: any Printer types: NeWSprinter20 Description: Connection: direct Interface: /etc/lp/interfaces/alamosa After fault: continue Users allowed: (all) Forms allowed: (none) Banner not required Character sets: Default pitch: Default page size: 80 wide 66 long Default port settings: $
プリンタのマニュアルを参照して、プリンタのモデルを調べます。
プリンタタイプが正しくない場合は、Admintool の「プリンタの変更 (Modify Printer)」オプションを使用して変更するか、次の lpadmin コマンドを使用します。
# lpstat -p printer-name -T printer-type
印刷クライアント上では、プリンタタイプを unknown にしてください。印刷サーバー上では、プリンタタイプは使用するプリンタのモデルをサポートするように定義された terminfo エントリと一致しなければなりません。使用するプリンタのタイプに関する terminfo エントリがない場合は、「サポートされていないプリンタの terminfo エントリを追加する方法」を参照してください。
バナーページは印刷されるが文書の本文が印刷されない場合は、ファイル内容形式を確認します。
プリンタに指定したファイル内容形式は、プリンタがフィルタなしで直接印刷できるファイル形式を示します。ファイル内容形式が正しくなければ、必要なときにフィルタリングがバイパスされることがあります。
前の手順の lpstat コマンドで表示されたファイル内容形式に関する情報をメモします。
印刷クライアント上では、1 つ以上の明示的な内容形式を指定する理由がない限り、ファイル内容形式を any にしてください。クライアント上で内容を指定すると、印刷サーバー上ではなく印刷クライアント上でフィルタリングが実行されます。また、クライアント上の内容形式は、印刷サーバー上で指定した内容形式と一致しなければならず、印刷サーバー上の内容形式はプリンタの機能を反映していなければなりません。
プリンタのマニュアルを参照し、プリンタで直接印刷できるファイルのタイプを判別します。
これらのファイル形式を参照するために使用する名前は、プリンタメーカーが使用している名前と一致しなくてもかまいません。ただし、使用する名前は LP 印刷サービスに認識されるフィルタで使用する名前と一致しなければなりません。
ファイル内容形式が正しくない場合は、Admintool の「プリンタの変更 (Modify Printer)」オプションで変更するか、次の lpadmin コマンドを使用します。
# lpadmin -p printer-name -I file-content-type(s)
必要に応じて、このコマンドを印刷クライアント上、印刷サーバー上、またはその両方で実行します。印刷クライアント上で -I any を試し、印刷サーバー上で -I "" を試してください。-I "" は、NULL のファイル内容形式リストを指定します。これは、プリンタはそのプリンタタイプと正確に一致するファイルしか直接印刷できないので、すべてのファイルをフィルタにかけることを意味します。
ファイルが印刷されないときは、まずこの組み合わせを選択してみるとよいでしょう。それで成功したら、印刷サーバー上で明示的な内容形式を指定し、不要なフィルタリングを減らすことができます。ローカルの PostScript プリンタでは、プリンタでサポートされている場合は、postscript または postscript,simple を使用してください。PS と PSR はファイル内容形式ではなく、プリンタタイプなので注意してください。
-I を省略すると、ファイル内容のリストはデフォルトの simple になります。-I オプションを使用し、simple 以外にもファイル内容形式を指定したい場合は、リストに simple を含めなければなりません。
複数のファイル内容形式を指定するときは、名前をカンマで区切ります。また、名前をスペースで区切り、リストを引用符で囲むこともできます。ファイル内容形式として any を指定すると、フィルタリングは行われないので、プリンタで直接印刷できるファイルタイプのみを送信する必要があります。
フォントのダウンロードに必要なフィルタリングを、印刷要求がバイパスしていないかどうかをチェックします。
ユーザーがコマンド lp -T PS を使用して印刷要求を PostScript プリンタに依頼すると、フィルタリングは実行されません。フィルタリングを強制するコマンド lp -T postscript を使用して要求を依頼しようとすると、文書に必要な非常駐フォントがダウンロードされることがあります。
プリンタポートの stty 設定値が正しいことを確認します。
プリンタのマニュアルを参照して、プリンタポートに合った stty 設定値を判別します。
プリンタがパラレルポートで接続されている場合、ボーレートの設定値は無関係です。
現在の設定値を調べるには、stty コマンドを使用します。
# stty -a < /dev/term/a speed 9600 baud; rows = 0; columns = 0; ypixels = 0; xpixels = 0; eucw 1:0:0:0, scrw 1:0:0:0 intr = ^c; quit = ^|; erase = ^?; kill = ^u; eof = ^d; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^q; stop = ^s; susp = ^z; dsusp = ^y; rprnt = ^r; flush = ^o; werase = ^w; lnext = ^v; parenb -parodd cs7 -cstopb -hupcl cread -clocal -loblk -parext -ignbrk brkint -ignpar -parmrk -inpck istrip -inlcr -igncr icrnl -iuclc ixon -ixany -ixoff imaxbel isig icanon -xcase echo echoe echok -echonl -noflsh -tostop echoctl -echoprt echoke -defecho -flusho -pendin iexten opost -olcuc onlcr -ocrnl -onocr -onlret -ofill -ofdel tab3 #
このコマンドでは、プリンタポートの現在の stty 設定値が表示されます。
LP 印刷サービスの標準プリンタインタフェースプログラムで使用されるデフォルトの stty オプションを表 72-2 に示しています。
表 72-2 標準インタフェースプログラムで使用されるデフォルトの stty 設定値
オプション |
意味 |
---|---|
-9600 |
ボーレートを 9600 に設定 |
-cs8 |
8 ビットバイトを設定 |
-cstopb |
1 バイト当たり 1 ストップビットを送信 |
-parity |
パリティを生成しない |
-ixon |
XON/XOFF (START/STOP または DC1/DC3 ともいう) を使用可能にする |
-opost |
以下にリストされた設定値をすべて使用して「処理後出力」を実行する |
-olcuc |
小文字を大文字に割り当てない |
-onlcr |
改行をキャリッジリターン/改行に変更する |
-ocrnl |
キャリッジリターンを改行に変更しない |
-onocr |
カラム 0 でもキャリッジリターンを出力する |
-n10 |
改行後の遅延なし |
-cr0 |
キャリッジターン後の遅延なし |
-tab0 |
タブ後の遅延なし |
-bs0 |
バックスペース後の遅延なし |
-vt0 |
垂直タブ後の遅延なし |
-ff0 |
用紙送り後の遅延なし |
stty 設定値を変更します。
# lpadmin -p printer-name -o "stty= options"
表 72-3 を使用して、印刷出力に影響する様々な問題を解決する stty オプションを選択します。
表 72-3 印刷出力の問題を解決する stty オプション
stty 値 |
結果 |
間違った設定から起こり得る問題 |
---|---|---|
110, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400 |
ボーレートを指定した値に設定する (ボーレートを 1 つだけ入力する) |
ランダム文字と特殊文字が印刷され、間隔がバラバラになることがある |
oddp evenp -parity |
奇数パリティを設定する 偶数パリティを設定する パリティを設定しない |
文字が欠落または間違った文字がランダムに表示される |
-tabs |
タブを設定しない |
テキストが右マージンにくっついてしまう |
tabs |
8 スペースごとにタブを設定する |
テキストに左マージンがなく、つながってしまうか、くっついてしまう |
-onlcr |
行頭でキャリッジリターンを設定しない |
間違ったダブルスペース |
onlcr |
行頭でキャリッジリターンを設定する |
ジグザグに印刷される |
オプションをスペースで区切り、オプションリストを単一引用符で囲むと、複数のオプションの設定を変更できます。たとえば、奇数パリティを使用可能にし、7 ビットの文字サイズを設定する必要のあるプリンタを仮定します。そのためには、次の例のようなコマンドを入力します。
# lpadmin -p neptune -o "stty='parenb parodd cs7'"
stty オプション parenb でパリティチェック/生成を使用可能にし、parodd で奇数パリティの生成を設定し、cs7 で文字サイズを 7 ビットに生成します。
文書が正しく印刷されることを確認します。
# lp -d printer-name filename
スーパーユーザーまたは lp としてログインします。
LP 印刷サービスを停止します。
# lpshut
このコマンドがハングする場合は、Control-c キーを押して次の手順に進みます。このコマンドが正常に実行された場合は、手順 4 に進みます。
LP のプロセス ID を確認します。
# ps -el | grep lp 134 term/a 0:01 lpsched #
次の手順の pid には、最初のカラムのプロセス ID 番号 (PID) を使用します。
kill -15 コマンドを使用して、LP プロセスを停止します。
# kill -15 134
これで LP 印刷サービスプロセスが停止します。プロセスが停止しない場合は、最後の手段として手順 5 に進みます。
最後の手段として、プロセスを強制終了します。
# kill -9 134
すべての lp プロセスが終了します。
次のコマンドでは、LP 印刷サービスを再起動できるように、SCHEDLOCK ファイルが削除されます。
# rm /usr/spool/lp/SCHEDLOCK
LP 印刷サービスを再起動します。
# /usr/lib/lp/lpsched
LP 印刷サービスが再起動されます。スケジューラが再起動されない場合は、「印刷スケジューラを再起動する方法」を参照してください。
この作業には、プリンタがアイドル状態であってはならないのにアイドル状態になるときに使用する多数の手順が含まれています。通常は各手順を順番に試しますが、順番どおりでなくてもかまいません。
プリンタ状態情報を表示します。
# lpstat -p printer-name
表示される情報は、プリンタがアイドル状態かアクティブ状態か、使用可能か使用不可か、または印刷要求を利用できるか受け付けていないかを示します。すべて正常と思われる場合は、この節の他の手順に進んでください。lpstat コマンドを実行できない場合は、「LP 印刷サービスのハングを解除する方法」を参照してください。
プリンタが利用できない (要求を受け付けていない) 場合は、プリンタが要求を受け付けるようにします
# accept printer-name
プリンタは、その印刷待ち行列に要求を受け付け始めます。
プリンタが使用不可になっている場合は、再び使用可能にします。
# enable printer-name
このコマンドでは、待ち行列にある要求を処理するように、プリンタを再び使用可能にします。
lpstat -o コマンドを使用して、印刷のフィルタリングをチェックします。
$ lpstat -o luna luna-10 fred 1261 Mar 12 17:34 being filtered luna-11 iggy 1261 Mar 12 17:36 on terra luna-12 jack 1261 Mar 12 17:39 on terra $
待機している最初の要求がフィルタリングされているかどうかを調べます。上の例のような出力になる場合は、ファイルがフィルタリングされています。プリンタはハングせず、要求の処理に少し時間がかかっているだけです。
プリンタ障害に関するメッセージを探し、ある場合は、その障害を解決してください。
プリンタ障害の警告がどのように指定されているかに応じて、メッセージを電子メールで root に送らせるか、root がログインした端末に書き出すことができます。
プリンタを再び使用可能にします。
# enable printer-name
プリンタ障害によって要求がブロックされた場合は、このコマンドで強制的に再試行します。このコマンドが動作しない場合は、この節の他の手順を続行します。
印刷クライアント上で、印刷サーバーへの印刷要求を、それ以上待ち行列に入れないようにします。
# reject printer-name
印刷クライアント上で、印刷サーバーに ping 要求 (存在をチェックする要求) を送信します。
print_client# ping print_server print_server is alive
「print_server not available」というメッセージが表示される場合は、ネットワークに問題があります。
問題を解決したら、新しい印刷要求を待ち行列に入れられるようにします。
# accept printer-name
必要であれば、再びプリンタを使用可能にします。
# enable printer-name
印刷サーバー上で、印刷クライアントから印刷サーバーへの印刷要求を、それ以上待ち行列に入れないようにします。
# reject printer-name
lpsched ログファイルを表示します。
# more /var/lp/logs/lpsched
表示される情報を参考にして、印刷クライアントから印刷サーバーへの印刷要求が印刷されない原因を正確に把握できます。
問題を解決したら、新しい印刷要求を待ち行列に入れられるようにします。
# accept printer-name
必要であれば、印刷サーバー上で再びプリンタを使用可能にします。
# enable printer-name
印刷サーバー上でプリンタが使用可能になっており、要求を受け付けているかどうかを確認します。
# lpstat -p printer-name
印刷クライアントが要求を受け付けているのに、印刷サーバーが要求を拒否しているときは、矛盾した状態メッセージが表示されます。
印刷サーバー上で、印刷クライアント上のプリンタの定義が、印刷サーバー上のプリンタの定義と一致するかどうかを確認します。
# lpstat -p -l printer-name
印刷フィルタ、文字セット、印字ホイール、フォームなど、印刷ジョブコンポーネントの定義を調べて、印刷クライアントとサーバー上で一致し、ローカルユーザーが印刷サーバーシステムのプリンタにアクセスできることを確認します。
この章で説明する情報は次のとおりです。
fsck プログラムの情報と、fsck プログラムを使用してファイルシステムの整合性をチェックする方法については、第 31 章「ファイルシステムの完全性チェック」を参照してください。
通常、システムが異常終了し、ファイルシステムの最新の変更がディスクに書き込まれなかった場合に、fsck が非対話形式で実行され、ファイルシステムが修復されます。修復されると、ファイルシステムの基本的な非整合状態は自動的に修正されますが、より重大なエラーは修復されません。ファイルシステムを修復する間に、fsck はこの種の異常終了から予想される非整合状態を修正します。より重大な状況の場合は、エラーが表示されて終了します。
fsck を対話形式で実行すると、fsck は見つかった各非整合状態を表示して小さなエラーを修正します。ただし、より重大なエラーの場合は、非整合状態を表示し、応答を選択するように促します。-y または -n オプションを指定して fsck を実行する場合、fsck が提案するデフォルト応答には、ユーザー側の応答がエラー条件ごとに yes または no にあらかじめ定義されています。
修正処置によっては、若干のデータが失われます。失われるデータの量は、fsck の診断出力から判断できます。
fsck はマルチパスファイルシステムのチェックプログラムです。パスごとに、異なるメッセージセットを使用して fsck プログラムの異なるフェーズが呼び出されます。初期化後に、fsck はファイルシステムごとに連続パスを実行して、ブロックとサイズ、パス名、接続状態、参照数、空きブロックマップをチェックします (再構築することもあります)。また、何らかのクリーンアップも実行します。
UFS バージョンの fsck によって実行されるフェーズ (パス) は次のとおりです。
初期化
フェーズ 1 - ブロックとサイズのチェック
フェーズ 2 - パス名のチェック
フェーズ 3 - 接続状態のチェック
フェーズ 4 - 参照数のチェック
フェーズ 5 - シリンダグループのチェック
この後の各節では、各フェーズで検出できるエラー条件、表示されるメッセージとプロンプト、および応答できる内容について説明します。
複数のフェーズで表示されるメッセージについては、「fsck の一般エラーメッセージ」を参照してください。それ以外の場合、メッセージは発生するフェーズのアルファベット順に掲載されています。
多くのメッセージには、表 73-1 に示す省略形が含まれています。
表 73-1 エラーメッセージの省略形
省略形 |
意味 |
---|---|
BLK |
ブロック番号 |
DUP |
重複ブロック番号 |
DIR |
ディレクトリ名 |
CG |
シリンダグループ |
MTIME |
ファイルの最終変更時刻 |
UNREF |
非参照 |
また、多くのメッセージには、i ノード番号などの変数フィールドが含まれています。このマニュアルでは、i ノード番号を inode-number のようにイタリック体で掲載してあります。たとえば、次の画面メッセージは、
INCORRECT BLOCK COUNT I=2529
次の例のように掲載されています。
INCORRECT BLOCK COUNT I=inode-number
この節のエラーメッセージは、初期化後のどのフェーズでも表示されることがあります。処理を続けるかどうかのオプションは表示されますが、通常は、致命的だと見なすのが最善の処置です。これらのエラーメッセージは重大なシステム障害を反映しており、ただちに処理する必要があります。この種のメッセージが表示された場合は、n(o) を入力してプログラムを終了してください。問題の原因を判断できない場合は、ご購入先に問い合わせてください。
CANNOT SEEK: BLK block-number (CONTINUE)
ファイルシステム内で、指定されたブロック番号 block-number へ移動させるという要求に失敗しました。このメッセージは重大な問題、おそらくハードウェア障害を示します。
ファイルシステムのチェックを続けたい場合は、もう一度 fsck を実行してファイルシステムをチェックし直してください。このブロックが仮想メモリーバッファキャッシュの一部であれば、fsck は致命的なエラーメッセージを表示して終了します。
CANNOT READ: BLK block-number (CONTINUE)
ファイルシステム内で指定されたブロック番号を読み込むという要求に失敗しました。このメッセージは重大な問題、おそらくハードウェア障害を示します。ファイルシステムのチェックを続けたい場合、fsck は読み取りを再試行して、読み込めなかったセクター番号のリストを表示します。
fsck が読み取りに失敗したブロックのいずれかに書き込もうとすると、次のメッセージが表示されます。
WRITING ZERO'ED BLOCK sector-numbers TO DISK
ディスクにハードウェア障害が発生していると、この問題は継続します。もう一度 fsck を実行して、ファイルシステムをチェックし直してください。そのブロックが仮想メモリーバッファキャッシュの一部であれば、fsck は次のデフォルトメッセージを表示して終了します。
Fatal I/O error
CANNOT WRITE: BLK block-number (CONTINUE)
ファイルシステム内で、指定されたブロック番号 block-number への書き込みに失敗しました。ディスクが書き込み保護されている可能性があります。ドライブ上で書き込み保護ロックをチェックしてください。それが原因でない場合は、ご購入先に問い合わせてください。ファイルシステムのチェックを続けると、書き込み操作が再試行されます。書き込めなかったセクターは、次のメッセージとともに表示されます。
THE FOLLOWING SECTORS COULD NOT BE WRITTEN: sector-numbers
この場合、sector-numbers は書き込めなかったセクターを示します。ディスクにハードウェア上の問題がある場合は、継続して表示されます。このエラー条件が発生すると、ファイルシステムを完全にチェックできません。もう一度 fsck を実行して、このファイルシステムをチェックし直してください。問題のブロックが仮想メモリーバッファキャッシュの一部であれば、fsck は終了し、次のエラーメッセージが表示されます。
Fatal I/O error
初期化フェーズでは、コマンド行構文がチェックされます。ファイルシステムのチェックを実行する前に、fsck はテーブルを設定してファイルを開きます。
この節のメッセージは、コマンド行オプション、メモリー要求、ファイルのオープン、ファイルの状態、ファイルシステムのサイズチェック、およびスクラッチファイルの作成によるエラー条件に関するものです。ファイルシステムを修復する間に、どんな初期化エラーが発生した場合も、fsck は終了します。
bad inode number inode-number to ginode
エラーの発生原因 |
解決方法 |
---|---|
inode-number が存在しないため、内部エラーが発生した。fsck は終了する |
ご購入先に問い合わせる |
cannot alloc size-of-block map bytes for blockmap cannot alloc size-of-free map bytes for freemap cannot alloc size-of-state map bytes for statemap cannot alloc size-of-lncntp bytes for lncntp
エラーの発生原因 |
解決方法 |
---|---|
内部テーブル用のメモリー要求に失敗した。fsck は終了する。このメッセージは、即座に処理しなければならない重大なシステム障害を示す。他のプロセスが大量のシステム資源を使用していると、このエラー条件が発生することがある |
他のプロセスを終了すると問題を解決できることがある。解決できない場合は、ご購入先に問い合わせる |
Can't open checklist file: filename
エラーの発生原因 |
解決方法 |
---|---|
ファイルシステムのチェックリストファイル filename (通常は /etc/vfstab) を開いて読み込めない。fsck は終了する |
ファイルの有無と、そのアクセスモードで読み取りが可能かどうかをチェックする |
Can't open filename
エラーの発生原因 |
解決方法 |
---|---|
fsck はファイルシステム filename を開けなかった。対話形式で実行している場合、fsck はこのファイルシステムを無視し、次に指定されたファイルシステムのチェックを続ける |
そのファイルシステムの row デバイスファイルに読み取り/書き込みができるかどうかをチェックする |
Can't stat root
エラーの発生原因 |
解決方法 |
---|---|
fsck はルートディレクトリに関する統計情報要求に失敗した。fsck は終了する |
このメッセージは、重大なシステム障害を示す。ご購入先に問い合わせる |
Can't stat filename Can't make sense out of name filename
エラーの発生原因 |
解決方法 |
---|---|
fsck はファイルシステム filename に関する統計情報要求に失敗した。対話形式で実行している場合、fsck はこのファイルシステムを無視し、次に指定されたファイルシステムのチェックを続ける |
ファイルシステムの有無とそのアクセスモードをチェックする |
filename: (NO WRITE)
エラーの発生原因 |
解決方法 |
---|---|
-n オプションが指定されているか、fsck はファイルシステム filename を書き込み用に開けなかった。fsck を非書き込みモードで実行中であれば、すべての診断メッセージが表示されるが、fsck は何も修正しようとしない |
-n を指定しなかった場合は、指定したファイルのタイプをチェックする。通常ファイル名の可能性がある |
IMPOSSIBLE MINFREE=percent IN SUPERBLOCK (SET TO DEFAULT)
エラーの発生原因 |
解決方法 |
---|---|
スーパーブロックの最小容量が、99パーセントを超えているか、0 パーセント未満である |
minfree パラメタをデフォルトの 10 パーセントに設定し、デフォルトプロンプトから y と入力する。エラー条件を無視するには、デフォルトプロンプトから n と入力する |
INTERNAL INCONSISTENCY: message
次の例では、このメッセージの後にエラーが記述されています。
filename: BAD SUPER BLOCK: block-numberUSE AN ALTERNATE SUPER-BLOCK TO SUPPLY NEEDED INFORMATION; e.g., fsck[-f ufs] -o b=# [special ...] where # is the alternate superblock. See fsck_ufs(1M)
エラーの発生原因 |
解決方法 |
---|---|
スーパーブロックが破損している |
代替スーパーブロックを使用して必要な情報を与える。手始めにブロック 32 を指定するとよい。スライス上で newfs -N コマンドを実行すると、スーパーブロックの代替コピーの位置を調べることができる。-N を指定しないと、newfs は既存のファイルシステムを上書きするので注意する |
UNDEFINED OPTIMIZATION IN SUPERBLOCK (SET TO DEFAULT)
エラーの発生原因 |
解決方法 |
---|---|
スーパーブロックの最適化パラメタが OPT_TIME でも OPT_SPACE でもない |
ファイルシステム上で処理の実行時間を最小限度まで短縮するには、SET TO DEFAULT プロンプトから y を入力する。このエラー条件を無視するには、n を入力する |
このフェーズでは、i ノードリストをチェックします。次の処理中に検出されたエラー条件が表示されます。
i ノードのタイプをチェックする。
ゼロリンク数テーブルを設定する。
不良ブロックまたは重複ブロックの有無を i ノードブロック番号で検査する。
i ノードのサイズをチェックする。
i ノードの形式をチェックする。
ファイルシステムの修復 (preen)中は、INCORRECT BLOCK COUNT、 PARTIALLY TRUNCATED INODE、 PARTIALLY ALLOCATED INODE、 および UNKNOWN FILE TYPE を除き、このフェーズのどのエラーが発生した場合も、fsck が終了します。
このフェーズでは、その他に次のエラーメッセージが表示される可能性があります。
BAD STATE state-number TO BLKERR
block-number DUP I=inode-number
EXCESSIVE BAD BLOCKS I=inode-number (CONTINUE)
EXCESSIVE DUP BLKS I=inode-number (CONTINUE)
INCORRECT BLOCK COUNT I=inode-number (number-of-BAD-DUP-or-missing-blocks should be number-of-blocks-in-filesystem) (CORRECT)
LINK COUNT TABLE OVERFLOW (CONTINUE)
PARTIALLY ALLOCATED INODE I=inode-number (CLEAR)
PARTIALLY TRUNCATED INODE I=inode-number (SALVAGE)
UNKNOWN FILE TYPE I=inode-number (CLEAR)
フェーズ 1 では、次のメッセージ (アルファベット順) が発生する可能性があります。
block-number BAD I=inode-number
BAD MODE: MAKE IT A FILE?
エラーの発生原因 |
解決方法 |
---|---|
指定された i ノードの状態がすべて、ファイルシステムの損傷を示す 1 に設定されている。このメッセージは、fsck -y が実行された後で繰り返し表示される場合以外は、物理的なディスクの損傷を示すものではない |
y と入力して i ノードを妥当な値に初期化し直す |
BAD STATE state-number TO BLKERR
エラーの発生原因 |
解決方法 |
---|---|
内部エラーによって fsck の状態マップが破壊されたため、不可能な値 state-number を示す。fsck は即座に終了する |
ご購入先に問い合わせる |
block-number DUP I=inode-number
エラーの発生原因 |
解決方法 |
---|---|
i ノード inode-number には、同じ i ノードまたは別の i ノードがすでに取得したブロック番号 block-number が入っている。このエラー条件が発生した場合に、i ノード inode-number 内にこの種のブロック番号が多すぎると、フェーズ 1 では「EXCESSIVE DUP BLKS」エラーメッセージが生成されることがある。このエラー条件によってフェーズ 1B が呼び出され、フェーズ 2 と 4 で「BAD/DUP」エラーメッセージが生成される |
ない |
DUP TABLE OVERFLOW (CONTINUE)
エラーの発生原因 |
解決方法 |
---|---|
fsck の内部テーブルには、重複するブロック番号が入る余地がない。-o p (preen、修復) オプションを指定すると、プログラムが終了する |
プログラムを続行するには、CONTINUE プロンプトから y と入力する。このエラーが発生すると、ファイルシステムを完全にチェックできない。別の重複ブロックが見つかると、このエラー条件が再発する。使用可能な仮想メモリーの容量を (プロセスを終了し、スワップ空間を拡張して) 大きくし、もう一度 fsck を実行してファイルシステムをチェックし直す。プログラムを終了するには、n を入力する |
EXCESSIVE BAD BLOCKS I=inode-number (CONTINUE)
エラーの発生原因 |
解決方法 |
---|---|
i ノード inode-number に関連付けられたファイルシステム内の最初のデータブロックより小さい番号か、最後のブロックより大きい番号を持つブロックが多すぎる (通常は 10 以上)。-o p (preen、 修復) オプションを指定すると、プログラムは終了する |
プログラムを続行するには、CONTINUE プロンプトから y と入力する。このエラーが発生すると、ファイルシステムを完全にチェックできない。もう一度 fsck を実行してファイルシステムをチェックし直す必要がある。プログラムを終了するには、n と入力する |
EXCESSIVE DUP BLKS I=inode-number (CONTINUE)
エラーの発生原因 |
解決方法 |
---|---|
同じ i ノード、別の i ノード、または空きリストが取得するブロック数が多すぎる (通常は 10 以上)。-o p (preen、修復)オプションを指定すると、プログラムは終了する |
プログラムを続行するには、CONTINUE プロンプトから y と入力する。このエラーが発生すると、ファイルシステムを完全にチェックできない。もう一度 fsck を実行してファイルシステムをチェックし直す必要がある。プログラムを終了するには、n と入力する |
INCORRECT BLOCK COUNT I=inode-number (number-of-BAD-DUP-or-missing-blocks should be number-of-blocks-in-filesystem) (CORRECT)
エラーの発生原因 |
解決方法 |
---|---|
i ノード inode-number のブロック数は number-of-BAD-DUP-or-missing-blocks であるが、number-of-blocks-in-filesystem でなければならない。修復 (preen) の場合、fsck は数を訂正する |
i ノード inode-number のブロック数を number-of-blocks-in-filesystem に置き換えるには、CORRECT プロンプトから y と入力する。プログラムを終了するには、n と入力する |
LINK COUNT TABLE OVERFLOW (CONTINUE)
エラーの発生原因 |
解決方法 |
---|---|
fsck の内部テーブルには、リンク数が 0 の割り当て済み i ノードが入る余地がない。-o p (preen、修復) オプションを指定すると、プログラムは終了するので、fsck を手作業で終了する必要がある |
プログラムを続行するには、CONTINUE プロンプトから y と入力する。リンク数が 0 の別の割り当て済みブロックが見つかると、このエラー条件が再発する。このエラーが発生すると、ファイルシステムを完全にチェックできない。もう一度 fsck を実行してファイルシステムをチェックし直す必要がある。プロセスをいくつか終了するか、スワップ領域を拡張して、使用可能な仮想メモリーを増やしてから、fsck を実行し直す。プログラムを終了するには、n を入力する |
PARTIALLY ALLOCATED INODE I=inode-number (CLEAR)
エラーの発生原因 |
解決方法 |
---|---|
i ノード inode-number は割り当て済みでも未割り当てでもない。-o p (preen、修復) オプションを指定すると、この i ノードは消去される |
i ノード inode-number の内容を消去して割り当てを解除するには、y と入力する。これにより、この i ノードを指すディレクトリごとに、フェーズ 2 でエラー条件 UNALLOCATED が生成されることがある。このエラー条件を無視するには、n と入力する。応答しなくてよいのは、この問題を他の手段で解決しようとする場合だけである |
PARTIALLY TRUNCATED INODE I=inode-number (SALVAGE)
エラーの発生原因 |
解決方法 |
---|---|
fsck で、割り当てられたブロック数よりも短い i ノード inode-number が見つかった。この条件が発生するのは、ファイルの切り捨て中にシステムがクラッシュした場合だけである。ファイルシステムを修復しているとき、fsck は指定されたサイズへの切り捨てを完了する |
i ノード内で指定したサイズへの切り捨てを完了するには、SALVAGE プロンプトから y と入力する。このエラー条件を無視するには、n と入力する |
UNKNOWN FILE TYPE I=inode-number (CLEAR)
エラーの発生原因 |
解決方法 |
---|---|
i ノード inode-number のモードのワードは、この i ノードがパイプ、特殊文字 i ノード、特殊ブロック i ノード、通常 i ノード、シンボリックリンク、FIFO ファイル、またはディレクトリ i ノードでないことを示す。-o p (preen、修復) オプションを指定すると、この i ノードは消去される |
i ノード inode-number の内容を消去して割り当て解除するには、CLEAR プロンプトから y と入力する。これにより、この i ノードを指すディレクトリエントリごとに、フェーズ 2 でエラー条件 UNALLOCATED が生成される。このエラー条件を無視するには n と入力する |
ファイルシステム内で重複ブロックが見つかると、次のメッセージが表示されます。
block-number DUP I=inode-number
エラーの発生原因 |
解決方法 |
---|---|
i ノード inode-number には、すでに同じ i ノードまたは別の i ノードによって取得されたブロック番号 block-number が入っている。このエラー条件によって、フェーズ 2 で BAD/DUP エラーメッセージが生成される。重複ブロックを持つ i ノードは、このエラー条件とフェーズ 1 の DUP エラー条件を検査すれば判断できる |
重複ブロックが見つかると、ファイルシステムが再び走査され、以前にそのブロックを取得した i ノードが検索される |
このフェーズでは、フェーズ 1 と 1B で見つかった不良 i ノードを指すディレクトリエントリが削除される。次の原因でエラー条件が表示される。
不正なルート i ノードモードと状態
範囲外のディレクトリ i ノードポインタ
不良 i ノードを指すディレクトリエントリ
ディレクトリ完全性チェック
ファイルシステムを修復している場合は (-o p (preen、修復) オプション)、このフェーズでどのエラーが発生した場合も、fsck が終了します。ただし、ブロックサイズの倍数でないディレクトリ、重複ブロックと不良ブロック、範囲外の i ノード、過剰なハードリンクに関連するエラーは除きます。
このフェーズでは、他に次のエラーメッセージが表示されることがあります。
BAD INODE state-number TO DESCEND
BAD INODE NUMBER FOR '.' I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename (FIX)
BAD INODE NUMBER FOR '..' I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename (FIX)
BAD RETURN STATE state-number FROM DESCEND
BAD STATE state-number FOR ROOT INODE
BAD STATE state-number FOR INODE=inode-number
DIRECTORY TOO SHORT I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename (FIX)
DIRECTORY filename: LENGTH file-size NOT MULTIPLE OF block-number (ADJUST)
DIRECTORY CORRUPTED I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename (SALVAGE)
DUP/BAD I=inode-number OWNER=O MODE=M SIZE=file-size MTIME=modification-time TYPE=filename (REMOVE)
DUPS/BAD IN ROOT INODE (REALLOCATE)
EXTRA '.' ENTRY I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename (FIX)
EXTRA '..' ENTRY I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename (FIX)
hard-link-number IS AN EXTRANEOUS HARD LINK TO A DIRECTORY filename (REMOVE)
inode-number OUT OF RANGE I=inode-number NAME=filename (REMOVE)
MISSING '.' I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename (FIX)
MISSING '.' I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename CANNOT FIX, FIRST ENTRY IN DIRECTORY CONTAINS filename
MISSING '.' I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename CANNOT FIX, INSUFFICIENT SPACE TO ADD '.'
MISSING '..' I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename (FIX)
MISSING '..' I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename CANNOT FIX, SECOND ENTRY IN DIRECTORY CONTAINS filename
MISSING '..' I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename CANNOT FIX, INSUFFICIENT SPACE TO ADD '..'
NAME TOO LONG filename
ROOT INODE UNALLOCATED (ALLOCATE)
ROOT INODE NOT DIRECTORY (REALLOCATE)
UNALLOCATED I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time type=filename (REMOVE)
ZERO LENGTH DIRECTORY I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename (REMOVE)
BAD INODE state-number TO DESCEND
エラーの発生原因 |
解決方法 |
---|---|
fsck の内部エラーによって、ファイルシステムのディレクトリ構造を継承するルーチンに、無効な状態 state-number が渡された。fsck は終了する |
このエラーメッセージが表示された場合は、ご購入先に問い合わせる |
BAD INODE NUMBER FOR '.' I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename (FIX)
エラーの発生原因 |
解決方法 |
---|---|
「.」の i ノード番号が inode-number に等しくないディレクトリ inode-number が見つかった |
「.」の i ノード番号を inode-number に等しくなるように変更するには、FIX プロンプトから y と入力する。「.」の i ノード番号を変更しない場合は、n と入力する |
BAD INODE NUMBER FOR '..' I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename (FIX)
エラーの発生原因 |
解決方法 |
---|---|
「..」の i ノード番号が inode-number の親に等しくないディレクトリ inode-number が見つかった |
「..」の i ノード番号を inode-number の親に等しくなるように変更するには、FIX プロンプトから y と入力する (ルート i ノード内の「..」は、それ自体を指すので注意する)。「..」の i ノード番号を変更しない場合は、n と入力する |
BAD RETURN STATE state-number FROM DESCEND
エラーの発生原因 |
解決方法 |
---|---|
fsck の内部エラーによって、ファイルシステムのディレクトリ構造を継承するルーチンから、不可能な状態 state-number が返された。fsck は終了する |
このメッセージが表示される場合は、ご購入先に問い合わせる |
BAD STATE state-number FOR ROOT INODE
エラーの発生原因 |
解決方法 |
---|---|
内部エラーによって、ルート i ノードに不可能な状態 state-number が割り当てられた。fsck は終了する |
このメッセージが表示される場合は、ご購入先に問い合わせる |
BAD STATE state-number FOR INODE=inode-number
エラーの発生原因 |
解決方法 |
---|---|
内部エラーによって、i ノード inode-number に不可能な状態 state-number が割り当てられた。fsck は終了する |
このメッセージが表示される場合は、ご購入先に問い合わせる |
DIRECTORY TOO SHORT I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename (FIX)
エラーの発生原因 |
解決方法 |
---|---|
サイズ file-size が最小ディレクトリサイズより小さいディレクトリ filename が見つかった。所有者 UID、モード file-mode、サイズ file-size、変更時刻 modification-time、およびディレクトリ名 filename が表示される |
ディレクトリのサイズを最小ディレクトリサイズまで大きくするには、FIX プロンプトから y と入力する。このディレクトリを無視するには n と入力する |
DIRECTORY filename: LENGTH file-size NOT MULTIPLE OF block-number (ADJUST)
エラーの発生原因 |
解決方法 |
---|---|
サイズ file-size がディレクトリブロックのサイズ block-number の倍数でないディレクトリ filename が見つかった |
長さを適切なブロックサイズに切り上げるには、y を入力する。ファイルシステムを修復しているとき (-o p (preen、修復) オプション) は、fsck は警告のみを表示してディレクトリを調整する。この条件を無視するには n と入力する |
DIRECTORY CORRUPTED I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename (SALVAGE)
エラーの発生原因 |
解決方法 |
---|---|
内部状態の整合性がないディレクトリが見つかった |
次のディレクトリ境界 (通常は 512 バイトの境界) までのすべてのエントリを放棄するには、SALVAGE プロンプトから y と入力する。この思い切った処置によって、最高で 42 個のエントリを放棄できる。この処置は、他の回復作業に失敗した場合にのみ実行する。問題のディレクトリを変更せずに、次のディレクトリ境界までスキップして読み取りを再開するには、n と入力する |
DUP/BAD I=inode-number OWNER=O MODE=M SIZE=file-size MTIME=modification-time TYPE=filename (REMOVE)
エラーの発生原因 |
解決方法 |
---|---|
フェーズ 1 またはフェーズ 1B で、ディレクトリまたはファイルエントリ filename、i ノード inode-number に関連付けられた重複ブロックまたは不良ブロックが見つかった。所有者 UID、モード file-mode、サイズ file-size、変更時刻 modification-time、ディレクトリまたはファイル名 filename が表示される。-p (preen、修復) オプションを指定すると、重複または不良ブロックが削除される |
ディレクトリまたはファイルのエントリ filename を削除するには、REMOVE プロンプトから y と入力する。このエラー条件を無視するには n と入力する |
DUPS/BAD IN ROOT INODE (REALLOCATE)
エラーの発生原因 |
解決方法 |
---|---|
フェーズ 1 またはフェーズ 1B で、ファイルシステムのルート i ノード (通常は i ノード番号 2) に、重複ブロックまたは不良ブロックが見つかった |
ルート i ノードの既存の内容を消去して割り当てを解除するには、REALLOCATE プロンプトから y と入力する。ルート内で通常検出されるファイルとディレクトリがフェーズ 3 で復元され、lost+found ディレクトリに格納される。ルートの割り当てに失敗すると、fsck は「CANNOT ALLOCATE ROOT INODE」というメッセージを表示して終了する。CONTINUE プロンプトを表示するには、n を入力する。CONTINUE プロンプトに応答するには、y と n のどちらかを入力する。y と入力すると、ルート i ノード内の DUPS/BAD エラー条件を無視して、ファイルシステムのチェックを続行する。ルート i ノードが不正であれば、これによって他の多数のエラーメッセージが生成されることがある。n の場合は、プログラムを終了する |
EXTRA '.' ENTRY I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename (FIX)
エラーの発生原因 |
解決方法 |
---|---|
「.」のエントリが複数個入っているディレクトリ inode-number が見つかった |
「.」の余分なエントリを削除するには、FIX プロンプトから y と入力する。問題のディレクトリを変更しない場合は、n と入力する |
EXTRA '..' ENTRY I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename(FIX)
エラーの発生原因 |
解決方法 |
---|---|
「..」(親ディレクトリ) のエントリが複数個入っているディレクトリ inode-number が見つかった |
「..」(親ディレクトリ) の余分なエントリを削除するには、FIX プロンプトから y と入力する。問題のディレクトリを変更しない場合は、n と入力する |
hard-link-number IS AN EXTRANEOUS HARD LINK TO A DIRECTORY filename (REMOVE)
エラーの発生原因 |
解決方法 |
---|---|
fsck によって、ディレクトリ filename へのハードリンク hard-link-number にエラーが見つかった。修復 (preen) しているときは (-o p オプション)、fsck はエラーのあるハードリンクを無視する |
エラーのあるエントリ hard-link-number を削除するには、 プロンプトから y と入力する。エラー条件を無視するには n と入力する |
inode-number OUT OF RANGE I=inode-number NAME=filename (REMOVE)
エラーの発生原因 |
解決方法 |
---|---|
ディレクトリエントリ filename には、i ノードリストの終わりより大きい i ノード番号 inode-number が付いている。-p (preen、修復) オプションを指定すると、i ノードが自動的に削除される |
ディレクトリエントリ filename を削除するには、REMOVE プロンプトから y と入力する。エラー条件を無視するには、n と入力する |
MISSING '.' I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename (FIX)
エラーの発生原因 |
解決方法 |
---|---|
最初のエントリ (「.」のエントリ) が未割り当てのディレクトリ inode-number が見つかった |
i ノード番号が inode-number に等しい「.」のエントリを構築するには、FIX プロンプトから y と入力する。問題のディレクトリを変更しない場合は、n と入力する |
MISSING '.' I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename CANNOT FIX, FIRST ENTRY IN DIRECTORY CONTAINS filename
エラーの発生原因 |
解決方法 |
---|---|
最初のエントリが filename となっているディレクトリ inode-number が見つかった。fsck はこの問題を解決できない |
ファイルシステムをマウントして、エントリ filename を別の場所に移動する。システムのマウントを解除して、もう一度 fsck を実行する |
MISSING '.' I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename CANNOT FIX, INSUFFICIENT SPACE TO ADD '.'
エラーの発生原因 |
解決方法 |
---|---|
最初のエントリが「.」でないディレクトリ inode-number が見つかった。fsck は問題を解決できない |
このエラーメッセージが表示される場合は、ご購入先に問い合わせる |
MISSING '..' I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename (FIX)
エラーの発生原因 |
解決方法 |
---|---|
第 2 のエントリが割り当てられていないディレクトリ inode-number が見つかった |
i ノード番号が inode-number の親に等しい「..」のエントリを構築するには、FIX プロンプトから y と入力する (ルート i ノード内の「..」は、それ自体を指すので注意する)。問題のディレクトリを変更しない場合は、n と入力する |
MISSING '..' I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename CANNOT FIX, SECOND ENTRY IN DIRECTORY CONTAINS filename
エラーの発生原因 |
解決方法 |
---|---|
第 2 のエントリが filename となっているディレクトリ inode-number が見つかった。fsck はこの問題を解決できない |
ファイルシステムをマウントして、エントリ filename を他の場所に移動する。次に、ファイルシステムをマウント解除し、もう一度 fsck を実行する |
MISSING '..' I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename CANNOT FIX, INSUFFICIENT SPACE TO ADD '..'
エラーの発生原因 |
解決方法 |
---|---|
第 2 のエントリが「..」(親ディレクトリ) でないディレクトリ inode-number が見つかった。fsck はこの問題を解決できない |
ファイルシステムをマウントし、ディレクトリ内の第 2 のエントリを他の場所に移動する。次に、ファイルシステムをマウント解除し、もう一度 fsck を実行する |
NAME TOO LONG filename
エラーの発生原因 |
解決方法 |
---|---|
長すぎるパス名が見つかった。一般に、これはファイルシステムの名前空間内のループを示す。特権を持つユーザーがディレクトリへの循環リンクを作成すると、このエラーが発生することがある |
循環リンクを削除する |
ROOT INODE UNALLOCATED (ALLOCATE)
エラーの発生原因 |
解決方法 |
---|---|
ルート i ノード (通常は i ノード番号 2) に割り当てモードビットがない |
i ノード 2 をルート i ノードとして割り当てるには、ALLOCATE プロンプトから y と入力する。一般にルート内で検出されるファイルとディレクトリがフェーズ 3 で復元され、lost+found ディレクトリに格納される。ルートの割り当てに失敗すると、fsck は「CANNOT ALLOCATE ROOT INODE」というメッセージを表示して終了する。プログラムを終了するには n と入力する |
ROOT INODE NOT DIRECTORY (REALLOCATE)
エラーの発生原因 |
解決方法 |
---|---|
ファイルシステムのルート i ノード (通常は i ノード番号 2) はディレクトリ i ノードではない |
ルート i ノードの既存の内容を消去して再割り当てを行うには、REALLOCATE プロンプトから y と入力する。一般にルート内で検出されるファイルとディレクトリがフェーズ 3 で復元され、lost+found ディレクトリに格納される。ルートの割り当てに失敗すると、fsck は「CANNOT ALLOCATE ROOT INODE」というメッセージを表示して終了する。fsck に FIX プロンプトを表示させるには、n と入力する |
UNALLOCATED I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time type=filename(REMOVE)
エラーの発生原因 |
解決方法 |
---|---|
ディレクトリまたはファイルのエントリ filename は、未割り当ての i ノード inode-number を指している。所有者 UID、モード file-mode、サイズ file-size、変更時刻 modification-time、およびファイル名 filename が表示される |
ディレクトリエントリ filename を削除するには、REMOVE プロンプトから y と入力する。エラー条件を無視するには n と入力する |
ZERO LENGTH DIRECTORY I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time DIR=filename (REMOVE)
エラーの発生原因 |
解決方法 |
---|---|
ディレクトリエントリ filename のサイズ file-size が 0 になっている。所有者 UID、モード file-mode、サイズ file-size、変更時刻 modification-time、およびディレクトリ名 filename が表示される |
ディレクトリエントリ filename を削除するには、REMOVE プロンプトから y と入力する。これにより、フェーズ 4 で BAD/DUP エラーメッセージが表示される。エラー条件を無視するには n と入力する |
このフェーズでは、フェーズ 2 で検査したディレクトリがチェックされ、次の原因によるエラー条件が表示されます。
参照されないディレクトリ
欠落しているか、フルになっている lost+found ディレクトリ
このフェーズでは、他に次のようなエラーメッセージが表示されます。
BAD INODE state-number TO DESCEND
DIR I=inode-number1 CONNECTED. PARENT WAS I=inode-number2
DIRECTORY filename LENGTH file-size NOT MULTIPLE OF block-number (ADJUST)
lost+found IS NOT A DIRECTORY (REALLOCATE)
NO lost+found DIRECTORY (CREATE)
NO SPACE LEFT IN /lost+found (EXPAND)
UNREF DIR I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time (RECONNECT)
BAD INODE state-number TO DESCEND
エラーの発生原因 |
解決方法 |
---|---|
内部エラーによって、ファイルシステムのディレクトリ構造を継承するルーチンに、不可能な状態 state-number が渡された。fsck は終了する |
このエラーが発生した場合は、ご購入先に問い合わせる |
DIR I=inode-number1 CONNECTED. PARENT WAS I=inode-number2
エラーの発生原因 |
解決方法 |
---|---|
これは、ディレクトリ i ノード inode-number1 が lost+found ディレクトリに正常に接続されていることを示す。ディレクトリ i ノード inode-number1 の親 i ノード inode-number2 は、lost+found ディレクトリの i ノード番号に置き換えられる |
ない |
DIRECTORY filename LENGTH file-size NOT MULTIPLE OF block-number (ADJUST)
エラーの発生原因 |
解決方法 |
---|---|
サイズ file-size がディレクトリのブロックサイズ B の倍数でないディレクトリ filename が見つかった (この条件は、フェーズ 2 で調整しなければ、フェーズ 3 で再発することがある) |
長さを適切なブロックサイズまで切り上げるには、ADJUST プロンプトから y と入力する。修復しているときは、fsck は警告を表示してディレクトリを調整する。このエラー条件を無視するには n と入力する |
lost+found IS NOT A DIRECTORY (REALLOCATE)
エラーの発生原因 |
解決方法 |
---|---|
lost+found のエントリがディレクトリではない |
ディレクトリ i ノードを割り当てて、それを参照する lost+found ディレクトリを変更するには、REALLOCATE プロンプトから y と入力する。以前に lost+found ディレクトリによって参照されていた i ノードは消去されず、非参照の i ノードとして再び取得されるか、このフェーズの後の方でそのリンク数が調整される。lost+found ディレクトリを作成できない場合は、「SORRY. CANNOT CREATE lost+found DIRECTORY」というメッセージが表示され、消失 i ノードへのリンク試行が中止される。これにより、フェーズ 4 で UNREF エラーメッセージが生成される。フェーズ 4 で UNREF エラーメッセージを生成する消失 i ノードへのリンク試行を中止するには、n と入力する |
NO lost+found DIRECTORY (CREATE)
エラーの発生原因 |
解決方法 |
---|---|
ファイルシステムのルートディレクトリ内に lost+found ディレクトリがない。修復しているときは、fsck は lost+found ディレクトリを作成しようとする |
ファイルシステムのルート内で lost+found ディレクトリを作成するには、CREATE プロンプトから y と入力する。このため、「NO SPACE LEFT IN / (EXPAND)」というメッセージが表示されることがある。lost+found ディレクトリを作成できなければ、fsck は「SORRY. CANNOT CREATE lost+found DIRECTORY」というメッセージを表示して、消失した i ノードへのリンク試行を中止する。これにより、フェーズ 4 の後半で UNREF エラーメッセージが生成される。消失した i ノードへのリンク試行を中止するには、n と入力する |
NO SPACE LEFT IN /lost+found (EXPAND)
エラーの発生原因 |
解決方法 |
---|---|
使用可能な領域がないため、ファイルシステムのルートディレクトリ内で、lost+found ディレクトリに別のエントリを追加することはできない。修復しているときに、fsck は lost+found ディレクトリを拡張する |
lost+found ディレクトリを拡張して新しいエントリを追加する余地をつくるには、EXPAND プロンプトから y と入力する。拡張試行に失敗すると、fsck は「SORRY. NO SPACE IN lost+found DIRECTORY」というメッセージを表示して、lost+found ディレクトリへのファイルリンク要求を中止する。このエラーによって、フェーズ 4 の後半で UNREF エラーメッセージが生成される。lost+found ディレクトリ内で不要なエントリを削除する。修復が有効な場合は、このエラーに fsck が終了する。消失 i ノードへのリンク試行を中止するには、n と入力する |
UNREF DIR I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time (RECONNECT)
エラーの発生原因 |
解決方法 |
---|---|
ファイルシステムの走査中に、ディレクトリ i ノード inode-number がディレクトリエントリに接続されなかった。ディレクトリ i ノード inode-number の所有者 UID、モード file-mode、サイズ file-size、および変更時刻 modification-time が表示される。修復しているときは、ディレクトリサイズが 0 でなければ、fsck は空でないディレクトリ i ノードを接続し直す。それ以外の場合、fsck はディレクトリ i ノードを消去する |
ディレクトリ i ノード inode-number を lost+found ディレクトリに接続し直すには、RECONNECT プロンプトから y と入力する。ディレクトリが再び正常に接続されると、「CONNECTED」というメッセージが表示される。それ以外の場合は、lost+found エラーメッセージのいずれかが表示される。このエラー条件を無視するには n と入力する。このエラーにより、フェーズ 4 で UNREF エラー条件が発生する |
このフェーズでは、フェーズ 2 と 3 で取得したリンク数情報がチェックされます。次の原因によるエラー条件が表示されます。
非参照ファイル
見つからないか、lost+found ディレクトリがフル
ファイル、ディレクトリ、シンボリックリンク、または特殊ファイルの不正なリンク数
非参照ファイル、シンボリックリンク、ディレクトリ
ファイルとディレクトリ内の不良ブロックまたは重複ブロック
不正な合計空き i ノード数
このフェーズのすべてのエラー (lost+found ディレクトリ内の容量不足を除く) は、ファイルシステムを修復するときに解決できます。
このフェーズでは、他に次のエラーメッセージが表示されることがあります。
BAD/DUP type I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time (CLEAR)
(CLEAR)
LINK COUNT type I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time COUNT link-count SHOULD BE corrected-link-count (ADJUST)
lost+found IS NOT A DIRECTORY (REALLOCATE)
NO lost+found DIRECTORY (CREATE)
NO SPACE LEFT IN /lost+found (EXPAND)
UNREF FILE I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time (RECONNECT)
UNREF type I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time (CLEAR)
ZERO LENGTH DIRECTORY I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time (CLEAR)
BAD/DUP type I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time (CLEAR)
エラーの発生原因 |
解決方法 |
---|---|
フェーズ 1 またはフェーズ 1B で、ファイルまたはディレクトリ i ノード inode-number に関連付けられた重複ブロックまたは不良ブロックが見つかった。i ノード inode-number の所有者 UID、モード file-mode、サイズ file-size、および変更時刻 modification-time が表示される |
i ノード inode-number の内容を消去して割り当てを解除するには、CLEAR プロンプトから y と入力する。このエラー条件を無視するには、n と入力する |
(CLEAR)
エラーの発生原因 |
解決方法 |
---|---|
直前の UNREF エラーメッセージで記述された i ノードを再び接続できない。ファイルシステムを修復していると、ファイルを接続し直すには容量が足りないため fsck が終了するので、このメッセージは表示されない |
i ノードの内容を消去して割り当てを解除するには、CLEAR プロンプトから y と入力する。直前のエラー条件を無視するには、n と入力する |
LINK COUNT type I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time COUNT link-count SHOULD BE corrected-link-count (ADJUST)
エラーの発生原因 |
解決方法 |
---|---|
ディレクトリまたはファイル i ノード inode-number のリンク数は link-count になっているが、corrected-link-count でなければならない。i ノード inode-number の所有者 UID、モード file-mode、サイズ file-size、および変更時刻 modification-time が表示される。-o p (preen、修復) オプションを指定すると、参照数が増えていない限り、リンク数が調整される。この条件は、ハードウェア障害がなければ発生しない。参照数が修復中に増えると、fsck は「LINK COUNT INCREASING」というメッセージを表示して終了する |
ディレクトリまたはファイル i ノード inode-number のリンク数を corrected-link-count に置き換えるには、ADJUST プロンプトから y と入力する。このエラー条件を無視するには、n と入力する |
lost+found IS NOT A DIRECTORY (REALLOCATE)
エラーの発生原因 |
解決方法 |
---|---|
lost+found のエントリがディレクトリではない |
ディレクトリ i ノードを割り当てて、それを参照する lost+found ディレクトリを変更するには、REALLOCATE プロンプトから y と入力する。lost+found による以前の i ノード参照は消去されない。非参照 i ノードとして再び取得されるか、そのリンク数がこのフェーズの後半で調整される。lost+found ディレクトリを作成できなければ、「SORRY. CANNOT CREATE lost+found DIRECTORY」というメッセージが表示され、消失 i ノードへのリンク試行が中止される。このエラーにより、フェーズ 4 の後半で UNREF エラーメッセージが生成される。消失 i ノードへのリンク試行を中止するには、n と入力する |
NO lost+found DIRECTORY (CREATE)
エラーの発生原因 |
解決方法 |
---|---|
ファイルシステムのルートディレクトリ内に lost+found ディレクトリがない。修復するときに、fsck は lost+found ディレクトリを作成しようとする |
ファイルシステムのルート内で lost+found ディレクトリを作成するには、CREATE プロンプトから y と入力する。lost+found ディレクトリを作成できなければ、fsck は「SORRY. CANNOT CREATE lost+found DIRECTORY」というメッセージを表示して、消失 i ノードへのリンク試行を中止する。このエラーにより、フェーズ 4 の後半で UNREF エラーメッセージが生成される。消失 i ノードへのリンク試行を中止するには、n と入力する |
NO SPACE LEFT IN / lost+found (EXPAND)
エラーの発生原因 |
解決方法 |
---|---|
ファイルシステムのルートディレクトリ内で、lost+found ディレクトリに別のエントリを追加する容量がない。修復するときに、fsck は lost+found ディレクトリを拡張する |
lost+found ディレクトリを拡張して新しいエントリを追加する余地をつくるには、EXPAND プロンプトから y と入力する。拡張試行に失敗すると、fsck は「SORRY. NO SPACE IN lost+found DIRECTORY」というメッセージを表示して、lost+found ディレクトリへのファイル数要求を中止する。このエラーにより、フェーズ 4 の後半で UNREF エラーメッセージが生成される。修復 (-o p オプション) が有効なときは、このエラーによって fsck が終了する。消失 i ノードへのリンク試行を中止するには、n と入力する |
UNREF FILE I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time (RECONNECT)
エラーの発生原因 |
解決方法 |
---|---|
ファイルシステムを走査するときに、ファイル i ノード inode-number がディレクトリエントリに接続されなかった。i ノード inode-number の所有者 UID、モード file-mode、サイズ file-size、および変更時刻 modification-time が表示される。fsck が修復しているときに、ファイルのサイズまたはリンク数が 0 であれば、そのファイルは消去される。それ以外の場合は、再び接続される |
i ノード inode-number を lost+found ディレクトリ内のファイルシステムに接続し直すには、y と入力する。i ノード inode-number を lost+found ディレクトリに接続できないと、このエラーによってフェーズ 4 で lost+found エラーメッセージが生成されることがある。このエラー条件を無視するには、n と入力する。このエラーが発生すると、フェーズ 4 で必ず CLEAR エラー条件が呼び出される |
UNREF type I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time (CLEAR)
エラーの発生原因 |
解決方法 |
---|---|
ファイルシステムを走査するときに、i ノード inode-number (その type はディレクトリまたはファイル) がディレクトリエントリに接続されなかった。i ノード inode-number の所有者 UID、モード file-mode、サイズ file-size、および変更時刻 modification-time が表示される。fsck が修復しているときに、ファイルのサイズまたはリンク数が 0 であれば、そのファイルは消去される。それ以外の場合は再び接続される |
i ノード inode-number の内容を消去して割り当てを解除するには、CLEAR プロンプトから y と入力する。このエラー条件を無視するには、n と入力する |
ZERO LENGTH DIRECTORY I=inode-number OWNER=UID MODE=file-mode SIZE=file-size MTIME=modification-time(CLEAR)
エラーの発生原因 |
解決方法 |
---|---|
ディレクトリエントリ filename のサイズ file-size が 0 になっている。所有者 UID、モード file-mode、サイズ file-size、変更時刻 modification-time、およびディレクトリ名 filename が表示される |
ディレクトリ i ノード inode-number の内容を消去して割り当てを解除するには、y と入力する。このエラー条件を無視するには、n と入力する |
このフェーズでは、空きブロックと使用済み i ノードのマップがチェックされます。次の原因によるエラー条件が表示されます。
使用済み i ノードマップから欠落している割り当て済み i ノード
空きブロックマップから欠落している空きブロック
使用済み i ノードマップ内の空き i ノード
不正な合計空きブロック数
不正な合計使用済み i ノード数
このフェーズでは、他に次のエラーメッセージが表示されることがあります。
BLK(S) MISSING IN BIT MAPS (SALVAGE)
CG character-for-command-option: BAD MAGIC NUMBER
SUMMARY INFORMATION BAD (SALVAGE)
number-of files, number-of-files used, number-of-files free (number-of frags, number-of blocks, percent fragmentation)
***** FILE SYSTEM WAS MODIFIED *****
filename FILE SYSTEM STATE SET TO OKAY
filename FILE SYSTEM STATE NOT SET TO OKAY
BLK(S) MISSING IN BIT MAPS (SALVAGE)
エラーの発生原因 |
解決方法 |
---|---|
シリンダグループのブロックマップから空きブロックがいくつか欠落している。修復中に、fsck はマップを作成し直す |
空きブロックマップを作成し直すには、SALVAGE プロンプトから y と入力する。このエラー条件を無視するには、n と入力する |
CG character-for-command-option: BAD MAGIC NUMBER
エラーの発生原因 |
解決方法 |
---|---|
シリンダグループ character-for-command-option のマジック番号が間違っている。一般に、このエラーはシリンダグループマップが破壊されていることを示す。対話形式で実行している場合は、シリンダグループに再度の作成が必要であることを示すマークが付けられる。ファイルシステムを修復している場合は、fsck が終了する |
このエラーが発生する場合は、ご購入先に問い合わせる |
FREE BLK COUNT(S) WRONG IN SUPERBLK (SALVAGE)
エラーの発生原因 |
解決方法 |
---|---|
空きブロック数の実際の数が、ファイルシステムのスーパーブロック内の空きブロック数と一致しない。-o p (preen、修復) オプションを指定した場合は、スーパーブロック内の空きブロック数が自動的に修正される |
スーパーブロックの空きブロック情報を作成し直すには、SALVAGE プロンプトから y と入力する。このエラー条件を無視するには、n と入力する |
SUMMARY INFORMATION BAD (SALVAGE)
エラーの発生原因 |
解決方法 |
---|---|
集計情報が間違っている。修復していると、fsck は集計情報を計算し直す |
集計情報を作成し直すには、SALVAGE プロンプトから y と入力する。このエラー条件を無視するには、n と入力する |
ファイルシステムのチェックが終わると、クリーンアップ処理がいくつか実行されます。クリーンアップフェーズでは、次の状態メッセージが表示されます。
number-of files, number-of-files used, number-of-files free (number-of frags, number-of blocks, percent fragmentation)
このメッセージは、チェックされたファイルシステムに、フラグメントサイズの number-of 個のブロックを使用中の number-of 個のファイルが入っていることと、ファイルシステム内でフラグメントサイズのブロックが number-of 個空いていることを示します。括弧内の数は、空いている数を number-of 個の空きフラグメント、number-of 個の完全サイズの空きブロック、および percent のフラグメントに分割したものです。
***** FILE SYSTEM WAS MODIFIED *****
このメッセージは、ファイルシステムが fsck によって変更されたことを示します。このファイルシステムがマウントされているか、現在のルート (/) ファイルシステムの場合は、リブートします。ファイルシステムがマウントされている場合は、マウント解除して再び fsck を実行する必要があります。そうしないと、fsck によって実行された処理がテーブルのインコアコピー (カーネル内のコピー) によって取り消されます。
filename FILE SYSTEM STATE SET TO OKAY
このメッセージは、ファイルシステム filename に安定を示すマークが付けられたことを示します。-m オプションを指定して fsck を実行すると、この情報を使用して、ファイルシステムのチェックが必要かどうかが判断されます。
filename FILE SYSTEM STATE NOT SET TO OKAY
このメッセージは、ファイルシステム filename に安定を示すマークが付いていないことを示します。-m オプションを指定して fsck を実行すると、この情報を使用して、ファイルシステムにチェックが必要かどうかが判断されます。
この章では、ソフトウェアパッケージをインストールまたは削除するときに発生する問題について説明します。この章には、2 つの節があります。「特定のソフトウェア管理エラー」では、パッケージのインストールエラーと管理エラーについて説明します。「一般的なソフトウェア管理障害」では、特定のエラーメッセージを出さない障害について説明します。
この章の内容は次のとおりです。
ソフトウェア管理については、第 16 章「ソフトウェア管理の概要」を参照してください。
WARNING: filename <not present on Read Only file system>
エラーの発生原因 |
解決方法 |
---|---|
このエラーメッセージは、パッケージの一部のファイルがインストールできなかったことを示す。このエラーは、通常、pkgadd を使用してパッケージをクライアントにインストールするときに発生する。この場合、pkgadd は、サーバーからマウントしているファイルシステムにパッケージをインストールしようとする。しかし、pkgadd は、そのためのアクセス権を持っていない |
パッケージのインストール中にこの警告メッセージが表示された場合、パッケージをサーバーにもインストールしなければならない。詳細は、308 ページの「パッケージをサーバーに追加する方法」を参照 |
エラーの発生原因 |
解決方法 |
---|---|
Solaris 2.5 より前に開発された一部のパッケージの追加と削除に関連して、既知の問題が存在する。このようなパッケージを追加または削除すると、ユーザーとの対話中にインストールが失敗するか、ユーザーとの対話のためにプロンプトが出されるが、ユーザーの応答は無視されることがある |
次の環境変数を設定して、パッケージを追加し直す
|