Jump to contentJump to page navigation: previous page [access key p]/next page [access key n]
適用先 openSUSE Leap 15.7

21 よくある問題とその解決方法 Edit source

本章では、広範囲の潜在的な問題と、それらの解決方法について記しています。ここに書かれた状況とは厳密に一致していなくても、問題を解決するための糸口になるはずです。

21.1 情報の発見と収集 Edit source

Linux は詳細に状況を報告します。お使いのシステムに何らかの問題がある場合、いくつかの場所を確認しておく必要がありますが、それらのうちのほとんどは Linux システムで一般的な場所ですが、場合によっては openSUSE Leap 固有の場所を確認する必要があることもあります。また、多くのログファイルは YaST で確認することができます (その他 › システムログ) 。

このほか、 YaST ではサポートチームが必要とする各種のシステム情報を、一括で収集する機能も用意しています。 その他 › サポート を選択し、問題のカテゴリを選択してください。全ての情報が収集できたら、あとはサポートリクエストに添付してください。

下記の表では、各種のログファイルの場所と、そのファイルに出力される主な内容を示しています。なお、 ~ で始まるパスは、現在のユーザのホームディレクトリ内であることを示しています。

表 21.1: ログファイル

ログファイル

説明

~/.xsession-errors

現在動作中のデスクトップアプリケーションからのメッセージが出力されます。

/var/log/apparmor/

AppArmor からのメッセージが出力されます。詳しくは パートIV「AppArmor による権限の制限」 をお読みください。

/var/log/audit/audit.log

お使いのシステムにおけるファイルやディレクトリ、各種のリソースに対するアクセスを追跡する、監査システムからのメッセージが出力されます。詳しくは パートVI「Linux 監査フレームワーク」 をお読みください。

/var/log/mail.*

メールシステムからのメッセージが出力されます。

/var/log/NetworkManager

NetworkManager が出力するログファイルが含まれています。ネットワーク接続に関するメッセージが出力されます。

/var/log/samba/

Samba サーバとクライアントのログファイルが含まれています。

/var/log/warn

カーネルとシステムログデーモンからのメッセージのうち、 warning (警告) レベル以上のメッセージが出力されます。

/var/log/wtmp

現在のマシンセッション内でのユーザログインレコードが含まれるログファイルです。ただし、このファイルはバイナリ形式であるため、 last コマンドを利用して表示します。

/var/log/Xorg.*.log

X Window System における、起動時と実行時のメッセージが出力されます。特に X の起動時の問題を分析する際に便利なファイルです。

/var/log/YaST2/

YaST の処理内容とその結果のログファイルが含まれています。

/var/log/zypper.log

zypper のログファイルです。

ログファイルとは別に、お使いのマシンには動作中のシステムに関する様々な情報を出力するファイルが用意されています。詳しくは 表 21.2: /proc ファイルシステム内で採取できるシステム情報 をお読みください。

表 21.2: /proc ファイルシステム内で採取できるシステム情報

ファイル

説明

/proc/cpuinfo

種類、製造元、型式、性能などのプロセッサ情報が含まれるファイルです。

/proc/dma

現在使用中の DMA チャンネルに関する情報が含まれるファイルです。

/proc/interrupts

使用中の割り込み (インタラプト) と、それらの使用回数が含まれるファイルです。

/proc/iomem

I/O (Input/Output; 入出力) メモリの状態に関する情報が含まれるファイルです。

/proc/ioports

現時点で使用中の I/O ポートの情報が含まれるファイルです。

/proc/meminfo

メモリ状況に関する情報が含まれるファイルです。

/proc/modules

個別のモジュールに関する情報が含まれるファイルです。

/proc/mounts

現在マウントしているデバイスの情報が含まれるファイルです。

/proc/partitions

全てのハードディスクに関する情報が含まれるファイルです。

/proc/version

Linux のバージョンに関する情報が含まれるファイルです。

/proc ファイルシステム以外にも、 Linux カーネルには sysfs モジュールと呼ばれるメモリ内ファイルシステムが提供されています。このモジュールはカーネル内のオブジェクトとそれらの属性、およびそれらの関係性に関する情報が含まれています。 sysfs について、 udev 関係については 第16章 「udev による動的なカーネルデバイス管理 をお読みください。また、 表 21.3 には、 /sys 内にある一般的なディレクトリ構造の概要を示しています。

表 21.3: /sys ファイルシステム内で採取できるシステム情報

ファイル

説明

/sys/block

システム内で検出された各ブロックデバイスに対して、サブディレクトリが作成されるディレクトリです。一般的には、ディスクデバイスのサブディレクトリが作成されます。

/sys/bus

それぞれの物理バスタイプに応じたサブディレクトリが作成されるディレクトリです。

/sys/class

デバイスの機能種類 (グラフィック/ネットワーク/プリンタなど) 別にまとめられたサブディレクトリが作成されるディレクトリです。

/sys/device

グローバルなデバイス構造が含まれるディレクトリです。

Linux にはシステムを分析したり監視したりするための、各種ツールが用意されています。第2章 「システム監視ユーティリティ には、システムの分析において最もよく使用するツールを示しています。

下記のシナリオでは、タイトルに問題点の概要を、本文内に解決方法そのものや、より詳細な解決方法の参照先、および関連するその他のシナリオなどを示しています。

21.2 起動時の問題 Edit source

起動時の問題とは、お使いのシステムが正しく起動しない問題のことを指します (必要なターゲットが開始できず、ログイン画面が表示されない場合を指します) 。

21.2.1 GRUB 2 ブートローダが読み込みに失敗する Edit source

ハードウエアが正しく動作している場合、ブートローダが壊れていて Linux が起動できなくなっていることが考えられます。この場合は、ブートローダの修復作業が必要となります。これを行うには、 21.5.2項 「レスキューシステムの使用」 の手順に従ってレスキューシステムを起動したあと、 21.5.2.4項 「ブートローダの修正と再インストール」 の手順に従ってブートローダを修復してください。

