この章では、ときどき発生するが修正しやすい、さまざまなソフトウェアの問題について説明します。特定のソフトウェアアプリケーションや内容に関連しない問題 (リブートの失敗やファイルシステムがフルになるなど) の解決方法も含みます。これらの問題の解決方法は、この後の節で説明します。
この章の内容は次のとおりです。
システムがリブートに失敗した場合またはリブートしたがクラッシュした場合は、システムのブートを妨害しているソフトウェアまたはハードウェアの障害があると考えられます。
問題 - システムがブートしない理由 |
解決方法 |
---|---|
システムが /platform/`uname -m`/kernel/unix を見つけられない |
SPARC システムの PROM 内の boot-device 設定を変更しなければならない。デフォルトブートデバイスを変更するには、『Solaris のシステム管理 (第 1 巻)』の「SPARC: システムのブートの手順」を参照 |
x86 システムで、デフォルトのブートデバイスが存在しない。「Not a UFS filesystem.」というメッセージが表示される |
Configuration Assistant/Boot (構成用補助) フロッピーディスクを使用してシステムをブートし、ブートするディスクを選択する |
/etc/passwd ファイル内に無効なエントリが存在する |
無効な passwd ファイルから復元する方法については、『Solaris のシステム管理 (第 1 巻)』の「SPARC: システムのブートの手順」を参照 |
ディスクなどのデバイスに、ハードウェアの問題がある |
ハードウェアの接続を確認する
|
上記のリストで問題が解決できない場合は、ご購入先にお問い合わせください。
ソフトウェアプロセスに問題がある場合、システムは完全にクラッシュせずに凍結、つまりハングすることがあります。ハングしたシステムから回復するには、次の手順に従ってください。
システムがウィンドウ環境を実行していたかどうかを調べて、次のリストの推奨事項に従ってください。これらのリストで問題が解決できなかった場合は、手順 2 に進みます。
コマンドを入力しているウィンドウの中に、ポインタがあることを確認します。
間違って Control-s キー (画面を凍結する) を押した場合は、Control-q キーを押します。Control-s キーはウィンドウだけを凍結し、画面全体は凍結しません。ウィンドウが凍結している場合は、他のウィンドウを試します。
可能であれば、ネットワーク上の他のシステムからリモートでログインします。pgrep コマンドを使用して、ハングしているプロセスを見つけます。ウィンドウシステムがハングしている場合は、そのプロセスを特定して強制終了します。
Control-¥ キーを押して、動作しているプログラムを強制終了します。core ファイルが書き出されることがあります。
リモートからログインして、システムをハングさせているプロセスを特定して強制終了します。
リモートからログインしてスーパーユーザーになり、システムをリブートします。
システムがまだ応答しない場合は、強制的にクラッシュダンプしてリブートします。強制的にクラッシュダンプしてリブートする方法については、第 31 章「システムクラッシュ情報の生成と保存」を参照してください。
ルート (/) ファイルシステムや他のファイルシステムがフルになると、次のようなメッセージがコンソールウィンドウに表示されます。
.... file system full
ファイルシステムがフルになる原因はいくつかあります。次の節では、フルになったファイルシステムを回復する方法をいくつか説明します。ファイルシステムがフルにならないように、古い使用されていないファイルを日常的に整理する方法については、第 19 章「ディスク使用の管理」を参照してください。
エラーの原因 |
解決方法 |
---|---|
ファイルかディレクトリを間違った場所にコピーした。これは、アプリケーションがクラッシュして、大きな 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.1 システムで復元しなければなりません。
対話型コマンドを使用すると、次の例のような ufsrestore> プロンプトが表示されます。
# ufsrestore ivf /dev/rmt/0 Verify volume and initialize maps Media block size is 126 Dump date: Tue Jun 16 10:19:36 1998 Dumped from: the epoch Level 0 dump of / on mars:/dev/dsk/c0t3d0s0 Label: none Extract directories from tape Initialize symbol table. ufsrestore >
ufsrestore> プロンプトでは、『Solaris のシステム管理 (第 1 巻)』の「ufsdump コマンドと ufsrestore コマンドの参照情報」にリストされているコマンドを使用して、ファイルの検索や、復元するファイルのリストを作成でき、ファイルを復元することもできます。