LinuxSir.cn,穿越时空的Linuxsir!

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

LFS下让windows分区显示中文文件名的办法

[复制链接]
发表于 2003-1-12 18:21:31 | 显示全部楼层 |阅读模式
由于在LFS中没有中文化的内容。所以LFS安装完成后,很多中文化的工作都要自己做。经过一段时间的摸索后,终于找到了让LFS支持windows分区中文文件名显示的方法,为了便于大家理解这个问题,下面先从一些基础概念讲起。
大家知道,windows采用的分区格式为FAT/VFAT/FAT32和NTFS。这些文件系统都使用了unicode来处理中文文件名,这就需要系统在处理这些中文文件名时要将其动态地转换为相应的语言编码。为了处理这些文件系统上的中文文件名和其它语种的文件名,在linux中引入了对NLS的支持。这样在加载相应的文件系统时就可以用下面的参数来设置codepage。
如简体中文的codepage为936,加载文件名是简体中文的windows分区时就可以这样:
mount -t vfat /dev/hda2 /mnt -o umask=0000,codepage=936,iocharset=cp936
这样,就可以在linux下处理中文文件名了。
这种方法对于已经支持codepage936的系统是可行的,但对于LFS来说,如果这样做就能成功,那你就可以省去下面的麻烦了。如果在mount时失败,那就是系统不支持codepage造成的。要做到这一点,在内核编译时就要在内核中加上nls_cp936的支持(在文件系统中选中"native language support"的cp936部分)。我选择了把这一项做成模块。编译核心后,用命令:
modprobe -l
查看,有nls_cp936.o模块,再用命令:
modprobe nls_cp936
将模块插入内核。用lsmod命令确认nls_cp936已经装入内核后,就可以执行
mount -t vfat /dev/hdax /mnt/xxx -o umask=0000,codepage=936,iocharset=cp936
此时,命令执行成功,显示:
MSDOS FS: Using codepage 936
MSDOS FS: IO Charset cp936
再启动zhcon,就可以处理windows分区的中文文件名了。如果不想重新编译内核,可以单独编译一个模块。办法在置顶的贴了里面有。这种方法我没有试过,希望成功的弟兄能主动提供经验。
发表于 2003-1-12 18:30:29 | 显示全部楼层
嘿嘿,补充一个参数
umask=0000
这样用普通用户也能在fat32分区下创建和删除文件。
这些中文化的内容,大家还要多总结才行啊,呵呵,谢谢kj兄!
 楼主| 发表于 2003-1-12 18:32:48 | 显示全部楼层
呵呵,刚发贴,tram兄就回贴了,动作真快呀!
你复习得怎么样了,有把握吗?
发表于 2003-1-12 18:40:28 | 显示全部楼层
有把握,我的把握就是:考不上就工作,嘿嘿。
 楼主| 发表于 2003-1-12 18:43:16 | 显示全部楼层
很好,反正又不是只有考研一条路。我觉得你可能是专业程序员,应该考的是计算机专业吧。
发表于 2003-1-13 11:06:13 | 显示全部楼层
如果想控制读写操作该怎么做,比如我想对某个fat32分区只有读权限,怎么加参数?
我看fstab 里的加载windows分区都有这个umask=0,它是不是就如tram兄所说的给普通权限?另外,最后的两个参数(0 0)是什么意思?
 楼主| 发表于 2003-1-13 12:39:48 | 显示全部楼层
这就涉及umask的作用。它是一个系统变量,其作用就是为文件的访问权限设定一个掩码,再把这个掩码用在文件创建过程中。当我们创建一个文件时,文件的实际权限将是我们请求的权限和umask相异或的值。也就是说,如果请求的权限与umask相比较后,在umask中已经置位的权限将会被排除掉。如系统的umask值为0222,当我们请求创建一个权限为0777(即rwxrwxrwx)的文件时,系统会与umask值相比较,去掉umask中已经置位的部分,变成0555,实际生成的文件权限就变成了r-xr-xr-x。而不是所希望的rwxrwxrwx。一般情况下,linux的系统umask值都不会设置为0000。所以在访问windows分区时加上umask=0000,这样能使普通用户对windows分区有完整的权限。如果想设置为只读,可以把mount中的umask参数设置为0222。
在fstab中的umask参数也是一样的道理。最后的两个0有特殊的含义。第一个是表示使用dump命令备份数据的频率,第二个是表示用fsck命令检查文件系统的次序。
发表于 2003-1-13 13:25:58 | 显示全部楼层
真是多谢kj兄的讲解了,受益非浅啊。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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