また、下記の手順に従ってレスキューシステムを利用し、ブートローダを修復する方法もあります。まずはインストールメディアを利用してマシンを起動してください。起動画面では 詳細 › Linux システムの起動 を選択します。あとはインストール済みのシステムが含まれるディスクを選択して、既定のカーネルオプションで起動を行ってください。

ディスクの選択
図 21.1: ディスクの選択

システムが起動したら、 YaST を起動して システム › ブートローダ を選択します。 MBR に汎用ブートコードを書き込む が選択されていることを確認して、 OK を押します。これで壊れているブートローダを上書きするか、失われたブートローダをインストールし直すことができます。

これでもマシンが起動しない場合は、 BIOS 関連の問題であることが考えられます:

BIOS の設定

BIOS の設定を確認して、ハードディスク関連がどのようになっているのかを確認してください。現在の BIOS 設定で、ハードディスクが検出されていなければ、 GRUB 2 を起動することができません。

BIOS の起動順序

お使いのシステムにおける起動順序の設定で、ハードディスクが含まれていることを確認してください。ハードディスクが含まれていない場合で、ハードディスクが正しく検出されている場合は、ハードディスクを含める必要があります。

21.2.2 ログインプロンプトが表示されない Edit source

この問題は、カーネルのアップグレード後などに発生することがあり、 カーネルパニック としても知られている問題で発生します。この場合、システムコンソール内に、直近の処理で発生したエラーメッセージが表示されるようになります。そのため、ソフトウエアの更新に従って再起動を行った場合は、問題なく動作していた古いバージョンのカーネルと関連のファイルに戻すことで、問題を解決することができます。カーネルを古いバージョンに戻すには、 GRUB 2 のブートローダの画面を利用して下記の手順に従って作業を行います:

  1. リセットボタンを押してコンピュータを再起動するか、いったん電源を切って入れ直します。

  2. GRUB 2 の起動画面が表示されたら、 Advanced Options (高度なオプション) の項目を選択して、さらに表示された項目の中から古いバージョンのカーネルを選んでください。これで古いバージョンのカーネルと、関連するファイルが起動するようになります。

  3. 起動処理が完了したら、新しいほうのカーネルを削除したあと、必要であれば YaST の ブートローダ モジュールを利用して、古いほうのカーネルを起動するよう起動項目を修正します。詳しくは 12.3項 「YaST によるブートローダの設定」 をお読みください。ただし、起動項目の修正は、通常であれば自動化された更新ツールが行いますので、特に実施する必要は無いはずです。

  4. 再度再起動します。

これでも問題が解決しない場合は、インストールメディアを利用してコンピュータを起動してください。コンピュータが起動したら、 ステップ 3 の手順に従って作業を行ってください。

21.2.3 グラフィカルなログイン画面が表示されない Edit source

コンピュータは問題なく起動するものの、グラフィカルなログインマネージャが起動しない場合は、まず既定の systemd ターゲットの問題なのか、 X Window System の設定の問題なのかを切り分ける必要があります。まず現在の systemd ターゲットを確認するには、 sudo systemctl get-default を実行してください。表示された値が graphical.target 以外の ものであった場合は、 sudo systemctl isolate graphical.target を実行してください。これでグラフィカルな画面が表示されるようになったら、ログインを行って YaST › システム › サービスマネージャ を選択し、 既定のシステムターゲットグラフィカルインターフェイス を選択してください。これでシステム起動時にグラフィカルなログインマネージャが動作するようになります。

上記の手順でグラフィカルインターフェイスのターゲットに切り替えても、グラフィカルなログインマネージャが表示されない場合は、デスクトップ環境もしくは X Window System のソフトウエアの設定が間違っているか、もしくは壊れてしまっていることが考えられます。まずは /var/log/Xorg.*.log にあるログファイル内の詳細なメッセージを確認して、 X サーバの起動ができているかどうかを確認してください。デスクトップの起動が失敗している場合は、 journalctl (詳しい手順は 第11章 「journalctl : systemd ジャーナルへの問い合わせコマンド をお読みください) でシステムジャーナルを調査し、エラーメッセージが記録されていないかどうかを確認してください。なお、ジャーナル内に X サーバの設定の問題を表すヒントがあった場合は、まずそれらを修正してみてください。 X サーバの設定を修正してもデスクトップが起動しない場合は、デスクトップ環境をインストールし直してください。

21.2.4 btrfs のルートパーティションがマウントできない Edit source

btrfs のルートパーティションが壊れてしまった場合、下記の方法で解決するかどうか試してみてください:

  • -o recovery オプションを付けてパーティションをマウントしてみてください。

  • マウントがうまくいかない場合は、ルートパーティションに対して btrfs-zero-log を実行してみてください。

21.2.5 ルートパーティションの強制チェック Edit source

ルートパーティションが壊れてしまった場合は、起動画面で forcefsck オプションを指定してみてください。これにより、 fsck に対して -f (force; 強制) オプションが追加されるようになります。

21.2.6 起動時のスワップ無効化について Edit source

起動の時点でスワップデバイスが利用できず、システムが有効化できない場合には、起動が失敗してしまいます。このような場合は、カーネルのコマンドラインに下記の内容を追加して、全てのスワップデバイスを無効化してみてください:

systemd.device_wants_unit=off systemd.mask=swap.target

特定のスワップデバイスだけを無効化するには、下記のように指定します:

systemd.mask=dev-sda1.swap

21.2.7 デュアルブートシステムで GRUB 2 が正しく動作しない問題 Edit source

再起動時に GRUB 2 が正しく動作しない場合は、 BIOS 設定で Fast Boot (高速起動) 機能を無効化してください。

21.3 ログイン時の問題 Edit source

