[转] 解决Xfce下不能自动挂载U盘的问题

本文介绍了在Archlinux系统中,使用Xfce4桌面环境遇到的无法自动挂载U盘问题的解决方法。通过修改/etc/dbus-1/system.d/hal.conf文件,允许用户挂载设备,并将用户添加到hal组,然后重启dbus服务。此外,针对中文乱码问题,通过修改~/.config/xfce4/mount.rc配置文件,指定挂载时的编码参数,确保正确显示中文。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文地址:http://blog.simophin.net/?p=564

 

本人用的是Archlinux + Xfce4,长久以来一直不能使用双击U盘图标自动挂载U盘的功能。

首先一个问题是拒绝挂载,显示为:
Rejected send message, 1 matched rules; type=”method_call”, sender=”:1.5″ (uid=1000 pid=3135 comm=”exo-mount) interface=”org.freedesktop.Hal.Device.Volume” member=”Mount” error name=”(unset)” requested_reply=0 destination=”org.freedesktop.Hal” (uid=82 pid=2848 comm=”/usr/sbin/hald)).

 

大概的意思是有一条规则拒绝了这个盘的挂载。我们知道系统中只有root用户才能真正地去挂载一个设备。作为桌面使用的操作系统,一般是不用 root作为常用帐户的,为了让普通用户能挂载一些可移动设备,就要使用DBUS和HAL了。DBUS是一个所谓系统消息总线的 东西,它用于程序之间交换信息。HAL是所谓硬件抽象层,能提供硬件的信息。于是某个程序要挂载设备时,通过DBUS 首先询问是否有权限这么做,权限通过后从HAL获取硬件的信息(这里就可以提供设备是否能挂载等信息),然后再挂载。

以上的提示正是因为DBUS拒绝了此请求。可以通过编辑/etc/dbus-1/system.d/hal.conf来解决。

在空间里,新增加

<policy group="hal">
<allow send_destination="org.freedesktop.Hal" send_interface="org.freedesktop.Hal.Device.Storage"/>
<allow send_destination="org.freedesktop.Hal" send_interface="org.freedesktop.Hal.Device.Storage.Removable"/>
</policy>

它的意思就是说,组为hal的政策为允许访问Hal中有关Storage或者Storage.Removable的信息
然后将用户加入hal组,重启dbus即可
#usermod -a -G hal username
#/etc/rc.d/dbus restart

再次,就是中文乱码的问题
挂载文件系统时,我们需要指定文件系统的编码。不指定的话中文可能会乱码(这取决于内核挂载默认的编码以及用户空间的Locale)。指定文件系统的编码 可以有两个地方,一个是在HAL中指定,一个是在挂载程序中指定。网上流传的很多老方法都是通过增加HAL中的一个选项,类似于

<merge key="volume.policy.mount_option.iocharset=utf8" type="bool">true</merge>

然而,从HAL本身的功能来说,增加这样的选项并不明智,因为HAL只是“提供设备的信息”,至于“怎么使用”,应该交给调用者自己决定。再 者,Xfce里负责自动挂载的程序exo-mount并不识别这个选项,有人说是个BUG,还搞了个Patch给它,本人不敢苟同。为了解决这个问题,我 们应该试图设置exo-mount,让它挂载时使用系统的编码。于是有添加或者编辑 ~/.config/xfce4/mount.rc

[vfat]
uid=<auto>
iocharset=<auto>
umask=0000
 
[ntfs-3g]
uid=<auto>
nls=<auto>
umask=0000

这里的意思显而易见,对于某种文件系统格式,指定了其挂载的参数值。这里用的umask=0000是不安全的标志,它让所有的用户都能读入写入设 备。然而对于桌面用户而言,这个影响不大,反而方便了使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值