linux用smb挂载windows共享文件,…

用mount.smbfs 挂载windows2003里的共享文件夹.使用命令如下: 
mount.smbfs  //wh-moniter/d  /u/web/newweb  -o  username=user,password=password,codepage=cp936,iocharset=utf8 
但文件名显示总是乱码:????(无效的unicode) 

我的操作系统是RHEL AS 4.0 update4 
用local查: 
LANG=zh_CN.UTF-8 
LC_CTYPE="zh_CN.UTF-8" 
LC_NUMERIC="zh_CN.UTF-8" 
LC_TIME="zh_CN.UTF-8" 
LC_COLLATE="zh_CN.UTF-8" 
LC_M 
LC_MESSAGES="zh_CN.UTF-8" 
LC_PAPER="zh_CN.UTF-8" 
LC_NAME="zh_CN.UTF-8" 
LC_ADDRESS="zh_CN.UTF-8" 
LC_TELEPHONE="zh_CN.UTF-8" 
LC_MEASUREMENT="zh_CN.UTF-8" 
LC_IDENTIFICATION="zh_CN.UTF-8" 
LC_ALL= 

我用smbclient连接一切正常. 

网上查遍了方法,改codepage和iocharset参数(改成什么cp850,gb2312,等等),和修改smb.conf文件加入 
    dos charset CP936 
    unix charset UTF8 
    display charset UTF8 
等等.故障依旧. 

经多方查找原因,并反复试验,总结经验如下: 
1。mount.smbfs命令中的codepage和iocharset参数毫无意义,除非服务端不是中文环境需要手工指定。我们这时不要再被其它网贴误导(我就是因为这个原因荒废了一天的工夫!) 
2。修改/etc/sysconfig/i18n文件如下: 
LANG="zh_CN.GB18030" 
SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en:zh_CN.GB18030" 
SYSFONT="latarcyrheb-sun16" 
重启系统后,用mount.smbfs挂载windows共享,终于正常显示中文。但用smbclient连接,显示乱码。 
3。修改/etc/samba/smb.conf文件如下: 
[global] 
    dos charset CP936 
    unix charset GB18030 
    display charset GB18030 
这时只需重启smb服务,用smbclient连接windows共享已正常显示中文。 

经验提示: 
使用mount.smbfs可以在linux环境中直接使用windows的共享文件夹,如同访问linux下的目录或分区一样。我们打开windows里的文本文件字体都显示正常,只是文件名在linux下显示乱码,说明挂载是正确的。不正确的应该是GNOME的本地环境的编码与windows服务端编码不一致引起。因此,这时应该修改本地环境编码格式,统一为gb18030。 
这时,我们使用locale命令,可以看到本地环境编码已更改: 
[root@**** ~]# locale 
LANG=zh_CN.GB18030 
LC_CTYPE="zh_CN.GB18030" 
LC_NUMERIC="zh_CN.GB18030" 
LC_TIME="zh_CN.GB18030" 
LC_COLLATE="zh_CN.GB18030" 
LC_M 
LC_MESSAGES="zh_CN.GB18030" 
LC_PAPER="zh_CN.GB18030" 
LC_NAME="zh_CN.GB18030" 
LC_ADDRESS="zh_CN.GB18030" 
LC_TELEPHONE="zh_CN.GB18030" 
LC_MEASUREMENT="zh_CN.GB18030" 
LC_IDENTIFICATION="zh_CN.GB18030" 
LC_ALL= 
而使用smbclient连接时,该命令是UNIX环境下指令,这时只用修改smb环境的指令编码与locale一致即可。 

其它异构环境,包括使用NFS文件系统如果发生类似问题,也可以循此思路解决。

 

原文:http://www.chinaunix.net/old_jh/4/888016.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值