ログイン時の問題とは、正しいユーザ名とパスワードを入力しているのにログインが拒否される場合や、ユーザ名とパスワードの入力は受け入れられるものの、正しく動作しない問題を指します。具体的には、グラフィカルなデスクトップの起動失敗のほか、エラーが発生していたり、コマンドラインのみが表示される画面に遷移してしまったりする場合です。

21.3.1 正しいユーザ名とパスワードを入力しているのにログインできない Edit source

この問題は、お使いのシステムがネットワーク認証やディレクトリサービスの認証を使用するように設定されていて、何らかの理由で設定されているサーバから応答を得られない場合に発生します。これに該当する場合は、 root だけがローカルユーザとして設定されていることが多く、このユーザだけがログインできることになります。システムは問題なく動作しているものの、ログインができない場合は、下記のような原因が考えられます:

  • ネットワークが動作していない。こちらについて詳しく調べるには、 21.4項 「ネットワークの問題」 をお読みください。

  • DNS サーバが正しく動作していない (この原因である場合、 GNOME も正しく動作せず、インターネットも参照できなくなります) 。この原因である場合、マシンへのログインに長い時間がかかるのが通常です。詳しくは 21.4項 「ネットワークの問題」 をお読みください。

  • お使いのシステムで Kerberos を使用するように設定している場合は、システムの時刻が Kerberos サーバの時刻と大きくずれていることが原因である場合もあります (通常は 300 秒以上ずれていると、ログインが行えなくなります) 。 NTP (Network Time Protocol) サービスが正しく動作していないか、ローカルの NTP サーバが動作していないことにより、時刻が正しい値になっていない場合もあります。 Kerberos は、その仕様上、サーバとクライアントとの間で時刻が同期している必要があります。

  • システムの認証設定が誤っていることも考えられます。まずは PAM の設定ファイルを確認し、文法上のエラーやディレクティブの順序に問題がないかどうかを確かめてください。 PAM に関する背景となる情報や、設定ファイルの書式について、詳しくは 第2章 「PAM を利用した認証 をお読みください。

  • ホームパーティションが暗号化されていることによって、ログインができない場合もあります。詳しくは 21.3.3項 「暗号化されたホームパーティションへのログインが失敗する」 をお読みください。

ネットワーク以外の原因である場合、 root でログインして設定を修正して解決することになります。なお、 root でもログインができないような場合は、 手順12.3「レスキューモードへの突入」 で示されている手順に従って、レスキューモードで起動して修復する必要があります。

21.3.2 正しいユーザ名とパスワードを受け付けない Edit source

この問題には数多くの原因が考えられることから、ユーザが直面する最もよくある問題です。ローカルでユーザを作成しているかネットワーク側で認証を行うよう設定しているかによって異なりますが、ログインの問題は様々な理由で発生します。

ローカルでのユーザ管理の場合は、下記の原因が考えられます:

  • ユーザのパスワード入力が誤っている。

  • デスクトップの設定ファイルを含むホームディレクトリが壊れているか、書き込みが禁止されてしまっている。

  • 特定のユーザのみで X Window System の認証が失敗する場合、ユーザのホームディレクトリ内に他の Linux ディストリビューションの設定が混入してしまっている可能性が考えられます。

ローカルのログイン問題について原因を調べるには、下記の手順で行います:

  1. まずは認証機構全体のデバッグを始める前に、ユーザがパスワードを正しく記憶していることを確認してください。ユーザのパスワードが誤っている可能性がある場合は、 YaST のユーザ管理モジュールを利用して、ユーザのパスワードを変更してください。なお、パスワードの入力にあたっては、 Caps Lock の状態に注意し、必要であれば外して入力を行うようにしてください。

  2. root でログインして journalctl -e を実行し、ログイン処理と PAM に関して、エラーメッセージが出力されていないかどうかを確認します。

  3. 次に CtrlAltF1 を押してコンソールに切り替え、対象のユーザがログインできるかどうかを確認します。これで問題なくログインできる場合は、このマシンでの認証が成功していることになりますので、 PAM 関連には問題がないことがわかります。あとは X Window System か GNOME デスクトップの問題ということになります。以降の手順は 21.3.4項 「GNOME デスクトップに問題がある」 をお読みください。

  4. そのユーザのホームディレクトリ内に、他の Linux ディストリビューションが生成した Xauthority ファイルが保存されている場合は、そのファイルを削除します。これを行うには、 CtrlAltF1 でコンソールに切り替えて対象のユーザでログインし、 rm .Xauthority を実行します。これにより、そのユーザに対する X Server の認証問題を解決することができます。再度グラフィカルなログイン画面に戻り、ログインしてみてください。

  5. 設定ファイルが壊れているためにデスクトップが起動できない場合は、 21.3.4項 「GNOME デスクトップに問題がある」 の手順に従ってください。

ネットワーク認証を設定している環境で、特定のユーザがログインできない場合は、一般的には下記のような理由が考えられます:

  • ユーザのパスワード入力が誤っている。

  • マシンのローカルの認証ファイル内にユーザ名が存在していて、ネットワーク認証システム側にも同じユーザ名のユーザが存在しているため、矛盾が発生している。

  • ホームディレクトリは存在しているものの、壊れているか利用できない状態になってしまっている。書き込みが禁止されているか、サーバ上にある場合はアクセスできない状態になってしまっている。

  • 認証機構側の規制により、そのホストではそのユーザのログインを許可していない。

  • 何らかの理由でコンピュータのホスト名が変更されているため、ホスト名をベースにしたユーザへのアクセス許可ができなくなってしまっている。

  • コンピュータから、ユーザの情報がある認証サーバやディレクトリサーバにアクセスできていない。

  • 特定のユーザのみで X Window System の認証が失敗する場合、ユーザのホームディレクトリ内に他の Linux ディストリビューションの設定が混入してしまっている可能性が考えられます。

