当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 16 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : 如何挂接中文SMB共享(各种论坛上已知方法于我都无效)
帖子发表于 : 2007-11-29 16:26 

注册: 2007-06-03 13:52
帖子: 30
地址: 北四环中路238号 柏彦大厦406b室
送出感谢: 0 次
接收感谢: 0 次
我知道很多人可能认为这是老问题了,应该去Google上找。老实说我来问之前已经在Google上找了3小时并经过2小时尝试不同方法和读man page,实在找不出解法。

所有网上提到的方法无外乎加iocharset=UTF-8 codepage=CP936。都无效果。

本机(Ubuntu 7.04)所有用户均使用UTF-8,内核是自带的没有改动。服务器为Debian Linux,其上samba没有被配置成为使用GB18030,准确地说,服务器上与charset有关的配置仅一条: unix charset = UTF-8

此服务器上文件多为中文,使用Windows XP中文版、英文版及德文版访问均中文正常!仅有使用Linux mount上后中文为乱码。
mount -t smbfs //gtz.ods.org/SharedDocs /mnt (乱码)
mount -t smbfs -o iocharset=UTF-8 //gtz.ods.org/SharedDocs /mnt (乱码)
mount -t smbfs -o iocharset=UTF-8,codepage=CP936 //gtz.ods.org/SharedDocs /mnt (乱码)

后两种方式挂接会在dmesg中有以下错误:
[23060.326849] Unable to load NLS charset CP936
[23060.326881] smbfs: failed to load nls 'CP936'

有人会问即是Linux客户机访问Linux服务器,为何不使用NFS?答案是NFS安全性基于IP地址设置,而本机使用DSL线路无法提供固定IP地址;而配置基于Kerberos的NFSv4似比解决当下使用smbfs挂接的问题更为麻烦,并且(无故地)增加了服务器提供的服务数量。

望高手施以援手。谢谢!

又及:服务器使用 security = share ,此举为兼容现有的大量Windows 98客户机。考虑到这一点,才在挂接时使用smbfs而非cifs。实际上如果换为cifs将挂接失败。


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-11-29 16:42 
头像

注册: 2007-03-30 9:46
帖子: 225
送出感谢: 1
接收感谢: 0 次
我的方法是sudo smbmount //$remoteIP/$sharedDirectory $distDirectory -o rwx


_________________
在国外,众多程序员为了理想而夜以继日;
而在国内,程序员在为填饱自己和家人的肚子而埋头苦干。


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-11-29 20:02 

注册: 2007-06-03 13:52
帖子: 30
地址: 北四环中路238号 柏彦大厦406b室
送出感谢: 0 次
接收感谢: 0 次
楼上所说 smbmount 无效,同样是乱码。


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-11-30 8:45 
头像

注册: 2007-03-13 17:26
帖子: 2254
送出感谢: 0 次
接收感谢: 1
代码:
iocharset=utf8,codepage=cp936


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2007-12-01 11:36 

注册: 2007-06-03 13:52
帖子: 30
地址: 北四环中路238号 柏彦大厦406b室
送出感谢: 0 次
接收感谢: 0 次
代码:
zhangweiwu@esmeralda:~$ sudo mount -t smbfs -o iocharset=utf8,codepage=CP936 //gtz.ods.org/SharedDocs /mnt/
Password:
zhangweiwu@esmeralda:~$ ls /mnt/
|                                         l
?                                         l
205342984.rar                             l
a - CPD                                   Le Xiyong
a - Indicator system                      Lisa
a - Internal Monitoring                   Liu Yanli
a - Newsletter                            Luo Rumin
a - Project Folder -                      Main Assignments for Mr WZQ.doc
a - Project Website                       Michael
a - Training material                     p
a - Translations of Documents in English  p
b - Pictures                              PADO INPUT.xls
David                                     Pan Fan
for Wang Yongming                         qian wei
for Yan Han                               QXD
For Zhang Weiwu                           t
Gerd                                      Wang Heng
HPP                                       WP Finale-
IP.doc                                    x
l                                         zzf
l
zhangweiwu@esmeralda:~$ dmesg | tail
[83444.441192] agpgart: Putting AGP V2 device at 0000:00:0b.0 into 1x mode
[83444.441225] agpgart: Putting AGP V2 device at 0000:00:10.0 into 1x mode
[83444.681808] [drm] Setting GART location based on new memory map
[83444.681929] [drm] writeback test succeeded in 1 usecs
[83451.223838] agpgart: Putting AGP V2 device at 0000:00:0b.0 into 1x mode
[83451.223868] agpgart: Putting AGP V2 device at 0000:00:10.0 into 1x mode
[86175.523932] Unable to load NLS charset CP936
[86175.523958] smbfs: failed to load nls 'CP936'
[86204.654930] Unable to load NLS charset CP936
[86204.654956] smbfs: failed to load nls 'CP936'

