トラブルシューティングの基本

はじめに

第43章はじめに

このビデオでは、この章で説明するトピックの概要を簡単に説明します。


学習目標
この章の終わりまでに、次のことができるようになります。

解決策が見つかるまで、いくつかの手順を繰り返して、システムのトラブルシューティングを行うことができます。
起こりうる問題に対して、ネットワークとファイルの整合性を確認できます。
システムのブートに失敗した場合の問題を解決できます。
破損したファイルシステムの修復とリカバリができます。
トラブルシューティングにレスキュー メディアとリカバリ メディアを使用する方法を体得できます。


トラブルシューティングの基本

トラブルシューティングのレベル
各ボックスをクリックして展開し、3つのトラブルシューティングのレベルについて学習します。

トラブルシューティングのレベル

初心者
このレベルのスキルは非常に迅速に学ぶことができます。

経験豊富な人
このレベルのスキルに達するには数年の経験が必要です。

ウィザード（達人）
このレベルのスキルは生まれ持った才能と考える人もいますが、それはナンセンスです。すべてのスキルを学んで身に付けることができます。あらゆる組織に、このレベルの専門スキルを持つ頼りになる人物が、少なくとも1人は必要です。

最高の管理システムがあっても問題は発生します。トラブルシューティングでは、問題がソフトウェアまたはハードウェアに起因するのか、システム ローカルなのか、ローカル ネットワークまたはインターネット内から発生するのかを特定します。

トラブルシューティングを適切に行うには判断と経験が必要です。適切な手順に従うことで、再現可能な方法で問題の原因を特定することができます。


基本的なトラブルシューティング テクニック
トラブルシューティングには、解決策が見つかるまで反復的に繰り返す必要がある、いくつかの手順があります。基本的な対処法は次のとおりです。

問題の特徴を明らかにします。
問題を再現します。
常に簡単なことを最初に試してください。
考えられる原因を1つずつ排除していきます。
一度に1つだけ変更します。それでも問題が解決しない場合は、元に戻します。
詳細な情報を得るために、システム ログ（/var/log/messages、/var/log/secureなど）を確認します。

決定の方針とその方法は非常に確立された手順に従うことが要求されます。直感に基づいて結論に飛びつくことはお勧めできません。チェックリストと統一された手順を使用する理由は、ウィザードへの依存を回避し、システム管理者が既知の手順に従っている場合に、最終的に問題を解決できるようにするためです。そうでなければ、ウィザードが組織を離れた場合、難しい問題を解決するのに十分なスキルを持つ人は誰もいなくなります。

一方、直感を信じて確認することを選択する場合は、直感的な方法を続けるかどうかを、その方法の生産性を基準に決定するために、十分な速さでデータを取得できるかを確認する必要があります。

直感を無視すると問題の解決に時間がかかる場合があります。トラブルシューティングの今までの実績が、この方法でリソースを投資するかどうかを評価できる重要なベンチマークであると言えます。つまり、有用な直感とは魔法ではなく、積み重ねた経験と言えます。


確認すること：ネットワーク
各ボックスをクリックして展開し、ネットワークに問題がある場合に確認する必要がある項目について学習します。

ネットワークに問題がある場合の確認事項

IP構成
ifconfigまたはipを使用して、インターフェイスが稼働しているかどうか、稼働している場合は正しく設定されているかどうかを確認します。

ネットワーク ドライバ
インターフェイスを起動できない場合は、ネットワーク カードの正しいデバイス ドライバがロードされていない可能性があります。ネットワーク ドライバがカーネル モジュールとしてロードされているかをlsmodで確認します。もしくは、/proc/interruptsや/sys/class/netなどの/procと/sys内の関連する疑似ファイルを調べて確認します。

接続性
pingを使用してネットワークが表示されているかどうかを確認し、応答時間とパケット損失を確認します。tracerouteはネットワークを介してパケットを追跡できますが、mtrを使えばこれを継続的に実行できます。これらのユーティリティを使用すると、問題がローカルにあるのかインターネットにあるのかがわかります。

デフォルト ゲートウェイとルーティング構成
route -nを実行して、ルーティング テーブルが有用なものかどうかを確認します。

ホスト名解決
URLに対してdigまたはhostを実行し、DNSが正しく機能しているかどうかを確認します。

ネットワークの問題は、ソフトウェアまたはハードウェアのいずれかで発生する可能性があり、デバイス ドライバが読み込まれたり、ネットワーク ケーブルが接続されたりするのと同じくらい簡単に起こります。ネットワークが稼働しているけれどもパフォーマンスが悪い場合は、トラブルシューティングではなく、パフォーマンス チューニングの対象になります。問題がマシンの外にある場合や、バッファ サイズなどのさまざまなネットワーク パラメータの調整が必要な場合があります。


確認すること：ファイルの整合性
破損した構成ファイルとバイナリをチェックする方法はいくつかあります。このコースですでに説明したように、パッケージング システムには、ファイルの整合性を検証し、変更を確認する方法があります。RPMベースのシステムの場合：

$ rpm -V some_package

これで単一のパッケージをチェックし、

$ rpm -Va

これでシステム上のすべてのパッケージをチェックします

Debianベースのシステムでは、次の方法で整合性をチェックできます 。

$ debsums options some_package

