LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1269|回复: 8

自动挂载移动设置的问题[已解决]

[复制链接]
发表于 2009-8-28 23:51:32 | 显示全部楼层 |阅读模式
我是按本讨论区的tips里的内容操作的,主要是看了下面内容:

--------------------------
图形界面下可移动设备的自动挂载(HAL 支持) 及中文名支持

$ sudo pacman -S hal dbus acpid (hal 依赖 dbus,acpid 可管理设备的电源。)
$ sudo vi /etc/rc.conf ,在 DAEMONS行 加入hal,如:
DAEMONS=(syslog-ng acpid hal network !netfs @crond @alsa gdm)
注意:如果daemons 列表中有dbus,要移除它,以免出错。hal 会自动加载dbus。
$ sudo gpasswd –a username optical
$ sudo gpasswd –a username storage
把你的用户加入到 optical,storage 这几个组里面。前文中已经加入过了,可跳过。
$ sudo vi /etc/fstab,注释掉下面两行:
/dev/cdrom /mnt/cdrom iso9660 ro,user,noauto,unhide 0 0
/dev/dvd /mnt/dvd udf ro,user,noauto,unhide 0 0
$ sudo vi /etc/hal/fdi/policy/preferences.fdi,可加入一些很有用的规则,
如自动挂载NTFS文件系统,自动挂载可移动设备,性能优化,U盘的中文名支持等:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <deviceinfo version="0.2">

  3.     <device>
  4.         <match key="volume.fstype" string="ntfs">
  5.             <append key="volume.mount.valid_options" type="strlist">dmask=000</append>
  6.             <append key="volume.mount.valid_options" type="strlist">fmask=111</append>
  7.         </match>
  8.     </device>

  9.     <device>
  10.     <!-- Use UTF-8 charset for vfat -->
  11.         <match key="volume.fstype" string="vfat">
  12.                 <merge key="volume.policy.mount_option.iocharset=utf8" type="bool">true</merge>
  13.         </match>
  14.    </device>

  15. <device>
  16.    <match key="storage.hotpluggable" bool="false">
  17.      <match key="storage.removable" bool="false">
  18.        <merge key="storage.automount_enabled_hint" type="bool">false</merge>
  19.      </match>
  20.    </match>
  21. </device>

  22. <device>
  23.    <match key="block.is_volume" bool="true">
  24.      <match key="volume.size" compare_lt="8000000000">
  25.        <match key="@block.storage_device:storage.hotpluggable" bool="true">
  26.          <merge key="volume.policy.mount_option.sync" type="bool">true</merge>
  27.          <merge key="volume.policy.mount_option.noatime" type="bool">true</merge>
  28.        </match>
  29.        <match key="@block.storage_device:storage.removable" bool="true">
  30.          <merge key="volume.policy.mount_option.sync" type="bool">true</merge>
  31.          <merge key="volume.policy.mount_option.noatime" type="bool">true</merge>
  32.        </match>
  33.      </match>
  34.      <match key="volume.size" compare_ge="8000000000">
  35.        <match key="@block.storage_device:storage.hotpluggable" bool="true">
  36.          <merge key="volume.policy.mount_option.sync" type="bool">false</merge>
  37.          <merge key="volume.policy.mount_option.noatime" type="bool">false</merge>
  38.        </match>
  39.        <match key="@block.storage_device:storage.removable" bool="true">
  40.          <merge key="volume.policy.mount_option.sync" type="bool">false</merge>
  41.          <merge key="volume.policy.mount_option.noatime" type="bool">false</merge>
  42.        </match>
  43.      </match>
  44.    </match>
  45. </device>

  46. </deviceinfo>
复制代码


以上可参看:http://wiki.archlinux.org/index.php/HAL
注意,必须事先安装好ntfs-3g安装包,才能成功挂载NTFS分区。最后:
$ sudo /etc/rc.d/hal restart
即可正常使用HAL支持了,同时移动设备上的中文名(其实其它语言也可以)也可以得到支持。
如果以上不能工作,还可以安装pmount:
$ sudo pacman -Sy pmount

---------------------------------


在插入移动硬盘后能自动识别,桌面上也出现了移动硬盘的图标,但在我试图进入盘符时提示:
无法挂载“Mysoft”: Cannot obtain lock on /media/.hal-mtab

