Home Wiki > Bugs/YaST
Sign up | Login

Bugs/YaST

tagline: 提供: openSUSE

このページには、 YaST2 やインストールの際に発生したバグの報告方法を記しています。

目次

y2logs や hwinfo などの添付

YaST2 のバグを報告したところ、 "attach y2logs" (y2logs を添付してくれ) と言われました。これはどういう意味ですか?何をすればいいですか?

YaST2 では、実行中に /var/log/YaST2 ディレクトリに対して情報を記録するようになっています。何が起こったのかを推測するため、我々はそれらの情報を必要としていることを言っています。

SUSE Linux 9.3 または SLES-9 SP1 以降では、 Qt UI (いわゆるグラフィカルモード) の場合は Shift キーを押しながら F8 を押してください。ログを保存する先のディレクトリを尋ねられます。

NCurses UI (いわゆるテキストモード) の場合は、 YaST2 のユーザインターフェイスを終了して下記のシェルコマンドを入力してください。

save_y2logs /tmp/y2logs.tgz

SUSE Linux 9.2 (または SLES-9) およびそれ以前の場合は、これらのファイルから tar アーカイブ (圧縮済み、または非圧縮) を作成してください。どのファイルが必要でどのファイルが不要であるかを調べたりせず、下記のように全てのファイルを含めてください。そうでないと多くのほかの方々に知らせることができなくなってしまいます:

cd /var/log
tar -czvf /tmp/y2logs.tgz YaST2

どのリリースを使用しているのかにかかわらず、この問題がインストールや更新の最初のパートで発生した場合は、できあがったファイルを /tmp (最初のパートでは、このディレクトリは RAM ディスクになっています) から安全な場所 (フロッピィディスク、 USB メモリ、インストール先ではないハードディスク、ネットワークで接続された先など) にコピーするのを忘れずに実施してください。

最後に、 Bugzilla で /tmp/y2logs.tgz ファイルを添付してください。 Bugzilla にファイルを添付する際は、ファイル種類の自動検出を使用せずに tar.gz archive (app/x-gunzip) を選んでおいてください。

/var/log/YaST2/y2log を YaST2 のバグに添付しました。それでもなお "attach y2logs" (y2logs を添付してくれ) と言われました。なぜでしょう?

なぜなら y2log ファイルは、起こった出来事を推測するのに必要な多くのファイルのうちの 1 つでしかないからです。 /var/log/YaST2 ディレクトリにはそれ以外にも多数のファイルが存在しています。 y2log は特定のサイズごとに切り替わる仕組みであるため、 /var/log/YaST2/y2log には最新の部分しか含まれていません。多くの場合はこれより古い項目に問題の原因が存在するため、それを必要としているわけです。それ以外にも問題のデバッグを行なうための他のファイルも含まれています。

どのファイルが必要でどのファイルが不要であるかを調べたりせず、下記のように全てのファイルを含めてください。そうでないと多くのほかの方々に知らせることができなくなってしまいます。一つ前の質問を参照して、ディレクトリ全体を tar アーカイブにまとめてください。

パッケージの依存関係や libzypp の解決器についてのバグを報告したいと思います。どのログファイルを添付すればいいでしょうか?

openSUSE 10.2/SLES10 SP1 およびそれ以降のバージョンの場合は、単一パッケージの選択画面で下記のメニュー項目を選択すると、追加の情報を作成することができます: オプション (E)/依存関係の解決テストケースを作成

このオプションは YaST の GTK フロントエンドには存在していません。より機能の優れた Qt フロントエンドをお使いになるか、 zypper をお使いください (openSUSE 11.0 Beta 3 から GTK でも利用できるようになっています)

こちら で示されているとおりに Bugzilla の項目を作成するのに必要なログファイルが生成される旨の表示が現われます。


2 つめの方法 ( かつ最初の項目に該当しなかった場合 生成された解決テストケースは、全体の 95 % 程度の詳細しか分かりません!):

