Samba挂载隐藏路径

samba挂载的时候输入了全路径,但还是扫描了根路径公开显示的文件夹,没法查看未公开显示的路径,这点不太方便。

临时解决办法,在安装了Olares的操作系统中指定samba版本

systemd-run --description='Kubernetes transient mount for /olares/share/$SUBPATH' \
--scope -- mount -t cifs -o user=$USERNAME,password=$PASSWORD,uid=1000,gid=1000,\
cache=none,fsc,noserverino,ro,vers=2.0 //$SMB_IP/$SUBPATH /olares/share/$SUBPATH

方便提供下samba目录是在什么设备上么?我们尝试复现下这个问题

您这边提到的未公开显示的路径是指什么?我这边测了下,系统默认的隐藏文件路径(.开头的文件夹)是可以挂载的。您这边的未公开是说Samba服务器设置了文件夹对无权限用户的隐藏么?

Samba共享的时候可以通过browserable配置选择是否显示在局域网中,不是linux这种以.开头命名的隐藏文件。

其实可以将需求理解为:输入子路径后可以直接选择子目录下的目录或点击确定直接挂载子目录。这样既可以挂载隐藏的路径,也可以像之前一样。

您这边能试一下其他非隐藏的子目录可以直接挂载么? 我用的群晖的nas是可以直接samba直接挂载一个子目录的。不知道是不是还有些其他的配置影响了这个功能

2025-05-26T15:25:48.745206593+08:00 stderr F Output: Running scope as unit: run-raf7d678855e14360bf116bf7b4b5f6e0.scope
2025-05-26T15:25:48.745208076+08:00 stderr F mount error(22): Invalid argument
2025-05-26T15:25:48.745209409+08:00 stderr F Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) and kernel log messages (dmesg)
2025-05-26T15:25:48.745210561+08:00 stderr F ]
2025-05-26T15:25:48.781086918+08:00 stderr F E0526 07:25:48.781004       1 file.go:256] Failed to mount by http://OLARES_IP:18088/command/mount-samba to OLARES_IP:18088
2025-05-26T15:25:48.781109411+08:00 stderr F I0526 07:25:48.781025       1 file.go:257] response status: %!d(string=500 Internal Server Error), response body: map[code:500 message:mount failed: exit status 32
2025-05-26T15:25:48.781111485+08:00 stderr F Mounting command: systemd-run
2025-05-26T15:25:48.781113579+08:00 stderr F Mounting arguments: --description=Kubernetes transient mount for /olares/share/SUBPATH --scope -- mount -t cifs -o user=USERNAME,password=PASSWORD,uid=1000,gid=1000,cache=none,fsc,noserverino,ro //192.168.1.1/SUBPATH /olares/share/SUBPATH
2025-05-26T15:25:48.781115122+08:00 stderr F Output: Running scope as unit: run-rb521d8e36e82493c9261c133ae9cf67b.scope
2025-05-26T15:25:48.781116654+08:00 stderr F mount error(22): Invalid argument
2025-05-26T15:25:48.781118077+08:00 stderr F Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) and kernel log messages (dmesg)
2025-05-26T15:25:48.78111952+08:00 stderr F ]
2025-05-26T15:25:48.781121443+08:00 stderr F E0526 07:25:48.781046       1 data.go:38] : 500 10.233.116.45 failed to mount samba
2025-05-26T15:25:48.781123137+08:00 stderr F I0526 07:25:48.781062       1 data.go:75] POST /api/mount execution time: 110.109847ms
2025-05-26T15:25:48.996895729+08:00 stderr F I0526 07:25:48.996857       1 data.go:72] POST /api/mount starts at 2025-05-26 07:25:48.996849041 +0000 UTC m=+57899.416109253
2025-05-26T15:25:49.075744414+08:00 stderr F E0526 07:25:49.075665       1 file.go:256] Failed to mount by http://OLARES_IP:18088/command/v2/mount-samba to OLARES_IP:18088
2025-05-26T15:25:49.075761807+08:00 stderr F I0526 07:25:49.075679       1 file.go:257] response status: %!d(string=500 Internal Server Error), response body: map[code:500 message:mount failed: exit status 32
2025-05-26T15:25:49.075764833+08:00 stderr F Mounting command: systemd-run
2025-05-26T15:25:49.075767758+08:00 stderr F Mounting arguments: --description=Kubernetes transient mount for /olares/share/SUBPATH --scope -- mount -t cifs -o user=USERNAME,password=PASSWORD,uid=1000,gid=1000,cache=none,fsc,noserverino,ro //192.168.1.1/SUBPATH /olares/share/SUBPATH
2025-05-26T15:25:49.075770173+08:00 stderr F Output: Running scope as unit: run-rf7de0a54f91a4e7a8aaafc77d1d909ec.scope
2025-05-26T15:25:49.075772227+08:00 stderr F mount error(22): Invalid argument
2025-05-26T15:25:49.07577419+08:00 stderr F Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) and kernel log messages (dmesg)
2025-05-26T15:25:49.075775864+08:00 stderr F ]
2025-05-26T15:25:49.107167881+08:00 stderr F E0526 07:25:49.107059       1 file.go:256] Failed to mount by http://OLARES_IP:18088/command/mount-samba to OLARES_IP:18088
2025-05-26T15:25:49.107195472+08:00 stderr F I0526 07:25:49.107072       1 file.go:257] response status: %!d(string=500 Internal Server Error), response body: map[code:500 message:mount failed: exit status 32
2025-05-26T15:25:49.107200702+08:00 stderr F Mounting command: systemd-run
2025-05-26T15:25:49.107205281+08:00 stderr F Mounting arguments: --description=Kubernetes transient mount for /olares/share/SUBPATH --scope -- mount -t cifs -o user=USERNAME,password=PASSWORD,uid=1000,gid=1000,cache=none,fsc,noserverino,ro //192.168.1.1/SUBPATH /olares/share/SUBPATH
2025-05-26T15:25:49.107209499+08:00 stderr F Output: Running scope as unit: run-r415ada9aed414069875c8eea18504fc6.scope
2025-05-26T15:25:49.107225088+08:00 stderr F mount error(22): Invalid argument
2025-05-26T15:25:49.107229346+08:00 stderr F Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) and kernel log messages (dmesg)
2025-05-26T15:25:49.107232873+08:00 stderr F ]
2025-05-26T15:25:49.107236389+08:00 stderr F E0526 07:25:49.107092       1 data.go:38] : 500 10.233.116.45 failed to mount samba
2025-05-26T15:25:49.107240016+08:00 stderr F I0526 07:25:49.107108       1 data.go:75] POST /api/mount execution time: 110.257023ms

改成可以浏览试了一下,也没法挂载。
不确定是不是samba版本问题导致的,files支持什么samba协议版本?

olares支持smb v2 v3, 你可以执行一下 dmesg 看看是什么错误

dmesg在操作系统里面没有错误,我在操作系统上执行了一下挂载,确定用的是samba2.0;然后执行了日志中的命令,并且添加了vers=2.0参数以后可以正常挂载了。

感谢,我们后续修改一下,尝试多种参数模式挂载