我在终端中使用sudo ls -al /media/查看时也有错误提示:
ls: 无法访问 /media/xampp: 输入/输出错误
很多...

所有目录全提示这种错。

这是怎么回事啊!我感觉差不多可以了,


--------------------
搞定了,用了你的这文件,再加上在wiki上看的一段,

  1. 现在,HAL的策略可以由PolicyKit提供。该文件存放在/etc/PolicyKit/PolicyKit.conf。如果需要插入U盘自动加载,同时让没有fstab项的分区能被用户手动加载,可以把以下内容添加到PolicyKit.conf

  2. <config version="0.1">
  3.        <match action="org.freedesktop.hal.storage.*" >
  4.                <return result="yes" />
  5.        </match>
  6. </config>
复制代码


同时我还安装了ntfs-3g,现在插入移动硬盘后在桌面上会出现盘符,双击后能打开,同时也不会自动新建窗口打开盘符,呵呵,我很喜欢这样,谢过大家了。
发表于 2009-8-29 00:19:20 | 显示全部楼层
  1. lsof | grep /media/.hal-mtab
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-29 00:52:37 | 显示全部楼层
不知楼上的说的是什么意思,我这还没有lsof命令呢,安装好后,运行了,什么提示也没有,盘符还是一样进不了,楼上的只放出这一句真不知要如何使用啊!
回复 支持 反对

使用道具 举报

发表于 2009-8-29 01:07:02 | 显示全部楼层
问题可能是/media/.hal-mtab正被使用
lsof=list open file, 可以查看文件被那个进程使用, 比如你如果也装了autofs就可能引起这个问题
这个命令没有任何输出吗?
ls -a /media 有没有 .hal-mtab?
假设有, 试下 rm -f /media/.hal-mtab 再 /etc/rc.d/hal restart 看看结果
回复 支持 反对

使用道具 举报

发表于 2009-8-29 08:07:58 | 显示全部楼层
汗,我也不能自动挂载光驱、移动设备等周边,wiki上都看过,没用
只能pmount了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-29 11:01:18 | 显示全部楼层
Post by lolilolicon;2021454
问题可能是/media/.hal-mtab正被使用
lsof=list open file, 可以查看文件被那个进程使用, 比如你如果也装了autofs就可能引起这个问题
这个命令没有任何输出吗?
ls -a /media 有没有 .hal-mtab?
假设有, 试下 rm -f /media/.hal-mtab 再 /etc/rc.d/hal restart 看看结果

我试了下了,在没插入移动硬盘的前题下,没发现有.hal-mtab文件,插入之后同样没发现这个文件。


@Havanna
pmount 我还没去用,也不太想用这个东东。
回复 支持 反对

使用道具 举报

发表于 2009-8-29 11:33:40 | 显示全部楼层
你可能没有读这个:
http://wiki.archlinux.org/index.php/HAL
如果你只是按照你上面贴的步骤来做 是不够的 比如 /etc/PolicyKit/PolicyKit.conf 里要设置权限
现在的wiki讲的很清楚了

自动挂载不是hal管的, hal只是依照你的设定, 对某些设备提供或者不提供自动挂载的接口。自动挂载需要像pmount/gnome-mount等处理, 我个人用pcmanfm, 一点就挂上了.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-29 12:32:04 | 显示全部楼层
搞定了,用了你的这文件,再加上在wiki上看的一段,
  1. 现在,HAL的策略可以由PolicyKit提供。该文件存放在/etc/PolicyKit/PolicyKit.conf。如果需要插入U盘自动加载,同时让没有fstab项的分区能被用户手动加载,可以把以下内容添加到PolicyKit.conf
  2. <config version="0.1">
  3.        <match action="org.freedesktop.hal.storage.*" >
  4.                <return result="yes" />
  5.        </match>
  6. </config>
复制代码

同时我还安装了ntfs-3g,现在插入移动硬盘后在桌面上会出现盘符,双击后能打开,同时也不会自动新建窗口打开盘符,呵呵,我很喜欢这样,谢过大家了。
回复 支持 反对

使用道具 举报

发表于 2009-8-29 12:53:43 | 显示全部楼层
恭喜
还有,既然已解决,就把标题加上[已解决]吧~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表