Xfce4のthunarでUSBメモリのマウントに失敗する場合の対処方法


今日は、Xfce4で利用できるファイルマネージャ thunar についてです。
(HALに関してでもあります)


復旧作業が終わったばかりのArchLinuxでいろいろと作業していたのですが、少し問題が。
thunarが起動している状態でUSBメモリなどを挿入すると、自動的にマウントしてくれる。。。
はずだったんですが、何やらエラーメッセージが表示されて、うまくマウントできませんでした。


あれ。。まだ設定が足りなかったかな。。と思いながら調べてみると、ArchLinuxのWikiで参考に
なるページがありました。

参考ページ:http://wiki.archlinux.org/index.php/HAL

上記参考ページの「Another USB automounting fix」という部分がそうです。


実際に上記のWikiの内容にあるような修正を行ったわけではなく、「こっちでもいいんじゃないかな」と
思ってやってみたらうまくできました。


私の環境では、/etc/dbus-1/system.d/hal.conf は以下のようになっています。

<!DOCTYPE busconfig PUBLIC
 "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>

  <!-- This configuration file specifies the required security policies
       for the HAL to work. -->

  <!-- Only root or user hal can own the HAL service -->
  <policy user="hal">
    <allow own="org.freedesktop.Hal"/>
  </policy>
  <policy user="root">
    <allow own="org.freedesktop.Hal"/>
  </policy>

  <!-- Allow anyone to invoke methods on the Manager and Device interfaces -->
  <policy context="default">
    <allow send_interface="org.freedesktop.Hal.Manager"/>
    <allow send_interface="org.freedesktop.Hal.Device"/>
    <allow receive_interface="org.freedesktop.Hal.Manager"
           receive_sender="org.freedesktop.Hal"/>
    <allow receive_interface="org.freedesktop.Hal.Device"
           receive_sender="org.freedesktop.Hal"/>

    <allow send_interface="org.freedesktop.Hal.Device.SystemPowerManagement"/>
    <allow send_interface="org.freedesktop.Hal.Device.LaptopPanel"/>
    <allow send_interface="org.freedesktop.Hal.Device.Volume"/>
    <allow send_interface="org.freedesktop.Hal.Device.Volume.Crypto"/>
    <allow receive_interface="org.freedesktop.Hal.Device.SystemPowerManagement"
	   receive_sender="org.freedesktop.Hal"/>
    <allow receive_interface="org.freedesktop.Hal.Device.LaptopPanel"
	   receive_sender="org.freedesktop.Hal"/>
    <allow receive_interface="org.freedesktop.Hal.Device.Volume"
	   receive_sender="org.freedesktop.Hal"/>
    <allow receive_interface="org.freedesktop.Hal.Device.Volume.Crypto"
	   receive_sender="org.freedesktop.Hal"/>
  </policy>

  <!-- Default policy for the exported interfaces -->
  <policy context="default">
    <deny send_interface="org.freedesktop.Hal.Device.SystemPowerManagement"/>
    <deny send_interface="org.freedesktop.Hal.Device.VideoAdapterPM"/>
    <deny send_interface="org.freedesktop.Hal.Device.LaptopPanel"/>
    <deny send_interface="org.freedesktop.Hal.Device.Volume"/>
    <deny send_interface="org.freedesktop.Hal.Device.Volume.Crypto"/>
  </policy>

  <policy group="power">
    <allow send_interface="org.freedesktop.Hal.Device.SystemPowerManagement"/>
    <allow send_interface="org.freedesktop.Hal.Device.LaptopPanel"/>
  </policy>

  <policy group="storage">
    <allow send_interface="org.freedesktop.Hal.Device.Volume"/>
    <allow send_interface="org.freedesktop.Hal.Device.Volume.Crypto"/>
  </policy>

  <!-- You can change this to a more suitable user, or make per-group -->
  <policy user="0">
    <allow send_interface="org.freedesktop.Hal.Device.SystemPowerManagement"/>
    <allow send_interface="org.freedesktop.Hal.Device.VideoAdapterPM"/>
    <allow send_interface="org.freedesktop.Hal.Device.LaptopPanel"/>
    <allow send_interface="org.freedesktop.Hal.Device.Volume"/>
    <allow send_interface="org.freedesktop.Hal.Device.Volume.Crypto"/>
  </policy>

</busconfig>

ArchLinuxのWikiでは、user="0"の部分を自分のユーザ名に置き換える方法が紹介されていましたが、
よくよく見てみると、すぐ上のgroup="storage"というポリシーの設定では、Hal.Device.Volumeが
許可されているようでした。

ということで、私の場合には、

sudo gpasswd -a username storage

としました。(usernameの部分は自分のユーザ名に置き換えて)
その後、thunarを起動した状態でUSBメモリを挿入すると、無事マウントすることができました。

それにしても、ArchLinuxのWikiページって、何でも載ってますね(笑

いやはや、今日も勉強になりました。