苦战samba乱码『看我出招系列』

简介:
作者:田逸([email]sery@163.com[/email])  
版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。

    一台运行
Redhat 7.3 的服务器由于机器使用时间过久而出现硬盘故障,具体的表现是系统运行一段时间后就挂起了;经诊断是磁盘出现坏道所致。于是通知用户尽可能的备份数据,然后申请一个新的硬盘,打算把数据复制到新的系统。在做这个事情之前,我试着在单用户下运行 fsck 检查文件系统,但没有成功,看来只得用新的系统来挂接有故障的硬盘,然后再复制目录和文件。作者:田逸 [出处:51cto博客

在硬盘上我用 RedHat AS 4 替代以前的 RedHat linux 7 ,安装完成后以源码方式安装了 Samba 软件,操作步骤如下:
请输入内容
1、下载文件  [root@localhost ~]# wget [url]http://us5.samba.org/samba/ftp/samba-3.0.23d.tar.gz[/url]  
2、在当前目录解压文件 [root@localhost ~]# tar zxvf samba- 3.0.23 d.tar.gz; cd samba-3.0.23d/source
3、配置、编译及安装    [root@localhost ~]# ./configure –prefix=/usr/local/samba  // 指定安装目录为 /usr/local/samba
   [root@localhost ~]#make;make install
4、拷贝samba的配置文件  [root@localhost ~]# cd ..; cd examples; cp smb.conf.default /usr/local/samba/lib/smb.conf.
5、修改配置文件/usr/local/samba/lib/smb.conf。根据自己的需求修改,一般而言,默认的情况都能满足要求。如果做过修改,修改完成后,运行testperm /usr/local/samba/lib/smb.conf检查一下配置文件是否正确。如果正确无误将出现类似后面的输出:Loaded services file OK.
6、添加samba用户。因为samba用户需是系统用户,因此在添加samba用户时需要检查添加的用户是否属于系统用户。再执行命令 /usr/local/samba/bin/smbpasswd  -a <username> 输入2次同样的密码就能成功添加samba用户。顺便说明一下,很多初学者会忽略添加samba用户这个过程,从而导致他不能从windows客户端正常登陆。
7、启用samba服务。/usr/local/samba/sbin/nmbd  /usr/local/samba/sbin/smbd
作者:田逸 [出处:51cto博客
    正确运行后,我把损坏的硬盘挂接到目录 /mnt/hdd5 下,然后按照以前的目录布局把相关的目录及文件复制到相关的位置,并给其相应的权限。做完后告诉用户(就是同事)让他们去恢复和使用 samba 。一会儿用户反应 samba 的目录和文件出现中文乱码的情况,换机器试也如此,其状态如下图所示:
 
作者:田逸
尝试着修改配置文件,手动加上代码页的语言为 zh_CN, 重新启动 samba 服务,在 windows 的客户端还是乱码,再换成其他编码,还是不行,后来又把 samba 删除换成更新的版本和换成低的版本,也是不行,客户催得很急,心里很是紧张。
作者:田逸
不经意中,发现用 ssh 的客户端软件 securecrt 能正常显示中文,连 samba 的用户目录里的中文名文件和目录都能正常显示,我想:能不能用 ssh 这样的客户端工具来实现一个转换呢?试一试吧!于是我拿出 SSH Secure File Transfer Client 这个工具连接 linux  服务器,察看 linux 服务器这端的文件和目录,发现除了 samba 用户目录的中文乱码外,其他目录的中文名称则能正常显示,接着在 linux samba 用户目录建一个中文名的目录,再从网上邻居访问 samba 发现中文名称显示正常。再试着在 linux 下用 cp 拷贝挂接分区的文件到 samba 用户目录,从 windows 的网上邻居访问 windows 还是乱码,但把那些乱码的中文名目录或文件通过 SSH Secure File Transfer Client 拷贝到 windows 目录却没有乱码,再把这些目录 / 文件拷回通过 SSH Secure File Transfer Client 拷贝 samba 用户目录则正常。于是得到这样的解决办法:在 windows 上通过  SSH Secure File Transfer Client linux 上挂接目录的文件拷贝到 windows 的目录,然后再把这些目录 / 文件拷贝回 linux samba 用户目录即可。
作者:田逸 [url]http://sery.blog.51cto.com[/url]
照上面的办法测试了几个小文件,发现此法可行。但有这样一个问题 需要拷贝的目录大小是数十 GB ,要来回倒腾可能需要很长的时间,而且我的 windows 硬盘的空间还没有这么多的空间来存储这些中转数据,看来还得使用一点技巧。
我的操作是这样的:先用 windows 网上邻居访问 samba 服务器,把 samba 目录映射成 windows 的网络驱动器(如下图所示):
 
 
然后使用 SSH Secure File Transfer Client linux 挂接目录的数据拷贝到 windows 的网络驱动器下(这实际上是在 linux 服务器上进行数据拷贝)。过程如下图所示:
 
 
花了很长一段时间,终于把这数据复制完毕,用 windows 的网上邻居访问 samba ,中文目录和中文文件名显示正常;用 VSS 客户端访问 samba ,一切正常。
 
造成乱码的原因是由于不同版本的 linux 的字符编码不同造成的(因为原来的系统进不去了,其编码不能再找到),通过 windows 中转一下就一致了。
 
 
注:运行命令  export LANG=zh_CN  language 临时设置成 zh_CN.




















本文转自sery51CTO博客,原文链接: http://blog.51cto.com/sery/14741,如需转载请自行联系原作者


相关文章
|
JSON 应用服务中间件 数据格式
杨洋撒撒一大片,Controller接收中文不再“不正经”,乱码问题这样解决,你信或不信
杨洋撒撒一大片,Controller接收中文不再“不正经”,乱码问题这样解决,你信或不信
134 0
杨洋撒撒一大片,Controller接收中文不再“不正经”,乱码问题这样解决,你信或不信
|
Unix Linux 开发工具
你见过的最全vim编辑器常用操作总结(我是困不住的野马,却想做你怀里的猫)
你见过的最全vim编辑器常用操作总结(我是困不住的野马,却想做你怀里的猫)
202 0
你见过的最全vim编辑器常用操作总结(我是困不住的野马,却想做你怀里的猫)
|
存储 开发框架 .NET
你管这破玩意叫计算机?
你管这破玩意叫计算机?
141 0
|
存储
【锟斤拷�⊠是怎样炼成的】——两分钟帮你彻底弄懂计算机的编码原理
【锟斤拷�⊠是怎样炼成的】——两分钟帮你彻底弄懂计算机的编码原理
218 0
|
开发工具 git Python
有了它,Python编码再也不为字符集问题而发愁了!
不论是什么编程语言,都免不了涉及到字符集的问题,我们经常在读写本文、获取网页数据等等各类情景下,需要和字符集编码打交道。这几天在公司就遇到了这么一个问题,由于软件需要初始化许多参数信息,所以使用ConfigParser模块进行配置文件的读写操作。本来一切OK,但当把这些.ini配置文件提交到git仓库后,再次下载使用时,默认的utf-8字符集编码,被git默认修改成了gbk编码。导致读取配置文件时默认使用的utf-8编码,最终导致异常报错。那么该如何解决读取文件时的字符集问题呢?Python有专门的字符集检测模块chardet,今天就带大家一起学习下它。
201 0
|
网络协议 Linux
可恶,又被小林装到了!
可恶,又被小林装到了!
可恶,又被小林装到了!
|
存储 人工智能 监控
你真的了解计算机病毒吗?内容很“干”,记得喝水(下)
计算机病毒与计算机相伴生的东西,它对计算机的安全构成一定的威胁,一旦病毒计算机遭到病毒入侵,轻则导致信息丢失,重则导致电脑瘫痪。因此,抵御病毒入侵显得十分重要。 想要抵御病毒,你得先了解它们,知道它们长什么样子,是如何侵入计算机的才能很好的抵御它们。
你真的了解计算机病毒吗?内容很“干”,记得喝水(下)
|
开发框架 安全 .NET
你真的了解计算机病毒吗?内容很“干”,记得喝水(上)
计算机病毒与计算机相伴生的东西,它对计算机的安全构成一定的威胁,一旦病毒计算机遭到病毒入侵,轻则导致信息丢失,重则导致电脑瘫痪。因此,抵御病毒入侵显得十分重要。 想要抵御病毒,你得先了解它们,知道它们长什么样子,是如何侵入计算机的才能很好的抵御它们。
你真的了解计算机病毒吗?内容很“干”,记得喝水(上)

热门文章

最新文章