LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: DerekTan

如何让HAL自动mount ntfs分区?(已解决)

[复制链接]
发表于 2008-6-16 15:23:26 | 显示全部楼层
gedit乱码可修改参考如下:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2008-6-16 19:40:54 | 显示全部楼层
这是哪个程序啊?
回复 支持 反对

使用道具 举报

发表于 2008-6-16 19:43:28 | 显示全部楼层
/etc/udev/rules.d/
10-udisk-udev.rules
具体使用ntfs对照改一下就行,这个是从archlinux版那里以前看到的给保存下来了,我以前一直用,觉得不错,现在用gnome的自动挂载工具
  1. KERNEL=="sd[b-z]", NAME="%k", SYMLINK+="usbhd-%k", GROUP="users", OPTIONS="last_rule"
  2. ACTION=="add", KERNEL=="sd[b-z][0-9]", SYMLINK+="usbhd-%k", GROUP="users", NAME="%k"
  3. ACTION=="add", KERNEL=="sd[b-z][0-9]", RUN+="/bin/mkdir -p /media/usbhd-%k"
  4. ACTION=="add", KERNEL=="sd[b-z][0-9]", PROGRAM=="/lib/udev/vol_id -t %N", RESULT=="vfat", RUN+="/bin/mount -t vfat -o rw,utf8=true,codepage=936,noauto,flush,quiet,nodev,nosuid,noexec,noatime,dmask=000,fmask=111 /dev/%k /media/usbhd-%k", OPTIONS="last_rule"
  5. ACTION=="add", KERNEL=="sd[b-z][0-9]", RUN+="/bin/mount -t auto -o rw,locale=zh_CN.UTF-8,noauto,sync,dirsync,noexec,nodev,noatime /dev/%k /media/usbhd-%k", OPTIONS="last_rule"
  6. ACTION=="remove", KERNEL=="sd[b-z][0-9]", RUN+="/bin/umount -l /media/usbhd-%k"
  7. ACTION=="remove", KERNEL=="sd[b-z][0-9]", RUN+="/bin/rm -rf /media/usbhd-%k", OPTIONS="last_rule"
复制代码
回复 支持 反对

使用道具 举报

发表于 2008-6-16 20:42:11 | 显示全部楼层
Post by lingyunxs;1862709
这是哪个程序啊?
gconf-editor
回复 支持 反对

使用道具 举报

发表于 2008-6-16 21:00:37 | 显示全部楼层
如果使用的是 Gnome,鄙人建议用 gconf-editor 在最后的 storage 中设置 locale 的相关信息,感觉很统一很清爽。使用 hal 规则也很好用。如果使用的是 KDE,这个话题可就经久不衰了,您可以看一下 http://www.linuxsir.cn/bbs/printthread.php?t=323408 。其中有上面说到的方法。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-16 23:25:54 | 显示全部楼层
谢谢楼上各位朋友!
我在kernel里面把codepage设为936、 iocharset设为utf8以后,hal自动mount格式为fat32的闪存没有中文显示的问题啦!
手动mount ntfs分区,
mount -o utf8 /dev/sda6 /mnt/f
在终端下中文显示为?可能是我的终端设置问题,因为用kde的file manager看是没有问题的。
关于ntfs-3g,我还是想找个不装它也能自动mount的法子。。。真顽固啊。。。
回复 支持 反对

使用道具 举报

发表于 2008-6-17 07:17:18 | 显示全部楼层
hal自动用ntfs-3g挂载ntfs分区是可以实现的。arch和gentoo-wikid 文档中都有相关介绍。
http://wiki.archlinux.org/index. ... %E4%B8%AD%E6%96%87)
http://gentoo-wiki.com/HOWTO_NTFS_write_with_ntfs-3g
Post by lingyunxs
我的机器上是3步安装就可以了。
1.安装sys-apps/hal, 实现了自动挂载硬盘上到ntfs分区,但不可写。
2.安装ntfs3g, 自动挂载上ntfs且可写。但usb插入到fat自动挂载乱码。
3.配置内核的设置默认fat的设置 codepage=936, iocharset=UTF8, 重新编译内核。usb插入fat就正常了。
File system --->DOS/FAT/NT filesystems--->下
Default codepage for FAT 为 936
Default iocharse fot FAT 为UTF8
默认安装ntfs3g只能支持root用户可写吧,普通用户没有权限。

