+ -
当前位置:首页 → 问答吧 → 更新了hal(testing中),发现不能自动挂载U盘了[附临时解决方法]

更新了hal(testing中),发现不能自动挂载U盘了[附临时解决方法]

时间:2008-11-18

来源:互联网

hal更新到0.5.11-7后
不能自动挂载U盘了
并提示:
org.freedesktop.hal.storage.mount-removable no <-- (action, result).

临时解决办法:
以root权限打开 /etc/PolicyKit/PolicyKit.conf
并将以下内容加到<config version="0.1">和</config>
代码:
<match action="org.freedesktop.hal.storage.mount-removable">
 <return result="yes"/>
</match>

<match action="org.freedesktop.hal.storage.mount-fixed">
 <return result="yes"/>
</match>

<match action="org.freedesktop.hal.storage.eject">
 <return result="yes"/>
</match>
然后重启hal服务
sudo /etc/rc.d/hal restart

作者: 沙漠之子   发布时间: 2008-11-18

是这个原因呵,我一直以为是我编译的exo有问题

可以挂载了,*出的时候,第一次
org.freedesktop.hal.storage.eject no <-- (privilege, result).
第二次
Device to unmount is not in /media/.hal-mtab so it is not mounted by HAL.

作者: jarryson   发布时间: 2008-11-18

用gdm就可以自动挂载的,xinit就不可以。所以到现在还是testing。

作者: zhuqin_83   发布时间: 2008-11-18

引用:
作者: jarryson
是这个原因呵,我一直以为是我编译的exo有问题

可以挂载了,*出的时候,第一次
org.freedesktop.hal.storage.eject no <-- (privilege, result).
第二次
Device to unmount is not in /media/.hal-mtab so it is not mounted by HAL.
再加上
<match action="org.freedesktop.hal.storage.eject">
<return result="yes"/>
</match>
再重启一下hal 即可

作者: 沙漠之子   发布时间: 2008-11-18

找了好久了,终于解决了,不过unmount好像不行

作者: sunrainlzw   发布时间: 2009-01-01

多谢分享,最近也遇到了这个问题。

作者: seenxu   发布时间: 2009-01-01

今天更新后,果然不行。想知道终极办法什么时候出现。

作者: 难免有错   发布时间: 2009-02-08

谢楼主提醒,已经把hal降回去了,等更新了~~~

作者: qiang_liu8183   发布时间: 2009-02-08

打开 /etc/PolicyKit/PolicyKit.conf
并将以下内容加到<config version="0.1">和</config>

代码:
<match user="$USER"> 
 <match action="org.freedesktop.hal.storage.*">
 <return result="yes"/>
 </match>
</match>
$USER 改成你自己的用户名

作者: zhong   发布时间: 2009-02-09

我用sudo开文件夹管理器进去一次,然后就可以了。

作者: xuantiejian   发布时间: 2009-02-09

引用:
作者: qiang_liu8183
谢楼主提醒,已经把hal降回去了,等更新了~~~
教教我怎么降?

作者: oopszj   发布时间: 2009-02-10

应该用abs自己编译一下吧
sudo abs同步一下

然后把/var/abs/extra/hal拷贝出来,修改一下PKGBUILD,makepkg生成一个新的软件包,就能降级了

作者: leeight   发布时间: 2009-02-10

好古老的问题哦,怎么新版本又出来了?

作者: athurg   发布时间: 2009-02-10

引用:
作者: oopszj
教教我怎么降?
也可以sudo pacman -R hal&&sudo pacman -S /var/cache/pacman/pkg/hal.... 只要你以前的PKG在就可以装了。我就这样搞好的。

作者: bjsm   发布时间: 2009-02-11

引用:
作者: zhong
打开 /etc/PolicyKit/PolicyKit.conf
并将以下内容加到<config version="0.1">和</config>

代码:
<match user="$USER"> 
 <match action="org.freedesktop.hal.storage.*">
 <return result="yes"/>
 </match>
</match>
$USER 改成你自己的用户名
这方法跟楼主的方法哪个好,还有user能不能改group?

作者: 难免有错   发布时间: 2009-02-17

上述方法好象没有写入权限。

作者: 难免有错   发布时间: 2009-02-18

楼主nb,我还以为是我的pcmanfm 的 mount.rules的问题

作者: menciuslove   发布时间: 2009-02-19

再小顶一下。

作者: 难免有错   发布时间: 2009-02-20

引用:
作者: 难免有错
再小顶一下。
我的方法是所有用户都有权限挂载和卸载的

写了 $USER 就只能 $USER 有权限了

作者: 沙漠之子   发布时间: 2009-02-20

引用:
作者: 难免有错
这方法跟楼主的方法哪个好,还有user能不能改group?
不行 但有另一种给group设置权限的方法
详见:http://hal.freedesktop.org/docs/Poli...it.conf.5.html

作者: 沙漠之子   发布时间: 2009-02-20

引用:
作者: 沙漠之子
我的方法是所有用户都有权限挂载和卸载的

写了 $USER 就只能 $USER 有权限了
只能挂和卸,没有写权限哦。