按:上面ls的输出中,单个字符的文件夹其实都是中文文件夹乱码(实际不存在名为单个字符的文件夹)


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2007-12-01 11:42 
头像

注册: 2007-01-28 23:00
帖子: 2682
地址: @江西|南昌@
送出感谢: 0 次
接收感谢: 0 次
代码:
mount -t smbfs -o iocharset=UTF-8,codepage=CP936 //gtz.ods.org/SharedDocs /mnt


我一直是这个命令。。。

PS:LZ要确定你WIN系统哪里文件的编码 CP936只是一种参数 还有很多的。


_________________

Do as you would be done by !


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2007-12-01 11:50 

注册: 2007-06-03 13:52
帖子: 30
地址: 北四环中路238号 柏彦大厦406b室
送出感谢: 0 次
接收感谢: 0 次
引用:
我一直是这个命令。。。

PS:LZ要确定你WIN系统哪里文件的编码 CP936只是一种参数 还有很多的。


惭愧!我从来就没有成功无乱码地挂接过smbfs,此外前文已经说明,服务器是Debian而非Windows。其配置文件全文如下:
代码:
[global]
   netbios name = USER10-4-1
   unix charset = UTF-8
   workgroup = WORKGROUP
   server string = %h server
   dns proxy = no
   log file = /var/log/samba/log.%m
   max log size = 1000
   syslog = 0
   panic action = /usr/share/samba/panic-action %d
   security = share
   encrypt passwords = true
   passdb backend = tdbsam
   obey pam restrictions = yes
   guest account = nobody
   invalid users = root
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n *password\supdated\ssuccessfully* .
   load printers = yes
   printing = cups
   printcap name = cups
   socket options = TCP_NODELAY
[SharedDocs]
   comment = Shared Documents
   guest ok = yes
   guest account = nobody
   read only = no
   browseable = yes
   writable = yes
   path = /var/shared
[信息管理系统MIS]
   comment = 信息管理系统MIS
   guest ok = yes
   guest account = nobody
   read only = no
   browseable = yes
   writable = yes
   path = /var/MIS
[homes]
   comment = Home Directories
   browseable = no
   writable = no
   create mask = 0700
   directory mask = 0700
   valid users = %S
[printers]
   comment = All Printers
   browseable = yes
   guest account = smbprint
   path = /var/spool/samba
   printable = yes
   public = yes
   writable = yes
   guest ok = yes
   read only = no
   browseable = yes
   writable = yes
   path = /var/shared
   create mode = 0700
[print$]
   comment = Printer Drivers
   path = /var/lib/samba/printers
   browseable = yes
   read only = yes
   guest ok = no

其中:
* 配置文件里并没有提到CP936,而其共享可以被中、英、德多种版本Windows XP访问均无乱码;
* 挂接时不指定codepage=CP936和指定codepage=CP936是同样的效果(乱码);
* dmesg里说我的内核没有nls cp936的支持;


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2007-12-01 12:05 
头像

注册: 2007-01-28 23:00
帖子: 2682
地址: @江西|南昌@
送出感谢: 0 次
接收感谢: 0 次
mount -t smbfs -o iocharset=UTF-8,codepage=CP936 //gtz.ods.org/SharedDocs /mnt

主要是要设置正确的编码,,, 红色是你本地编码 蓝色是服务器编码。。 正确设置了就不会乱码了 CP936是WIN默认的编码。如果你是debian那么就应该不是这个了


_________________

Do as you would be done by !


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2007-12-01 20:43 
头像

注册: 2006-12-07 17:32
帖子: 234
送出感谢: 0 次
接收感谢: 0 次
sudo mount //192.168.1.101/g gx -o username=administrator,iocharset=utf8
我就是这样用的,一点问题也没有,中文也能完美显示。


_________________
十年磨一剑,霜刃未曾试。今日把示君,谁有不平事?


页首
 用户资料  
 
10 楼 
 文章标题 :
帖子发表于 : 2007-12-01 20:45 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
yysq009的是对的。
只是不如我的,我开ftp。共享用ftp才是真的。


_________________
● 鸣学


页首
 用户资料  
 
11 楼 
 文章标题 :
帖子发表于 : 2007-12-02 15:48 

注册: 2006-09-08 9:01
帖子: 12
送出感谢: 0 次
接收感谢: 0 次
LZ 的问题解决了么?
我目前碰到的也是这个问题。
我的Samba Server 是开在 运行 OpenWRT 的路由器上。Windows XP 和 Vista 访问均正常,不过我的Ubuntu一挂载,就是乱码。期待高手来解决。