添加普通用户权限需要修改(添加)一个文件 /etc/hal/fdi/policy/preferences.fdi
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <deviceinfo version="0.2">
  3. # Automount NTFS filesystems with write support (ntfs-3g)
  4.    <device>
  5.      <match key="volume.fstype" string="ntfs">
  6.        <match key="@block.storage_device:storage.hotpluggable" bool="true">
  7.          <merge key="volume.fstype" type="string">ntfs-3g</merge>
  8.          <merge key="volume.policy.mount_filesystem" type="string">ntfs-3g</merge>
  9.          <append key="volume.mount.valid_options" type="strlist">locale=</append>
  10.        </match>
  11.      </match>
  12.    </device>
  13. # Allow dmask and fmask for ntfs-3g
  14.     <device>
  15.         <match key="volume.fstype" string="ntfs">
  16.             <append key="volume.mount.valid_options" type="strlist">dmask=</append>
  17.             <append key="volume.mount.valid_options" type="strlist">fmask=</append>
  18.         </match>
  19.     </device>
  20. # Set iPod mountpoint
  21.   <device>
  22.     <match key="@block.storage_device:storage.model" string="iPod">
  23.       <merge key="volume.policy.desired_mount_point" type="string">ipod</merge>
  24.       <merge key="volume.policy.mount_option.iocharset=iso8859-15" type="bool">true</merge>
  25.       <merge key="volume.policy.mount_option.sync" type="bool">true</merge>
  26.     </match>
  27.   </device>
  28. # Auto-mount only removable media
  29. <device>
  30.    <match key="storage.hotpluggable" bool="false">
  31.      <match key="storage.removable" bool="false">
  32.        <merge key="storage.automount_enabled_hint" type="bool">false</merge>
  33.      </match>
  34.    </match>
  35. </device>
  36. # Put sync and noatime on for devices smaller than 8GB and off for devices larger than that
  37. <device>
  38.    <match key="block.is_volume" bool="true">
  39.      <match key="volume.size" compare_lt="8000000000">
  40.        <match key="@block.storage_device:storage.hotpluggable" bool="true">
  41.          <merge key="volume.policy.mount_option.sync" type="bool">true</merge>
  42.          <merge key="volume.policy.mount_option.noatime" type="bool">true</merge>
  43.        </match>
  44.        <match key="@block.storage_device:storage.removable" bool="true">
  45.          <merge key="volume.policy.mount_option.sync" type="bool">true</merge>
  46.          <merge key="volume.policy.mount_option.noatime" type="bool">true</merge>
  47.        </match>
  48.      </match>
  49.      <match key="volume.size" compare_ge="8000000000">
  50.        <match key="@block.storage_device:storage.hotpluggable" bool="true">
  51.          <merge key="volume.policy.mount_option.sync" type="bool">false</merge>
  52.          <merge key="volume.policy.mount_option.noatime" type="bool">false</merge>
  53.        </match>
  54.        <match key="@block.storage_device:storage.removable" bool="true">
  55.          <merge key="volume.policy.mount_option.sync" type="bool">false</merge>
  56.          <merge key="volume.policy.mount_option.noatime" type="bool">false</merge>
  57.        </match>
  58.      </match>
  59.    </match>
  60. </device>
  61. </deviceinfo>
复制代码
Post by chendinner
我搜的解决办法,我也是这么解决的。
1、装上ntfs-3g;
2、在/sbin目录新建一个mount.ntfs文件
内容如下:
#!/bin/bash
mount "$1" "$2" -t ntfs-3g -o locale=zh_CN.UTF-8

尾部的locale根据自己的实际情况选择,我的是zh_CN.GB2312
最后给这个文件可执行属性即可
正解!

中文问题需要修改 /sbin/mount.ntfs-3g 文件,没有这个文件则添加之:
  1. #!/bin/bash
  2. /bin/ntfs-3g $1 $2 -o locale=zh_CN.UTF-8
复制代码
回复 支持 反对

使用道具 举报

发表于 2008-6-17 12:11:03 | 显示全部楼层
  1. 默认安装ntfs3g只能支持root用户可写吧,普通用户没有权限。
复制代码
我这里普通用户都能写,没有改其他配置,/sbin/mount.ntfs-3g文件已经存在,没有修改(主要是用vi打开它是乱码,看不清楚,没理它。)
没装hal和ntfs3g前,我用mount挂载,加入参数 uid=普通用户的id就可以写了。
  1. mount -t (vfat/ntfs) -o codepage=936,iocharset=utf8,uid=?,gid=? /dev/?? /mnt/???
复制代码
回复 支持 反对

使用道具 举报

发表于 2008-6-17 12:36:27 | 显示全部楼层
ntfs3g普通用户能写。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-18 16:01:45 | 显示全部楼层
好吧,装个ntfs-3g吧,这个帖子可以结了,谢谢大家!
回复 支持 反对

使用道具 举报

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

本版积分规则

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