ネットワーク認証でログイン失敗の原因を探るには、下記の手順で行います:

  1. まずは認証機構全体のデバッグを始める前に、ユーザがパスワードを正しく記憶していることを確認してください。

  2. まずは認証に使用している認証サーバやディレクトリサーバが正しく動作していて、他のマシンとの通信に問題がないことを確認します。

  3. 次に他のマシンで同じユーザ名とパスワードでログインしてみて、認証データがサーバ内に存在しているかどうか、および正しく配信されているかどうかを確認してください。

  4. 逆に、ログインのうまくいっていないマシンで、他のユーザがログインできるかどうかも確認します。他のユーザで問題なくログインできる場合や、 root でログインできる場合は、journalctl -e のように実行して、システムジャーナルをお読みください。ログインを実施した際のタイムスタンプも記載されますので、その前後に PAM がエラーを出力していないかどうかを確認してください。

  5. 次に CtrlAltF1 を押してコンソールに切り替え、対象のユーザがログインできるかどうかを確認します。これで問題なくログインできる場合は、このマシンでの認証が成功していることになりますので、 PAMおよび使用しているディレクトリサーバには問題がないことがわかります。あとは X Window System か GNOME デスクトップの問題ということになります。以降の手順は 21.3.4項 「GNOME デスクトップに問題がある」 をお読みください。

  6. そのユーザのホームディレクトリ内に、他の Linux ディストリビューションが生成した Xauthority ファイルが保存されている場合は、そのファイルを削除します。これを行うには、 CtrlAltF1 でコンソールに切り替えて対象のユーザでログインし、 rm .Xauthority を実行します。これにより、そのユーザに対する X Server の認証問題を解決することができます。再度グラフィカルなログイン画面に戻り、ログインしてみてください。

  7. 設定ファイルが壊れているためにデスクトップが起動できない場合は、 21.3.4項 「GNOME デスクトップに問題がある」 の手順に従ってください。

21.3.3 暗号化されたホームパーティションへのログインが失敗する Edit source

ラップトップマシンの場合、ホームディレクトリを暗号化しておくことが推奨されます。ホームディレクトリを暗号化していてログインが失敗する場合、パーティションの暗号解除ができていない可能性が考えられます。

暗号化されたパーティションが存在する場合、起動時にパスフレーズを入力して暗号を解除します。パスワードの入力を行わないと、起動処理はそのまま続行されますが、パーティションの暗号化は解除されなくなります。

パーティションの暗号化を解除するには、下記の手順で行います:

  1. CtrlAltF1 でテキストコンソールに切り替えてログインします。

  2. root になります。

  3. 下記のように実行して、暗号解除処理を再起動します:

    # systemctl restart home.mount
  4. 暗号化されたパーティションのパスフレーズを入力して、暗号を解除します。

  5. ログアウトし、 AltF7 でログイン画面に戻ります。

  6. あとは通常通りログインするだけです。

21.3.4 GNOME デスクトップに問題がある Edit source

GNOME デスクトップを利用している際に問題が発生した場合は、グラフィカルなデスクトップ環境の誤動作を調べるための方法がいくつか用意されています。具体的には下記の手順を実施することで、最も安全に GNOME デスクトップを修復することができます。

手順 21.1: GNOME のトラブルシューティング
  1. YaST を起動して、 セキュリティとユーザ を選択します。

  2. ユーザとグループの管理 を選択してダイアログを開き、 追加 を押します。

  3. 必要な項目に入力を行って OK を押し、新しいユーザを作成します。

  4. いったんログアウトしてから、作成した新しいユーザでログインします。これで初期状態の GNOME 環境を開くことができます。

  5. あとは従来使用していたユーザの ~/.local/ ディレクトリや ~/.config/ ディレクトリの内容を、新しいほうのユーザのホームディレクトリにコピーします。

    コピーが終わったらいったんログアウトしてログインし直し、 GNOME が正しく動作するかどうかを確認します。

  6. 新しいユーザでは問題が発生しない場合は、コピーする設定ファイルの範囲を広げていって、どの設定が原因であるのかを突き止めます。

  7. 原因が判明したら従来のユーザでログインし、原因の設定ファイルを移動するなどして取り除き、ログインし直します。

  8. あとは作成したユーザを削除すれば完了です。

21.4 ネットワークの問題 Edit source

お使いのシステムにおける多くの問題が、ネットワークに関わるものである場合があります。場合によっては、ネットワークとは無関係な問題であると思われるものであっても、原因がネットワーク側にある場合さえもあります。たとえばシステムへのログインができないような場合も、時によってはネットワーク側に原因がある場合があります。この章では、シンプルなネットワークのチェックリストを提供し、ネットワーク側に問題が発生していないかどうかを確認する方法を示しています。

手順 21.2: ネットワーク関連の問題の識別方法

