LinuxSir.cn,穿越时空的Linuxsir!

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

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

[复制链接]
发表于 2008-6-15 23:27:26 | 显示全部楼层 |阅读模式
hal自动mount时有两个问题,向高手请教:
1、插入闪存能自动mount,但中文文件名会显示乱码。
2、打开kde的file manager,左侧边栏有显示windows分区,但是点击无法打开,而会出现错误提示:An error occurred while accessing 'Volume (ntfs)', the system said: org.freedesktop.Hal.Device.Volume.UnknownFailure: TODO: have to rethink extra options.

kernel里fuse选项是Y,我不需要写ntfs分区,只要能读就可以了,手动mount识别ntfs没有问题。不知道提示说的extra options怎么加?

补充一下:刚刚发现手动mount windows分区也无法显示中文文件名,不加-o选项的时候根本看不到中文文件名,加了codepage、iocharset选项(cp936、utf8)能看到显示为乱码的文件名。
root的locale是POSIX,
我自己的locale是:
LANG=en_US.UTF-8
LC_CTYPE=zh_CN.UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

本帖子中包含更多资源

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

x
 楼主| 发表于 2008-6-15 23:40:44 | 显示全部楼层
试了把locale设成en_US.UTF-8或者zh_CN.UTF-8都没有用。。。
请大侠给点建议,谢谢!
回复 支持 反对

使用道具 举报

发表于 2008-6-16 00:24:44 | 显示全部楼层
编译内核,选择,ntfs的默认字符集
File system --->DOS/FAT/NT filesystems--->下
Default codepage for FAT 为 936
Default iocharse fot FAT  为UTF8

ntfs区使用ntfs-3g, 即sys-fs/ntfs3g
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-16 09:20:14 | 显示全部楼层
sys-fs/ntfs3g是不是主要是写ntfs分区才要装?不管中文乱码的问题,我现在ntfs格式的分区是可以手动mount的,那么自动mount应该也不需要装什么东西吧?

谢谢lingyunxs,晚上回去重编内核看看中文显示的问题能不能解决

找到的相关"hal"、"ntfs"的文章都是讲ntfs-3g用法,我现在只需要偶尔要看ntfs分区里的东西,不用写,所以一直不想装。
另外修改fstab的方法我没有试,目前优先考虑让hal自己去mount,请大家继续指教,谢谢
回复 支持 反对

使用道具 举报

发表于 2008-6-16 10:25:24 | 显示全部楼层
sys-fs/ntfs3g比内核更稳定到支持写ntfs,
中文乱码fat区主要是内核中选择默认的codepage和iocharset
回复 支持 反对

使用道具 举报

发表于 2008-6-16 11:42:41 | 显示全部楼层
http://www.gentoo-wiki.com/HOWTO_NTFS_write_with_ntfs-3g
这里有使用 NTFS-3g 的驱动挂载 NTFS 分区的方法,其中也提到设置 HAL 自动挂载的办法。关于中文设置,鄙人就不太清楚了。鄙人记得百度上有,您可以看看。
回复 支持 反对

使用道具 举报

发表于 2008-6-16 12:17:18 | 显示全部楼层
我的机器上是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

不过还有一个大问题,还是没有解决:windows下用到文件格式不是UTF8的,所以用gedit打开文件时,中文显示乱码。这个问题一直没去好好想想;不过如果能找到一个文件格式转换程序,估计就可以了。以前常用windows,遗留了很多windows下到文件资料。包括代码中到中文注释都是乱码。

关于文件中文内容时乱码的情况,如果使用命令:
# LC_ALL=zh_CN.GBK gedit 文件名
就能正确打开以前的文件,且内容也不会是乱码。
但是现在Linux常用UTF-8格式。如果把环境变量LC_ALL设置成zh_CN.GBK后,会引起什么现象,真是还不清楚。
所以真得不知道选择哪种格式才是上上之道啊。
     ————不知道各位对此有什么看法。
回复 支持 反对

使用道具 举报

发表于 2008-6-16 13:15:09 | 显示全部楼层
我搜的解决办法,我也是这么解决的。
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
最后给这个文件可执行属性即可
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-16 13:20:06 | 显示全部楼层
Post by lingyunxs;1862563

不过还有一个大问题,还是没有解决:windows下用到文件格式不是UTF8的,所以用gedit打开文件时,中文显示乱码。这个问题一直没去好好想想;不过如果能找到一个文件格式转换程序,估计就可以了。以前常用windows,遗留了很多windows下到文件资料。包括代码中到中文注释都是乱码。


谢谢lingyunxs帮助,你说的gedit乱码问题,能不能通过
iconv -f gbk -t utf8 inputfile -o outputfile
来转换?
回复 支持 反对

使用道具 举报

发表于 2008-6-16 13:41:56 | 显示全部楼层
其实在用gedit打开文件的时候可以选择编码的。选择zh_CN.GBK就可以了。
使用命令: $ gedit --encoding=GBK file.name
就可以了。

如果已经运行了gedit,选file->open时,有Charater Coding:可选

根据iconv的help来看,应该没问题。可以转换encode格式
回复 支持 反对

使用道具 举报

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

本版积分规则

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