另:我要是在Ubuntu机器上Ssh到OpenWRT上,charset选成gb18030或是gbk才能看到文件系统里的中文文件名。
Ubuntu的Terminal的缺省charset好象是UTF-8会有乱码,不知道这样说,有没有帮助。


页首
 用户资料  
 
12 楼 
 文章标题 :
帖子发表于 : 2007-12-02 21:52 

注册: 2007-06-03 13:52
帖子: 30
地址: 北四环中路238号 柏彦大厦406b室
送出感谢: 0 次
接收感谢: 0 次
谢谢楼上的非常用心地用红蓝笔标注出来!其实您所说我的已经知道了,相关的man我也读过多遍,算是家庭作业做得好的学生了;) 各种方法均没有效果,所以才在论坛上提问,一是以免其它用户也有问题,却因为少交流不知道;二是也许高手能从细节(如dmesg)找出解法,或者会再问我要提供的诊断信息。其实我自己学力有限,但是还是感觉到似乎是默认的内核配置有关的问题,考虑到gnome中读取smb共享并不使用内核提供的代码转换功能,而Ubuntu开发人员可能因此忽视了命令行用户?我的遭遇或为一提醒。

下面是各种尝试的记录:
代码:
zhangweiwu@esmeralda:~$ sudo mount -t smbfs -o iocharset=UTF-8 //gtz.ods.org/SharedDocs /mnt/
Password:
zhangweiwu@esmeralda:~$ ls /mnt/ | head -n 2
|
|
zhangweiwu@esmeralda:~$ sudo mount -t smbfs -o iocharset=UTF-8,codepage=UTF-8 //gtz.ods.org/SharedDocs /mnt/
Password:
zhangweiwu@esmeralda:~$ ls /mnt/ | head -n 2
|
|
zhangweiwu@esmeralda:~$ ls /mnt/ | head -n 2
|
|
zhangweiwu@esmeralda:~$ sudo umount /mnt/
zhangweiwu@esmeralda:~$ locale
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
zhangweiwu@esmeralda:~$ dmesg | tail
[21661.526449] agpgart: Putting AGP V2 device at 0000:00:0b.0 into 1x mode
[21661.526480] agpgart: Putting AGP V2 device at 0000:00:10.0 into 1x mode
[28676.287420] agpgart: Putting AGP V2 device at 0000:00:0b.0 into 1x mode
[28676.287837] agpgart: Putting AGP V2 device at 0000:00:10.0 into 1x mode
[28676.547596] [drm] Setting GART location based on new memory map
[28676.547718] [drm] writeback test succeeded in 1 usecs
[29232.499775] agpgart: Putting AGP V2 device at 0000:00:0b.0 into 1x mode
[29232.499806] agpgart: Putting AGP V2 device at 0000:00:10.0 into 1x mode
[31192.442846] Unable to load NLS charset UTF-8
[31192.442876] smbfs: failed to load nls 'UTF-8'

注意上面名称为一竖线的文件都是乱码所致。


页首
 用户资料  
 
13 楼 
 文章标题 :
帖子发表于 : 2007-12-03 8:39 
头像

注册: 2007-03-30 9:46
帖子: 225
送出感谢: 1
接收感谢: 0 次
用konqueror行吗?


_________________
在国外,众多程序员为了理想而夜以继日;
而在国内,程序员在为填饱自己和家人的肚子而埋头苦干。


页首
 用户资料  
 
14 楼 
 文章标题 :
帖子发表于 : 2007-12-03 9:30 

注册: 2007-06-03 13:52
帖子: 30
地址: 北四环中路238号 柏彦大厦406b室
送出感谢: 0 次
接收感谢: 0 次
没有安装Konqueror。使用gnome是没有问题的(gnome中选择“连接到服务器”)。gnome无乱码。但是问题是gnome并没有使用挂接(似使用的gnome-vfs),所以gnome中显示共享文件夹正常而实际上命令行是看不到的(因为没有挂接到任何一个实际存在的目录上),mount命令输出中也没有gnome显示的共享文件夹。


页首
 用户资料  
 
15 楼 
 文章标题 : Re: 如何挂接中文SMB共享(各种论坛上已知方法于我都无效)
帖子发表于 : 2008-11-01 16:48 
头像

注册: 2007-11-30 17:18
帖子: 95
送出感谢: 0 次
接收感谢: 0 次
DDDDDDDDDDDDDD


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 16 篇帖子 ]  前往页数 1, 2  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译