お使いのマシンでのネットワーク接続を確認するには、下記の手順で行います:

  1. イーサネットで接続を行っている場合は、まずハードウエア側を確認してください。ネットワークケーブルがコンピュータに正しく接続されていること、およびルータ (もしくはハブなど) が正しく接続されていることを確認してください。イーサネットコネクタには、通常 LED が付属していて、その点灯で接続を確認することができます。

    接続ができていない場合は、他のコンピュータで同じケーブルを使用してみて、接続ができるかどうかを確認してください。他のコンピュータでは問題なく動作する場合は、お使いのネットワークカード側に問題があることになります。また、ハブやスイッチなどがネットワーク環境内にある場合は、それらの問題である可能性もあります。

  2. 無線で接続している場合は、他のマシンで無線接続ができているかどうかを確認してください。他のマシンでも接続ができない場合は、ネットワークの管理者にお尋ねください。

  3. 基本的なネットワークの接続を確認したら、次はどのサービスが利用できないのかを調べていきます。お使いの環境内でのネットワークサービスに関する情報を収集し、それぞれ YaST モジュールを利用したりネットワークの管理者に尋ねたりして、問題があるかどうかを確認します。下記の一覧には、一般的に使用される各種のネットワークサーバと、そこで障害が発生している場合の影響範囲を示しています。

    DNS (ネームサービス)

    ネームサービスが壊れてしまったり、動作しなくなってしまったりした場合は、ネットワーク側の多くのサービスに影響があります。ローカルのマシンがネットワークサーバを利用して認証するよう設定しているような場合で、ネームサービスの障害によって認証サーバを見つけられなくなってしまえば、ユーザは誰もログインできなくなってしまいます。また、ネットワーク内にあるコンピュータ同士も通信ができなくなることがあります。

    NTP (タイムサービス)

    NTP サービスが正常に動作していないと、 Kerberos の認証や X サーバの動作に問題が発生する場合があります。

    NFS (ファイルサービス)

    アプリケーションが NFS でマウントされたディレクトリにデータを保存しているような場合、 NFS サービスが正常に動作していないか、設定が誤っていると、起動や動作に問題が発生します。ホームディレクトリに対して NFS を使用している場合、 .gconf 等のディレクトリにユーザの設定が書き込まれているため、ユーザのデスクトップ設定ファイルを読み込むことができなくなることもあります。

    Samba (ファイルサービス)

    アプリケーション側で Samba サーバを参照してデータを読み込み、もしくは書き込んでいる場合、そのアプリケーションの起動ができなくなるか、正しく機能しなくなります。

    NIS (ユーザ管理)

    お使いの openSUSE Leap システムで NIS サーバを参照している場合、 LDAP サーバに障害が発生すると、ユーザはそのマシンにログインすることができなくなります。

    LDAP (ユーザ管理)

    お使いの openSUSE Leap システムで LDAP サーバを参照している場合、 LDAP サーバに障害が発生すると、ユーザはそのマシンにログインすることができなくなります。

    Kerberos (認証)

    認証が動作しなくなり、どのマシンでもログインができなくなります。

    CUPS (ネットワーク印刷)

    印刷ができなくなります。

  4. ネットワークサーバの動作を確認したら、次にお使いのマシンのネットワーク設定が正しいことを確認します:

    重要
    重要: 制限事項

    下記に示す調査手順は、内部ルーティングを行っていない、シンプルなネットワークサーバ/クライアントの環境にのみ適用可能な手順です。サーバとクライアントは、いずれも同じサブネット内にあり、ルーティングを介さずに通信できる環境での手順例ですので、あらかじめご注意ください。

    1. まずは ping IP_アドレスまたはホスト名 (サーバの IP アドレスまたはホスト名に置き換えてください) を実行して、サーバとの接続ができることを確認してください。ホスト名を指定した場合、コマンドが成功すれば、指定したホストとの通信ができているだけでなく、ネームサービスも問題なく動作していることがわかります。

      destination host unreachable と表示されて ping が失敗した場合は、お使いのシステムもしくは相手のサーバが正しく設定されていないか、ダウンしていることが考えられます。他のマシンから ping お使いのコンピュータの IP アドレス もしくは お使いのコンピュータのホスト名 を実行して、成功するかどうかを確認してください。他のマシンからお使いのコンピュータに対して ping が成功する場合は、サーバ側が動作していないか、正しく設定されていないことが考えられます。

      unknown host と表示されて ping が失敗した場合、ネームサービスが正しく設定されていないか、ホスト名が誤っていることが考えられます。これ以降の調査について、詳しくは ステップ 4.b をお読みください。こちらを参照しても ping がうまく行かない場合は、ネットワークカードの設定が誤っているか、ネットワーク接続に使用しているハードウエアが壊れていることが考えられます。

    2. お使いのマシンで使用しているネームサーバが、正しくホスト名を IP アドレスに変換できているかどうか、および正しく IP アドレスをホスト名に変換できているかどうかを確認するには、 host ホスト名 を実行します。このコマンドがホストに対応する IP アドレスを返していれば、ネームサービスは問題なく動作しているものと考えられます。 host コマンドが失敗する場合は、お使いのコンピュータでのネームサーバやアドレス解決に関する全ての設定を確認してください。

      /var/run/netconfig/resolv.conf

      このファイルには、ネームサーバの指定と使用しているドメイン名に関する情報が含まれます。このファイルは /run/netconfig/resolv.conf へのシンボリックリンクであり、通常は YaST や DHCP で自動調整するものです。このファイルの書式は下記のとおりです。 IP アドレスとドメイン名が正しいことを確認してください:

      search 完全修飾ドメイン名
      nameserver ネームサーバの_IP_アドレス

      このファイルでは複数のネームサーバアドレスを指定することもできます。ただし、お使いのホストで名前を解決する必要がある場合、最低でも 1 つ以上の設定が必要となります。また、必要であれば YaST のネットワーク設定モジュールの ホスト名/DNS タブでも設定を変更することができます。

      お使いのネットワーク接続が DHCP で処理されている場合、 DHCP でホスト名やネームサーバの情報を更新させるように設定してください。これを行うには、 ホスト名/DNS タブにある DHCP でホスト名を設定 (全体で設定することができるほか、インターフェイス単位でも設定できます) を はい にし、かつ DHCP でネームサーバと検索リストを更新 を選択してください。

      /etc/nsswitch.conf

      このファイルには、ネームサービスの情報を検索する際に、どこから情報を取得するかを設定します。このファイルは下記のような内容になっています:

       ...
      hosts: files dns
      networks: files dns
      ...

      dns と書かれている箇所が重要です。これは、 Linux に対して外部のネームサーバを使用するように指示するためのものです。この項目は YaST が自動的に管理している箇所ですが、念のため確認しておくことをお勧めします。

      コンピュータ側での各項目に問題がなければ、ご利用の環境のシステム管理者に対して、 DNS サーバ側で正しいゾーン情報を設定しているかどうかをお尋ねください。 DNS についての詳細は、 第19章 「ドメインネームシステム をお読みください。 ホスト側での DNS 設定に問題がなく、指定している DNS サーバにも問題がなければ、ネットワークとネットワークデバイスの各設定を確認してください。

    3. お使いのシステムからネットワークサーバに通信が確立できない場合で、よくあるネームサーバの問題についてもチェックを済ませている場合は、ネットワークカードの設定を確認してください。

      まず ip addr show ネットワークデバイス のように実行すると、このデバイスが正しく設定されているかどうかを確認することができます。まずは表示されたアドレスとネットマスク ( /マスク値 ) が正しいことを確認してください。 IP アドレスやネットマスクが間違っている場合は、ネットワークが正しく動作できなくなってしまいます。また、できればサーバ側についても確認をしてください。

    4. ネームサービスとネットワークハードウエアが正しく設定されていて、かつ動作している場合で、外部宛のネットワーク通信に応答がなく、しばらくしてタイムアウト表示になってしまう場合や、全く通信ができない場合は、 traceroute 完全修飾ドメイン名 (root で実行します) のように実行して、ネットワークの経路 (ルーティング) が正しいかどうかを確認してください。このコマンドは、お使いのコンピュータから相手側のサーバに至るまで、経由してきたゲートウエイ (ホップ) を一覧で表示することができます。また、各ゲートウエイの表示では、応答時間と到達の可否がそれぞれ表示されます。 traceroute と ping を併用して問題点を抽出し、ネットワーク管理者にお尋ねください。