SUSE Linux 10.1 (またはそれ以前) の場合は、 /var/log/YaST2/* にあるファイル全てを こちら の方法で Bugzilla の項目に添付してください。多くの場合、ログレベルを大きくしてログファイルを増やすことは解決の助けになります:

パッケージインストールを行なう場合:

export ZYPP_FULLLOG=1
export Y2MAXLOGSIZE=123456789
export Y2MAXLOGNUM=42
yast2 -i

YOU (オンライン更新)の場合:

export ZYPP_FULLLOG=1
export Y2MAXLOGSIZE=123456789
export Y2MAXLOGNUM=42
yast2 online_update

グラフィカルな YaST の場合:

 kdesu -u root -c env ZYPP_FULLLOG=1 Y2MAXLOGSIZE=123456789 Y2MAXLOGNUM=42 /sbin/yast2

Zypper (Zypper, KDE/Gnome 用 OpenSUSE 更新アプレット) に関連するバグを報告したいと思います。どのログを添付すればよいでしょうか?

/var/log/zypper.log ファイルをバグに添付してください。詳細は Zypper#Troubleshooting をお読みください。

KDE や Gnome の 更新アプレット は、その作業 (更新の確認、更新のインストールなど) を実行するのに内部的に Zypper を使用しています。そのため、問題点がアプレットの GUI などに存在するのではなく、実際の更新処理にあるとお考えの場合は、 /var/log/zypper.log ファイルを添付してください。

ZENWorks (ZMD, rug, ソフトウエア更新) に関連するバグを報告したいと思います。どのログを添付すればよいでしょうか?

<span id="zmd" />/var/log/zmd-*.log ファイルをバグに添付してください。一般的には zmd-messages.log*zmd-backend.log* のファイルを必要とします。

これらのファイルは少し大きいサイズである場合もありますので、アップロード前に圧縮を行なってください。お互いに通信帯域を節約することができます。

SLES または SLED 10 Service Pack 2 およびそれ以降をご利用の場合は、下記のようにしてご自身で解決テストケースを作成することもできます。

/usr/lib/zmd/bin/zmd-solver-testcase /var/lib/zmd/zmd.db output-dir

これは rug が処理の確認を待っているときに生成する必要があります。この時点では処理の情報が zmd.db 内に存在しています。

output-dir 以下を圧縮してバグに添付してください。

作業の確認の途中でテストケースの生成を行なった場合、たとえば rug がパッケージのインストールについて確認プロンプトを出力しているような場合は、テストケースは選択した作業を含めた形で出力され、問題の解決に役立つことになります。

登録に関するバグを報告したいと思います。何か特別なことを行なう必要がありますか?

はい。バグに /root/.suse_register.log と /var/log/messages をそれぞれ添付してください。

YaST2 のバグを報告しましたが、 "attach hwinfo" (hwinfo を添付してくれ) と言われました。これはどういう意味ですか?何をすればいいですか?

hwinfo はハードウエアの情報収集を行なうためのコマンドです。ハードウエアが検出されているかどうかを明らかにするため、我々はコマンドの出力を必要としていることを表わしています。問題を報告していただいたハードウエアが検出されているかどうか、その検出は正しいかどうか、既に問題のあるハードウエアとして知られているものでないかどうかを確認するために使用します。

下記のコマンドを実行してください:

hwinfo >/tmp/hwinfo.txt

実行後、出力ファイル hwinfo.txt を Bugzilla にお送りください。

/usr/sbin/hwinfo バイナリそれ自身は添付しないでください (実際に添付された方がいらっしゃいました) - 我々は出力を必要としているだけで、バイナリは必要ありません。

YaST2 のスクリーンショットを添付したいのですが、どうすればよいですか?

Qt (グラフィカル) なインストールを行なっている場合は、単に PrintScreen キーを押してください。保存先のファイル名の入力を求められますので、その指示に従ってください。 NCurses (テキストモード) では動作しません。

(なお、これは YaST の機能であって KDE の機能ではありません)

バグが xterm などの端末側にも表示されるような場合は、 xterm 内で YaST2 を開いて ksnapshot (またはその他のハードコピーユーティリティ) でスクリーンショットを採取してください。

インストール中にシェルコマンドを実行するにはどうしたらよいでしょうか?

ネットワーク越しではなく物理的な端末をお使いの場合は、 Ctrl, Alt の両方のキーを押しながら F2 キーを押すとコンソールに切り替えることができます。ここにはインストール中に使用できる root ユーザでのシェルが存在しています。

VNC などグラフィック機能付きのネットワークコンソールをお使いの場合は、 Ctrl, Alt, Shift の全てのキーをいっぺんに押しながら X キーを押すと X 端末を起動することができます (詳しくは http://ja.opensuse.org/Invoking_terminal_from_YaST をお読みください)

y2logs には問題点が書かれていないように思います。より詳細なログを取る方法はありますか?

はい、できます: デバッグログを有効に設定してください (ログレベル y2debug):

  • インストール済みのシステムの場合は、 Y2DEBUG 環境変数を設定して同じシェル (!) から YaST2 を実行してください:
export Y2DEBUG=1
yast2
  • インストール中にデバッグログを行なうには、カーネル起動時のオプションに y2debug を設定してください (起動時のメニューの下にある入力項目に記入します)
  • カーネル起動時のオプションに y2debug を追加するのを忘れた場合は、 Qt ユーザインターフェイス (グラフィカルモード) から Shift キーを押しながら F7 キーを押すこともできます

どの場合でもそうですが、デバッグログはとても饒舌な出力を行ないますので、ログファイルが巨大になることがあります - 特に /var/log が RAM ディスク上にあるインストールの初期フェーズでは、サイズにご注意ください。


問題のあるコンピュータのホスト名や IP アドレスを伝えて、バグに必要な情報全てを取ってもらうことはできませんか?

いいえ。情報の採取はバグ報告者の責任で実施してください。

問題を調査するのに ssh によるアクセスを行なうのは都合の良いことではありますが、バグ報告時の y2logs の添付に代わる方法にはなりません。

一つには YaST2 やインストールに関連するバグの多くが、全く別の場所に原因があるためです。たとえばパッケージの問題 (YaST2 からインストールしたが、 YaST2 が引き起こした問題ではないもの)やカーネルの問題、ハードウエアの非互換による問題、ドキュメントを読んでいなかったことによる誤解などがあります。これにより、我々 YaST2 メンテナは y2logshwinfo などを採取する非常に手間のかかる作業を引き受けることになり、多くの他の問題についての初期段階のサポートとして活動することになってしまいます。

もう一つには、時間の経過と共にこの質問をしたマシンが変化してしまうことが考えられます - 我々はリアルタイムでログ採取を実施することはできませんので、再インストールしたり、問題とは関係のないログを採取してしまったりなどがありますし、そのバグが発生した時点で誰がそれに対応するかもわかりませんので、バグの報告者が全ての情報を採取してください。

インストール中に YaST のログを他のコンピュータに転送したいのですが、どうすればよいでしょうか?

これはより詳細なテストやデバッグを行なうのに便利です。インストール時のログは、インストールの前にリモートにある NFS サーバ (他のコンピュータ) に転送するよう設定することができます。設定方法については こちら をお読みください。

インストール中に YaST のログを USB メモリに転送したいのですが、どうすればよいでしょうか?

これは前の質問と似ています。 YaST ログは USB メモリや他のハードディスクなど、書き込み許可のあるデバイスに転送することができます。設定方法については こちら をお読みください。

YaST をデバッガ (gdb) から起動するにはどうすればよいでしょうか?バックトレースを出力するにはどうすればよいでしょうか?

場合によってはより細かい情報を採取するため、 YaST をデバッガから起動するよう求められることがあります。たとえば YaST がクラッシュする場合などがそれにあたります。

完全なデバッグ情報を提供するには、関連する *-debuginfo パッケージをインストールする必要があります。たとえば yast2-core-debuginfoyast2-pkg-bindings-debuginfo 、および libzypp-debuginfo パッケージなどがあります。クラッシュの事象が YaST の外側 (外部のライブラリなど) で発生するものの場合は、それらの debuginfo パッケージも必要になります。

debuginfo パッケージは extra リポジトリにあります。たとえば http://download.opensuse.org/distribution/SL-OSS-factory-debug/inst-source-debug/ には Factory リポジトリの debuginfo パッケージがあります。 debuginfo パッケージ無しでのデバッグも可能ですが、いくつかの情報が出力されなくなります (たとえば関数フレームやソースコード内での正確な位置情報など) ので、結果があまり役に立たない場合もあります。

gdb デバッガを利用して YaST インタプリタを起動するには、下記のコマンドを入力してください

gdb /usr/lib/YaST2/bin/y2base

その後、

run <モジュール名> qt

として Qt や gtk グラフィカルインターフェイス内で必要な YaST モジュールを起動してください (ncurses を利用したテキスト版の場合、 gdb と YaST の出力が混在する結果になってしまいます。次の段落で解決方法を示しています)。利用可能なモジュールの一覧を表示するには、 'yast -l ' コマンドをご利用ください。

もう一つの方法としては、既に実行済みの YaST プロセスに対して gdb をアタッチ (接続) させるやり方があります。この場合は下記のように実行してください

gdb /usr/lib/YaST2/bin/y2base <PID>

ここで、 PID は y2base プロセスのプロセス ID を記入します。プロセス ID は 'ps -aux' コマンドで知ることができます。 gdb のアタッチ後、 YaST の実行を再開するには 'cont' コマンドを入力してください。

この方法を利用すると ncurses ユーザインターフェイスのデバッグも (他の端末から) 行なうことができます。

このようにすることで gdb 以下で YaST を動かすことができますので、クラッシュなどの問題を再現させてみてください。 YaST モジュールがクラッシュしたら、デバッガ内で bt コマンドを入力するとプログラムスタック (バックトレース) を採取することができます。バグ報告に添付する場合は、このコマンドの出力を貼り付けてください。

一般的な問題

"インストールの際にエラーが発生しました" という赤いポップアップウインドウが表示されました。ログファイルを救出する方法はありますか?

はい、エラーポップアップが開いている間はコンソール 2 の root シェルが起動しています。しかし、エラーポップアップのボタンを押してしまうとシェルは終了してしまいます。インストールの失敗時のログファイルをコピーするには、このコンソール 2 のシェルをご活用ください。


手動インストールでも問題が発生するかどうかを尋ねられました。 "手動インストール" とは何ですか?

メディアの起動メニューから "インストール" を選び、 "manual=1" を起動オプションの欄に記入してください。それぞれのカーネルモジュールについて読み込みの確認プロンプトが表示されるようになります。これらの確認のうちのいずれかでインストールがハングアップするような場合は、ハードウエアの非互換性やカーネルドライバの問題があることになります。

インストールを中止して "linuxrc" から再開したところ、カーネルモジュールの読み込みで多数の問い合わせが表示されるようになってしまいました。なぜでしょうか?

それは "手動インストール" モードであるためです。これは完全に通常の振る舞いです。

インストールをテキストモードで開始することはできますが、マシンにはそれなりのグラフィックカードが接続されています!何が起こったのでしょうか?

グラフィカルなインストールを行なうには、フレームバッファモードの解像度で 800x600 またはそれ以上のものが必要です。グラフィックカードによっては、これに対応するための VESA の互換機能を持っていない場合がありますので、そのような場合は X サーバが 640x480 の解像度を使用することになりますが、これでは必要な全てのものを表示しきれません。このような解像度でテキストやダイアログの一部が欠けてしまうとインストールに支障を来たすため、これらの古いグラフィックモードのサポートを取りやめているために発生するものです。

YaST ログの読み方

YaST ログファイル (/var/log/YaST2/y2log) を自分自身で読みたい場合、全ての情報に目を通すには量が多く、必要な情報を見失ってしまうことがあります。

重要なメッセージ項目だけを読むには、 grep コマンドを利用して y2log 内の検索を行なってください:

grep '<[2345]>' /var/log/YaST2/y2log

このようにすることで、 "警告" またはそれ以上のログのみを表示することができます。

ログレベルは下記の通りです:

  • 0: デバッグ
  • 1: マイルストーン
  • 2: 警告
  • 3: エラー
  • 4: セキュリティ (ほとんど使われていません)
  • 5: 内部用 (全く使われていないはずのものです)

ログレベルについての詳細な情報は、

YaST2 documentation をお読みください。