作者: 难免有错   发布时间: 2009-02-20

貌似写权限跟 mount的参数及和你用的挂载工具有关的 和这个没关系的

作者: 沙漠之子   发布时间: 2009-02-20

引用:
作者: 沙漠之子
貌似写权限跟 mount的参数及和你用的挂载工具有关的 和这个没关系的
上个hal版本又可以啊。

作者: 难免有错   发布时间: 2009-02-20

那问一下你用什么挂载工具的呀??
什么分区格式? ntfs麽?

作者: 沙漠之子   发布时间: 2009-02-20

ext4,就在KDE4里自动挂。

作者: 难免有错   发布时间: 2009-02-20

这里已经给出方法了
http://www.linuxsir.org/bbs/thread344125.html

还可参考官方wiki 中有关hal的内容
http://wiki.archlinux.org/index.php/...B8%AD%E6%96%87)

作者: 沙漠之子   发布时间: 2009-02-20

他讲的是ntfs,我的是所有格式都不行哦。

作者: 难免有错   发布时间: 2009-02-20

不知我这个/usr/share/hal/fdi/policy/10osvendor/20-storage-methods.fdi
能不能解决你的问题
由于没有过kde so..........
上传的附件
20-storage-methods.zip (2.1 KB, 15 次查看)

作者: 沙漠之子   发布时间: 2009-02-20

谢了,我试试看。

作者: 难免有错   发布时间: 2009-02-20

LZ真NB,谢谢了。很多人都遇到了这个问题,怎么版主不将此帖置顶或加精呢?

作者: ztttly   发布时间: 2009-02-24

貌似还有种方法,利用ck-launch-session,比如开启xfce4的时候,就ck-launch-session startxfce4

我刚刚重装的系统,没有做任何改动,仅仅是添加一个默认ntfs-3g挂载ntfs的hal规则(见wiki),给exo打中文补丁,没有添加这些东西,但是挂载,关机重启正常,也没有用gdm

作者: jarryson   发布时间: 2009-02-24

引用:
作者: jarryson
貌似还有种方法,利用ck-launch-session,比如开启xfce4的时候,就ck-launch-session startxfce4

我刚刚重装的系统,没有做任何改动,仅仅是添加一个默认ntfs-3g挂载ntfs的hal规则(见wiki),给exo打中文补丁,没有添加这些东西,但是挂载,关机重启正常,也没有用gdm
谢谢 这种方法更方便了

作者: 沙漠之子   发布时间: 2009-03-04

好像没ck-launch-session这个命令?

作者: xblx   发布时间: 2009-03-04

引用:
作者: xblx
好像没ck-launch-session这个命令?
$ -> pacman -Qo /usr/bin/ck-launch-session
/usr/bin/ck-launch-session 属于 consolekit 0.3.0-3

作者: 沙漠之子   发布时间: 2009-03-04

我都没有开hal

作者: bingyuan   发布时间: 2009-03-04

偶一向是手动挂载

作者: bingyuan   发布时间: 2009-03-18

强!谢谢~~~~

作者: sd_ly_wj   发布时间: 2009-05-16

标记下,以后查资料用,呵呵

作者: Havanna   发布时间: 2009-07-18

升级完,又出问题了,这个要更新一下了吧……

作者: oopszj   发布时间: 2009-11-13

引用:
作者: oopszj
升级完,又出问题了,这个要更新一下了吧……
rt,不知ls啥问题。我只得降到0.5.13-2了。

作者: fanqo   发布时间: 2009-11-13

我的lxde也有这个问题,但是我更关心的是我pcmanfm也不能挂载了,郁闷!

作者: oopszj   发布时间: 2009-11-13

我按这个方法在台机上试了下,又不行了,有什么变动吗?本本上还是可以的,但是不知道关键在哪里。

作者: 难免有错   发布时间: 2009-12-20

我算是大概齐明白了。目前只要是自动挂载或者挂载有问题的,十之八九是consolekit的问题。现在挂载是由devicekit-disks来控制了,而几乎所有涉及到权限(也就是policykit干的事情)的都对inactive session设置为no了。

session是由consolekit管理的,而一般startx开启的X Session都没有在consolekit里注册(gdm可以是因为/etc/xdg/autostart里自动运行了console session daemon),也就是说它们在policykit看来都是inactive的,所以挂载啦,networkmanager啦都被deny了。而在xinitrc里用ck-launch-session开启X session相当于是在consolekit里注册自己,挂载、networkmanage的policyr对active session一般都是allow。这就是为什么上面的方法有效了。

出问题的同志不妨试一试。

Edit: 最新的hal更新导致不能挂载可能是这个bug导致的:http://bugs.archlinux.org/task/17557...tedit&sort=asc
console-kit-daemon不能随dbus-daemon跟hald自动启动了。

作者: Alerander   发布时间: 2009-12-20

Update to consolekit 0.4.1-2

作者: 沙漠之子   发布时间: 2009-12-21

引用:
作者: 沙漠之子
Update to consolekit 0.4.1-2
updated.
still the same bug with pcmanfm...

作者: xxxsoul   发布时间: 2009-12-24