ネットワーク障害の原因がわかっている場合は、原因がお使いのマシン内にあれば、ご自身で解決することができます。お使いのマシン外にある場合は、システム管理者に連絡を取り発生している内容を知らせて、サービスの再構成やシステムの修復を行ってもらってください。

21.4.1 NetworkManager の問題 Edit source

ネットワークの接続に関して問題がある場合は、まず 手順21.2「ネットワーク関連の問題の識別方法」 の手順で原因を調査してください。 NetworkManager が原因であると疑われる場合は、下記の手順に従って、なぜ NetworkManager がうまく動作していないのかを示すログを採取してください:

  1. root でシェルを起動 (ログイン) します。

  2. NetworkManager を再起動します:

    > sudo systemctl restart NetworkManager
  3. 適当な Web ページ、たとえば https://www.opensuse.org を開きます。問題なく表示できれば、問題は解決済みとなります。

  4. /var/log/NetworkManager 以下のファイルを収集して、 NetworkManager のログファイルを収集してください。

NetworkManager について、詳しくは 第28章 「NetworkManager の使用 をお読みください。

21.5 データの問題 Edit source

お使いのマシンが正しく動作している場合でも動作していない場合でも、データの問題が発生したような場合は、システムを修復する必要があります。特に重要なデータについては、事前にバックアップを採取しておいてください。これにより、お使いのシステムに障害が発生しても、問題を事前に回避できるようになります。

21.5.1 パーティションイメージの管理 Edit source

パーティション全体やディスク全体のバックアップを採取することで、様々なトラブルを事前に回避することができるようになります。 Linux には dd というツールが用意されていて、このツールを利用すればディスク全体の正確なコピーを作成することができます。さらに gzip を併用すれば、データを圧縮することもできます。

手順 21.3: ハードディスクのバックアップと復元
  1. root でシェルを起動します。

  2. バックアップ元のデバイスを選択します。一般的には /dev/sda などのデバイスになります (以降の手順では、バックアップ元 と記述します) 。

  3. イメージのバックアップ先を選択します (以降の手順では、 バックアップ先パス と記述します) 。なお、バックアップ元とバックアップ先は、異なるデバイスでなければなりません。言い換えると、 /dev/sda のバックアップは /dev/sda 以下には保存できません。

  4. 下記のコマンドを実行して、圧縮イメージファイルを作成します:

    # dd if=/dev/バックアップ元 | gzip > /バックアップ先パス/image.gz
  5. バックアップからの復元は、下記のコマンドで行います:

    # gzip -dc /バックアップ先パス/image.gz | dd of=/dev/バックアップ元

パーティション単体でバックアップを採取したい場合は、 バックアップ元 の部分をパーティションのデバイス名にしてください。この場合は、 バックアップ先パス の指定で異なるディスクだけでなく、同じディスクの異なるパーティションを指定することができるようになります。

21.5.2 レスキューシステムの使用 Edit source

様々な理由から、システムは起動しなくなってしまったり、正しく動作しなくなってしまったりすることがあります。たとえばシステムがクラッシュしてファイルシステムが壊れてしまったり、設定ファイルやブートローダが壊れてしまったり、などの問題が発生することがあります。

このような問題を解決するための支援として、 openSUSE Leap にはレスキューシステムと呼ばれる仕組みが用意されています。レスキューシステムは小さな Linux システムで、 RAM ディスク内に読み込まれてルートファイルシステムとなることができるものであるため、 Linux のパーティションをインストール済みの Linux の外側からアクセスすることができるようになります。レスキューシステムを使用すれば、お使いのシステム内の主要な要素を復元し、修復することができるようになります。

  • 任意の種類の設定ファイルに対する編集作業

  • ファイルシステムの瑕疵部分の修正と自動的な修復処理の実行

  • change root 環境でのインストール済みシステムへのアクセス

  • ブートローダの設定の確認/修正/再インストール

  • うまく動作しないデバイスドライバや使用不可能なカーネルからの回復

  • parted コマンドを使用したパーティションサイズの変更。 GNU Parted について、詳しくは GNU Parted の Web サイト https://www.gnu.org/software/parted/parted.html をご覧ください。

レスキューシステムは様々なメディアや場所から読み込むことができます。最もシンプルな方法は、インストールに使用したメディアから起動することです。

  1. まずはインストールメディアを DVD ドライブに挿入します。

  2. システムを再起動します。

  3. 起動画面では、 F2 を押して言語を選択してから、 F4 を押して DVD-ROM を選択します。その後、メインメニューから レスキューシステム を選択します。

  4. Rescue: のプロンプトが表示されたら、 root と入力します。パスワードは不要です。

