Answers:
Samba mangled names
选项的问题在于这两个设置都不理想。您可以拥有不整齐的名称,但是由于它们包含非法字符而无法以任何方式进行访问,或者名称被整齐为DOS 8.3格式,因此几乎不可读。
幸运的是,现在有一个名为VFS的模块catia
,它将提供自定义字符映射。特别是可以映射Windows文件名中被认为非法的字符。
在本[global]
节中,这些行:
# Mapping illegal characters, where enabled with "vfs objects = catia"
mangled names = no
catia:mappings = 0x22:0xa8,0x2a:0xa4,0x2f:0xf8,0x3a:0xf7,0x3c:0xab,0x3e:0xbb,0x3f:0xbf,0x5c:0xff,0x7c:0xa6
在每个[share_name]
部分中,添加下一行(如果已经有vfs objects
一行,只需追加catia
到列表中):
vfs objects = catia
在基于Debian的系统上,此VFS对象模块作为标准软件包的一部分安装。
此设置映射的文件名的一个示例是2017-12-24 12:23.txt
。使用mangled names = yes
将此文件显示为2BB0Y9~4.TXT
。使用vfs objects = catia
代替时,此文件名显示为2017-12-24 12÷23.txt
。这不是完美的,但还不错。最重要的是,我可以从Windows应用程序访问它。
由于某种原因,Samba开始处理包含冒号的文件名。到目前为止,我在Internet上找不到任何有关此行为的信息。
解决方案非常简单。mangled names = no
在该[global]
部分添加/etc/samba/smb.conf
并重新启动Samba可以解决此问题。
特殊字符问号?\ <> *等在Windows文件名中是非法的,我始终避免使用它们。
不过,使用macOS Catalina访问FreeNAS-11.3-U1和SMB / Samba设置时,这些字符没有问题。我不确定为什么默认情况下没有此设置,但是您必须按照以下步骤操作才能使其在MacOS上完美运行。
在FreeNAS webUI中,转到“共享”>“ SMB”>“编辑”
fruit:encoding = native
然后转到服务并重新启动SMB