文件名编码一定要搞清楚本地所使用的编码格式,一般而言,中文windows是cp936,linux多为utf-8。下面分几种情况,
windows服务器-linux客户端
在linux客户端mount的时候,需要指定远端的编码,codepage=936指定远端的中文windows使用的编码,iocharset=utf-8用于指定本地的字符集。需要在命令行参数,或者/etc/fstab中使用这两个参数。
linux服务器-windows客户端
需要让linux服务器指定自己的共享为cp936的编码,在/etc/samba/smb.conf中增加几个系统级参数:
代码: 全选
display codepage=cp936
dos codepage=cp936
unix codepage=cp936
即使本地的文件系统为ext2,ext3,ntfs,reisfs等支持大文件的文件系统,在用samba传送大文件的时候也不能传送大于2G的文件。
解决方法:
在参数中增加lfs选项,比如
手工mount:
代码: 全选
mount -t smbfs -o codepage=cp936,lfs //server/share /mnt/point
smbmount -o codepage=cp936,lfs //server/share /mnt/point
代码: 全选
//server/share /mnt/point smbfs noauto,rw,user,username=tom,password=abc,uid=tom,codepage=cp936,lfs 0 0