Netgear R6400刷Koolshare的改版梅林固件7.9版,并配置SMB共享后正常工作。之后手贱升级固件至7.9.1,偶尔有不稳定现象,长按reset恢复出厂设置之后SMB共享不可用。
在网页上检查SMB配置。
未发现异常。但是配置页上的共享是外置硬盘里每个目录一个条目,实际上也是什么都没共享出来。(另一个bug)寻找SMB服务的配置文件,从中检查
[<共享名>]
节配置。
寻找配置文件倒是没啥难度,在SMB服务正常运行的状态下执行
root@R6400:/tmp# ps |grep smb
478 root 6072 S /usr/sbin/smbd -D -s /etc/smb.conf
479 root 5872 S nmbd -D -s /etc/smb.conf
482 root 1436 S grep smb
嗯,就是/etc/smb.conf
这个文件啦。
然后想要从中查找[ST9500325AS]
这一节。果然没找到。。。实际上这个文件中除了[default]
就没有别的节了,也就是说看不到共享是正常的。
- 尝试直接向
/etc/smb.conf
写入SMB共享信息。正常/主流的Linux发行版都是这么处理的。
要添加的SMB共享信息如下:
[ST9500325AS]
path = /tmp/mnt/ST9500325AS
public = yes
guest ok = no
valid users = root
read only = yes
write list = root
然而。。。一在网页上重启网上邻居共享,上述信息就被自动清除。。。
- 实际对于Merlin固件,应当将额外的配置信息写入自定义配置文件中,才能避免被清除,并在重启服务时自动加载。
对于上述SMB配置,应当写入/jffs/configs/smb.conf.add
这个文件。
另外最好能再做一个chmod o-rwx /jffs/configs/*
。
2019-8-4更新:
https://www.snbforums.com/threads/restart-samba-daemon-from-terminal.33440/#post-269058
service restart_nasapps
这个命令可以重启网上邻居共享。执行命令后立即查找相关进程,可以看到一个有意思的东西。
root@R6400:/tmp/home/root# service restart_nasapps
Done.
root@R6400:/tmp/home/root# ps |grep smb # 重启后约5秒内执行
22737 root 1440 S sh -c /sbin/write_smb_conf
22738 root 1348 D /sbin/write_smb_conf
22742 root 1436 S grep smb
root@R6400:/tmp/home/root# ps |grep smb # 等待更长时间后执行
22749 root 5872 S nmbd -D -s /etc/smb.conf
22750 root 6072 S /usr/sbin/smbd -D -s /etc/smb.conf
22756 root 1432 D grep smb