作者:田逸([email]sery@163.com[/email])
※版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。
※版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。
一台运行 Redhat 7.3 的服务器由于机器使用时间过久而出现硬盘故障,具体的表现是系统运行一段时间后就挂起了;经诊断是磁盘出现坏道所致。于是通知用户尽可能的备份数据,然后申请一个新的硬盘,打算把数据复制到新的系统。在做这个事情之前,我试着在单用户下运行 fsck 检查文件系统,但没有成功,看来只得用新的系统来挂接有故障的硬盘,然后再复制目录和文件。作者:田逸 [出处:51cto博客
在硬盘上我用
RedHat AS 4
替代以前的
RedHat linux 7
,安装完成后以源码方式安装了
Samba
软件,操作步骤如下:
请输入内容
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 的目录和文件出现中文乱码的情况,换机器试也如此,其状态如下图所示:
正确运行后,我把损坏的硬盘挂接到目录 /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]
作者:田逸 [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,如需转载请自行联系原作者