これにより、そのパッケージ内のファイルのチェックサムがチェックされます。ただし、すべてのパッケージがチェックサムを保持しているわけではないため、これが完全に役立つとは限りません。最近のバージョンのdpkgでは、-Vまたは--verifyオプションを利用することもできます。

侵入検知を行い、ファイルの変更をチェックする別の方法としてaideがあります。

$ sudo aide --check

これはファイルのスキャンを実行し、最後のスキャンと比較します。もちろんaideデータベースを初期化した後、それを保持しておく必要があります。


ブート プロセスの失敗
システムが適切に、または完全に起動しない場合、問題の原因を特定するには、各段階で何が起きているかを理解することが重要です。 

各ボックスをクリックして展開し、BIOSステージを通過したと想定して、発生する可能性のある障害状態について学習します。

ブート プロセスの失敗

ブートローダーの画面がでない
GRUBの構成ミス、または破損したブート セクタを確認します。ブートローダーを再インストールする必要があるかもしれません。

カーネルのロードに失敗
ブート プロセス中にカーネル パニックが発生する場合、おそらく、カーネルの構成ミスまたは破損、あるいはカーネル コマンド ラインで指定されたGRUB構成ファイルの誤ったパラメータが原因です。カーネルが過去に正常に起動していた場合は、カーネルが破損しているか、GRUB構成ファイルのカーネル コマンド ラインが破滅的な方法で改ざんされています。どちらかであるかに応じて、カーネルを再インストールするか、ブート時にインタラクティブなGRUBメニューに入り、最小限のコマンド ライン パラメータを使用するかして、修正することができます。または、次の章で説明するように、レスキュー イメージで起動することもできます。

カーネルはロードできるが、ルート ファイルシステムのマウントに失敗する
主な原因は次のとおりです。

1.誤って構成されたGRUB構成ファイル
2.誤って構成された/etc/fstab
3.カーネルに組み込まれた、もしくはinitramfs初期RAMディスクやファイルシステムにモジュールとして組み込まれた、ルート ファイルシステムの種類がサポートされていない。

initプロセス中の失敗
initが開始されるとうまくいかないことがたくさんあります。停止する前に表示されるメッセージをよく見てください。別のカーネルで以前に問題がなかった場合、これは大きな手掛かりとなります。破損したファイルシステム、起動スクリプトのエラーなどに注意してください。3（グラフィックなし）や1（シングル ユーザー モード）などの低いランレベルでブートしてみてください。


ファイルシステムの破損とリカバリ
ブート プロセス中に1つ以上のファイルシステムがマウントに失敗した場合、fsckを使用して修復を試みることができます。ただし、それを行う前に、/etc/fstabが誤って構成されていたり、破損していないことを確認する必要があります。繰り返しますが、実行中のカーネルが対応できないファイルシステムの種類がある場合は、それが問題である可能性があります。

ルート ファイルシステムがマウントされている場合は、このファイルを調べることができます。ただし、/が読み取り専用としてマウントされている可能性があるため、ファイルを編集して修正するには、次のコマンドを実行します。

$ sudo mount -o remount,rw /

これで書き込み可のパーミッションで再マウントできます。

/etc/fstabが正しいと思われる場合は、fsckを実行します。まず、次を試してください。

$ sudo mount -a

これは、すべてのファイルシステムをマウントしようとします。これが完全に成功しない場合は、問題があったものを手動でマウントしてみてください。最初に調査のためにfsckを実行すべきです。その後、見つかったエラーを修正して、再度実行します。


仮想コンソールの使用
デフォルトでは、Linux は12個の仮想コンソール（仮想端末とも呼ばれる）を定義していて、システムへのローカル アクセスを許可します。通常、最初の6つはログイン テキスト コンソールです。コンソール1は、ほとんどのディストリビューションでシステム コンソールとして使用されます。7番目（がある場合）は、グラフィカル コンソールです。ただし、一部のディストリビューション（RHELを含む）はコンソール1を使用します。

Ctrl-Alt-FX（Xはコンソールの番号）を使用して、コンソール間を移動できます。たとえば、Ctrl-Alt-F5はコンソール6に移動します。


知識チェック

「第43章 - トラブルシューティングの基本」を完遂しました。おめでとうございます。このクイズに答えて、これまでに学んだ概念の理解度をチェックしてください。

クイズ開始

問題 43.1
速度の低下などの一部のネットワーク問題は、適切に機能しているネットワークで使用できるパラメータがないと、検出が困難です。このようなパラメータの例として、www.google.comの応答時間があります。True or False?

A. True
B. False

問題 43.2
ifconfigを使用して、ゲートウェイ構成を表示できます。True or False?

A. True
B. False

問題 43.3
lsmodは、ネットワークの問題のトラブルシューティングに使用できます。True or False?

A. True
B. False

問題 43.4
BIOSおよびブートローダーのパスワードが設定されているが不明な場合、ブートのトラブルシューティングは、不可能ではないにしても非常に困難になる可能性があります。True or False?

A. True
B. False

問題 43.5
間違ったBIOS設定はブートでは問題を引き起こしません。True or False?

A. True
B. False

問題 43.6
/etc/fstabでのエラーは警告メッセージを作成するだけであり、ブート プロセスは通常どおり続行されます。True or False?

A. True
B. False


