試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

Mandriva Linux 2010.1上のGTK+ 2のファイル選択ダイアログを開くのに初回だけ時間がかかることがある件についてとその対処

タイトルの通り、Mandriva Linux 2010.1のGUI環境上でGTK+ 2のファイル選択ダイアログを開こうとすると、初回だけ開くのに時間がかかるという現象が起き、その際には端末に

([プログラム名]:xxxxx): GVFS-RemoteVolumeMonitor-WARNING **: invoking IsSupported() failed for remote volume monitor with dbus name org.gtk.Private.GduVolumeMonitor: org.freedesktop.DBus.Error.NoReply: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.

のようにメッセージが出ていた。

floppyモジュールを読み込ませないようにする

色々と調べた結果、フロッピーデバイスカーネルモジュール「floppy」が(ドライブが存在しないにも関わらず)自動で読み込まれているのが原因のようで、実際、/etc/rc.localあたりに「modprobe -r floppy」の記述を入れると改善された。
より好ましい方法としては、このモジュール名を起動時に自動的に読み込んでほしくないモジュール名の一覧に入れればよいようだ。
書き方としては/etc/modprobe.d/以下のファイルに

blacklist [モジュール名]

の形で1行当たり1つのモジュール名を記述するようなので
[任意]ファイル名: /etc/modprobe.d/blacklist-floppy

blacklist floppy

という内容のファイルを作成してみた。しかし、手元の環境で試したところ、何故か起動するとこのモジュールが読み込まれてしまった。

dracutのinitrdに問題?

そこで初期RAMディスクイメージ(initrd/initramfs・以下initrd)を疑って中身を見たところ、dracut(関連記事)で作成したinitrdの中にモジュールfloppyが存在していたため、これが起動の初期段階で読み込まれていた可能性が高いと考えられた。
dracutで特定のモジュールをinitrdから除外するためには--omit [モジュール名]オプションを付ければよいようなので

$ sudo dracut --force --omit floppy -v /boot/initrd-dracut-$(uname -r).img $(uname -r)

のようにしてinitrdを更新してみたところ、再起動後にこの問題は起こらなくなった。

必要な作業について

dracutが書き出すinitrdを「floppy」モジュール抜きのものにしても/etc/modprobe.d/以下のファイルにおけるblacklist指定を外して試すとダメだったので、

  • /etc/modprobe.d/以下に「blacklist floppy」という内容のファイル(名前は任意)を作成
  • dracutを用いる場合には--omit floppyオプションを付けてinitrdを作成する

の両方が対処として必要なようだ。面倒なら、この代わりに/etc/rc.localの編集でも改善される。いずれも管理者権限が必要。
なお、BIOSでフロッピーを無効にする方法は試していない。

関連記事:

参考URL:

使用したバージョン:

  • Dracut 005-1mdv2010.1
  • gvfs 1.6.1-2mdv2010.1
  • GTK+(lib(64)gtk+2.0_0) 2.20.1-1mdv2010.1