Solaris のシステム管理 (第 2 巻)

第 40 章 ソフトウェアで発生するさまざまな問題の解決

この章では、ときどき発生するが修正しやすい、さまざまなソフトウェアの問題について説明します。特定のソフトウェアアプリケーションや内容に関連しない問題 (リブートの失敗やファイルシステムがフルになるなど) の解決方法も含みます。これらの問題の解決方法は、この後の節で説明します。

この章の内容は次のとおりです。

リブートが失敗した場合の対処方法

システムがリブートに失敗した場合またはリブートしたがクラッシュした場合は、システムのブートを妨害しているソフトウェアまたはハードウェアの障害があると考えられます。

問題 - システムがブートしない理由 

解決方法 

システムが /platform/`uname -m`/kernel/unix を見つけられない

SPARC システムの PROM 内の boot-device 設定を変更しなければならない。デフォルトブートデバイスを変更するには、『Solaris のシステム管理 (第 1 巻)』の「SPARC: システムのブート (手順)」または「Intel: システムのブート (手順)」を参照

IA システムで、デフォルトのブートデバイスが存在しない。「Not a UFS filesystem.」というメッセージが表示される 

Configuration Assistant/Boot (構成用補助) フロッピーディスクを使用してシステムをブートし、ブートするディスクを選択する 

/etc/passwd ファイル内に無効なエントリが存在する

無効な passwd ファイルから復元する方法については、『Solaris のシステム管理 (第 1 巻)』の「システムのシャットダウンとブート (概要)」を参照

ディスクなどのデバイスに、ハードウェアの問題がある 

ハードウェアの接続を確認する 

  • 装置が接続されていることを確認する

  • すべてのスイッチが適切に設定されていることを確認する

  • すべてのコネクタおよびケーブル (Ethernet ケーブルも含む) を検査する

  • すべて異常がなければ、システムの電源を切り、10 秒 〜 20 秒ほど待って、もう一度電源を投入する

上記のリストで問題が解決できない場合は、ご購入先にお問い合わせください。

SPARC: 64 ビット Solaris のブートで発生する問題の解決

64 ビット Solaris リリースを UltraSPARC システムにインストールすると、次のどの条件も該当しない場合は、64 ビットカーネルが自動的にブートされます。

32 ビット Solaris システムで 64 ビット Solaris オペレーティング環境をブートすることはできません。

システムがハングした場合の対処方法

ソフトウェアプロセスに問題がある場合、システムは完全にクラッシュせずに凍結、つまりハングすることがあります。ハングしたシステムから回復するには、次の手順に従ってください。

  1. システムがウィンドウ環境を実行していたかどうかを調べて、次のリストの推奨事項に従ってください。これらのリストで問題が解決できなかった場合は、手順 2 に進みます。

    • コマンドを入力しているウィンドウの中に、ポインタがあることを確認します。

    • 間違って Control-s キー (画面を凍結する) を押した場合は、Control-q キーを押します。Control-s キーはウィンドウだけを凍結し、画面全体は凍結しません。ウィンドウが凍結している場合は、他のウィンドウを試します。

    • 可能であれば、ネットワーク上の他のシステムからリモートでログインします。pgrep コマンドを使用して、ハングしているプロセスを見つけます。ウィンドウシステムがハングしている場合は、そのプロセスを特定して強制終了します。

  2. Control-¥ キーを押して、動作しているプログラムを強制終了します。core ファイルが書き出されることがあります。

  3. Control-c キーを押して、動作している可能性があるプログラムに割り込みをかけます。

  4. リモートからログインして、システムをハングさせているプロセスを特定して強制終了します。

  5. リモートからログインしてスーパーユーザーになり、システムをリブートします。

  6. システムがまだ応答しない場合は、強制的にクラッシュダンプしてリブートします。強制的にクラッシュダンプしてリブートする方法については、第 39 章「システムクラッシュ情報の生成と保存」を参照してください。

  7. システムがまだ応答しない場合は、電源を切ってから数分待ち、もう一度電源を入れます。

  8. システムがまったく応答しない場合は、ご購入先にお問い合わせください。

ファイルシステムがフルになった場合の対処方法

ルート (/) ファイルシステムや他のファイルシステムがフルになると、次のようなメッセージがコンソールウィンドウに表示されます。


.... file system full

ファイルシステムがフルになる原因はいくつかあります。次の節では、フルになったファイルシステムを回復する方法をいくつか説明します。ファイルシステムがフルにならないように、古い使用されていないファイルを日常的に整理する方法については、第 28 章「ディスク使用の管理」を参照してください。

大規模ファイルまたはディレクトリを作成したために、ファイルシステムがフルになる

エラーの原因 

解決方法 

ファイルかディレクトリを間違った場所にコピーした。これは、アプリケーションがクラッシュして、大きな core ファイルをファイルシステムに書き込んだときにも発生する

スーパーユーザーとしてログインし、特定のファイルシステムで ls -tl コマンドを使用し、新しく作成された大きなファイルを特定して削除する。core ファイルを削除する方法については、core ファイルを見つけて削除する方法」を参照

システムのメモリーが不足したために、tmpfs ファイルシステムがフルになる

エラーの原因 

解決方法 

これは、TMPFS に許可されているよりも多く書き込もうとした、または現在のプロセスがメモリーを多く使用している場合に発生する

tmpfs 関連のエラーメッセージから回復する方法については、tmpfs(7FS) のマニュアルページを参照

コピーまたは復元後にファイルの ACL が消失した場合の対処方法

エラーの原因 

解決方法 

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 を実行する前に、ファイルシステムのルートディレクトリに移動しなければなりません。それよりも下のディレクトリでファイルを復元すると、そのディレクトリの下に完全なファイルツリーが作成されます。

古い restore コマンドを使用して、複数ボリュームのフロッピーディスクのバックアップを復元する

dump コマンドで作成した複数ボリュームのフロッピーディスクのバックアップセットからファイルを復元するには、ufsrestore コマンドは使用できません。このようなファイルは、SunOS 4.1 システムで復元しなければなりません。

対話型コマンド

対話型コマンドを使用すると、次の例のような ufsrestore> プロンプトが表示されます。


# ufsrestore ivf /dev/rmt/0
Verify volume and initialize maps
Media block size is 126
Dump   date: Mon Jul 12 14:06:54 1999
Dumped from: the epoch
Level 0 dump of a partial file system on venus:/var/adm/acct
Label: none
Extract directories from tape
Initialize symbol table.
ufsrestore > 

ufsrestore> プロンプトでは、『Solaris のシステム管理 (第 1 巻)』の「ufsdump コマンドと ufsrestore コマンド (参照情報)」にリストされているコマンドを使用して、ファイルの検索や、復元するファイルのリストを作成でき、ファイルを復元することもできます。