お使いのマシンに DVD ドライブがない場合は、ネットワーク経由でレスキューシステムを起動することができます。たとえば下記の例はネットワーク上離れた場所にあるサーバから起動する例です。

  1. PXE ブートの設定画面に入って、それぞれinstall=プロトコル://ソースパスrescue=1 を追加します。修復システムを起動する場合は、 repair=1 を追加してください。通常のインストール時と同様に、 プロトコル には対応するネットワークプロトコル (NFS, HTTP, FTP など) を入れ、 ソースパス にはネットワーク上のインストール元に対するパスを指定します。

  2. Wake on LAN を利用してシステムを起動します。

  3. Rescue: のプロンプトが表示されたら、 root と入力します。パスワードは不要です。

レスキューシステムに入ったあとは、複数の仮想コンソールを使用できるようになります。それぞれ AltF1 から AltF6 までを押してアクセスしてください。

シェルや mount プログラムなどのユーティリティ類が、 /bin ディレクトリ内に配置されています。また、 /sbin ディレクトリには、重要なファイルユーティリティやネットワークユーティリティが配置されています。ファイルユーティリティには、たとえばファイルシステムの確認や修復などのコマンドが含まれます。また、このディレクトリにはシステムをメンテナンスするための様々なプログラムも用意されています。具体的には、 fdisk , mkfs , mkswap , mount , shutdown , ip , ss などがあります。さらに、 /usr/bin ディレクトリには、 vi エディタや find, less, SSH などの各プログラムも用意されています。

システムからのメッセージを読みたい場合は dmesg コマンドを、システムログを読みたい場合は journalctl をそれぞれお使いください。

21.5.2.1 設定ファイルの確認と操作 Edit source

レスキューシステムで設定ファイルを修正する場合の例として、たとえば何らかの設定ファイルが壊れてしまっていて、それによって起動が妨げられている場合を考えます。これもレスキューシステムを使用すれば、解決することができます。

設定ファイルを修正するには、下記の手順で行います:

  1. まずは上述のいずれかの方法で、レスキューシステムを起動します。

  2. /dev/sda6 にあるルートファイルシステムをマウントするには、下記のコマンドを実行します:

    > sudo mount /dev/sda6 /mnt

    これで /mnt 内にルートファイルシステムが見えるようになります。

  3. マウントしたルートファイルシステム内に移動します:

    > sudo cd /mnt
  4. vi エディタを利用して、問題のある設定ファイルを開きます。必要な修正を加えたあと、保存して終了します。

  5. 最後にレスキューシステムからファイルシステムのマウントを解除します:

    > sudo umount /mnt
  6. あとはマシンを再起動するだけです。

21.5.2.2 ファイルシステムの修復とチェック Edit source

一般的には、システムが動作している場合はファイルシステムの修復を行うことができません。また重大な問題が発生した場合は、ルートファイルシステムのマウントを行うことができず、起動時に カーネルパニック の状態で停止してしまうことがあります。この場合は、システムの外部からファイルシステムを修復するしか手段がなくなってしまいます。レスキューシステムには ext2 , ext3 , ext4 , msdos , vfat の各ファイルシステムに対応した、チェックと修復のためのプログラムが含まれていますので、 -t オプションを指定して、チェックしたいファイルシステムを指定してください。

たとえば下記のようなコマンドを実行すると、 /etc/fstab ファイル内に指定された全ての ext4 ファイルシステムをチェックします:

> sudo fsck -t ext4 -A
ヒント
ヒント

btrfs の場合は、 btrfsprogs パッケージに含まれる btrfs check コマンドを使用してください。

btrfs ファイルシステムに関する詳細は、下記をお読みください:

21.5.2.3 インストール済みシステムへのアクセス Edit source

レスキューシステムからインストール済みのシステムにアクセスする必要がある場合は、 change root という仕組みを利用します。たとえばブートローダの設定を修正する場合や、ハードウエアの設定ユーティリティを実行するような場合がそれにあたります。

インストール済みのシステムに対して、 change root 環境を構築するには、下記の手順で行います:

  1. ヒント
    ヒント: LVM ボリュームグループの取り込み

    LVM を使用している場合 (詳しくは 5.3項 「LVM 設定」 をお読みください) は、全ての既存のボリュームグループを取り込んで、デバイスをマウントできるようにする必要があります:

    rootvgimport -a

    lsblk コマンドを実行して、ノードとルートパーティションの関係性を調査します。たとえば下記の例では、 /dev/sda2 がルートパーティションになります:

    > lsblk
    NAME        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
    sda           8:0    0 149,1G  0 disk
    ├─sda1        8:1    0     2G  0 part  [SWAP]
    ├─sda2        8:2    0    20G  0 part  /
    └─sda3        8:3    0   127G  0 part
      └─cr_home 254:0    0   127G  0 crypt /home
  2. インストール済みのシステムのルートパーティションをマウントします:

    > sudo mount /dev/sda2 /mnt
  3. /proc , /dev , /sys の各ファイルシステムをマウントします:

    > sudo mount -t proc none /mnt/proc
    > sudo mount --rbind /dev /mnt/dev
    > sudo mount --rbind /sys /mnt/sys
  4. これで change root を行うだけの環境が揃いました。実際に change root を行い、その中で bash を起動します。

    > chroot /mnt /bin/bash
  5. 最後に、インストール済みのシステムに設定されている残りのパーティションをマウントします:

    > mount -a
  6. これでインストール済みのシステムにアクセスできるようになりました。なお、作業が終わったら、再起動を行う前に umount -a コマンドでパーティションのマウントを解除し、 exitchange root を抜けてください。

警告
警告: 制限事項について

change root 環境では、インストール済みのシステム内にある全てのファイルやアプリケーションにアクセスすることができますが、いくつかの制限もあります。レスキューシステムでは、カーネルはレスキューシステムのバージョンになり、 change root 環境内にインストールされているカーネルにはなりません。また、ハードウエアへの対応も最小限に限られ、レスキューシステムとカーネルバージョンが全く同じである場合を除いて、カーネルモジュールを追加することもできません。現在実行中のカーネルのバージョンは、 uname -r コマンドで確認できるほか、インストール済みのカーネルのバージョンは、 change root 環境下の /lib/modules ディレクトリ以下のサブディレクトリで判断することができます。全く同じバージョンである場合は、カーネルモジュールを読み込むことができますが、そうでない場合は USB メモリなどからカーネルモジュールを読み込まなければならなくなります。一般的にはレスキューシステムのカーネルとインストール済みのカーネルのバージョンは異なりますので、サウンドカードへのアクセスなども行うことができません。また、グラフィカルユーザインターフェイスの起動もできません。

また、 AltF1 から AltF6 までのキーを押してコンソールを切り替えても、 change root からは抜けてしまうことにも注意してください。

21.5.2.4 ブートローダの修正と再インストール Edit source

場合によっては、ブートローダの設定が壊れてしまうことによって、システムが起動できなくなることがあります。起動ルーチンではたとえば、物理ドライブを Linux ファイルシステム内の実際の場所に変換する際、正しくブートローダが動作していなければなりません。

ブートローダの設定を確認し、ブートローダを再インストールするには、下記の手順で行います:

  1. 21.5.2.3項 「インストール済みシステムへのアクセス」 に示す手順に従って、インストール済みのシステムにアクセスします。

  2. まずはお使いのシステムに GRUB 2 ブートローダがインストールされていることを確認します。インストールされていない場合は grub2 パッケージをインストールし、下記のコマンドを実行します:

    > sudo grub2-install /dev/sda
  3. 次に、下記のファイルが GRUB 2 の設定書式通りに記述されていることを確認します。書式についての説明は 第12章 「ブートローダ GRUB 2 にあります。もしも書式通りに記述されていない場合は、修正を行ってください。

    • /etc/default/grub

    • /boot/grub2/device.map

    • /boot/grub2/grub.cfg (このファイルは自動生成されるファイルですので、編集はしないでください)

    • /etc/sysconfig/bootloader

  4. あとは下記のコマンド順序を実行して、ブートローダを再インストールします:

    > sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  5. パーティションのマウントを解除し、 change root 環境から抜けてシステムを再起動します:

    > umount -a
    exit
    reboot

21.5.2.5 カーネルのインストールの修正 Edit source

カーネルの更新内容によっては、お使いのシステムに影響があるような新しいバグを起こしてしまうことがあります。たとえば、お使いのハードウエアのデバイスドライバに問題があって、必要なアクセスができなくなってしまう、などの問題が考えられます。この場合は、直前まで問題なく動作していた古いカーネルに戻す (ただしシステム内に残っていれば) か、インストールメディアから元のカーネルをインストールし直すことで、対応することができます。

ヒント
ヒント: 更新後の最新カーネルの維持方法について

カーネルの更新失敗時に起動ができなくなってしまう問題を避けるため、カーネルのマルチバージョン機能を有効にし、更新後も古いカーネルを保存し続けるよう、 libzypp に設定しておくことをお勧めします。

たとえば最近の 2 つのカーネルと、現在動作中のカーネルをそれぞれ保持しておきたい場合は、 /etc/zypp/zypp.conf 内に下記のように設定します:

multiversion.kernels = latest,latest-1,running

詳しくは 第6章 「複数バージョンのカーネルのインストール をお読みください。

似たようなケースとして、 openSUSE Leap でサポートされていないデバイスに対して、うまく動作しないドライバを再インストールしたり、更新したりする必要に迫られる場合があります。たとえばハードウエアの製造元が、ハードウエア RAID コントローラなどの特殊なデバイスを使用していて、バイナリドライバが必要となる場合です。この場合、製造元は、ドライバ更新ディスク (DUD) を作成して、ドライバの修正版や更新版を提供することがあります。

いずれの場合であっても、まずはレスキューモードでインストール済みのシステムにアクセスして、カーネル関連の問題を修正しておかないと、システムの起動ができないままになってしまいます:

  1. まずは openSUSE Leap のインストールメディアから起動します。

  2. カーネルの更新で問題が発生している場合は、この手順は飛ばしてください。ドライバ更新ディスク (DUD) を使用する必要がある場合は、 F6 を押して起動メニューの表示後にドライバ更新を適用する指定をし、ドライバ更新のパスや URL を指定して はい で確認を行ってください。

  3. 起動メニューで レスキューシステム を選択して Enter を押します。 DUD を選択している場合は、ドライバ更新の場所を尋ねられます。

  4. Rescue: のプロンプトが表示されたら、 root と入力します。パスワードは不要です。

  5. 修復するシステムを手作業でマウントし、その環境内に change root で入ります。詳しくは 21.5.2.3項 「インストール済みシステムへのアクセス」 をお読みください。

  6. DUD を使用している場合は、デバイスドライバのパッケージをインストール/再インストール/更新します。ただし、インストールしようとしているドライバが、お使いのカーネルのバージョンと厳密に一致していることを確認してください。

    もしもカーネルの更新時に問題が発生しているような場合は、インストールメディアにあるオリジナルのカーネルに入れ替えることもできます。この場合は、下記の手順を実施してください:

    1. DVD デバイスを hwinfo --cdrom で確認し、mount /dev/sr0 /mnt などでマウントします。

    2. DVD 内のカーネルファイルが保存されているディレクトリまで移動します。たとえば cd /mnt/suse/x86_64/ のように実行します。

    3. rpm -i コマンドを利用して、お使いのフレーバーに対応した kernel-* , kernel-*-base , kernel-*-extra の各パッケージをインストールします。

  7. 必要に応じてブートローダの設定ファイルを更新し、ブートローダを再設定します。詳しくは 21.5.2.4項 「ブートローダの修正と再インストール」 をお読みください。

  8. あとはシステムから起動メディアを取り出して、再起動します。

このページを印刷