环境说明: 设备:树莓派4B 系统:openwrt R21.6.22 树莓派的openwrt固件项目链接:GitHub - SuLingGG/OpenWrt-Rpi: Raspberry Pi & NanoPi R2S/R4S & G-Dock & x86 OpenWrt Compile Project. (Based on Github Action / Daily Update)
最近在用openwrt进行SMB共享时碰到了不少坑,用此篇来记录一下。
个人建议SMB共享时硬盘还是用EXT4格式最好。因为我在使用中发现挂载的EXT4格式的硬盘通过SMB共享时上传下载都能稳定跑满内网的千兆带宽,传输大文件的速度基本在110兆上下。虽说NTFS格式的硬盘在同样条件时的下载速度并没有慢多少,为100M左右,但上传速度却要慢很多,只能稳定在25M(也就是大概两百兆带宽)。
如果多次尝试还无法挂载,那么连接到openwrt终端,使用命令来进行挂载:
# 将设备/dev/sda1挂载到/mnt/sda1下
mount /dev/sda1 /mnt/sda1
NTFS格式的硬盘不会自动挂载,需要用到ntfs-3g进行挂载:
# 安装ntfs-3g
opkg update
opkg install ntfs-3g
# 挂载
mount -t ntfs-3g /dev/sda1 /mnt/sda1
命令执行完成刷新页面再次查看挂在情况,或者使用命令df -h
也可以。
注:Linux mount命令 | 菜鸟教程 (runoob.com)
smbpasswd -a root
注意:在目录那一栏里是硬盘的挂载点,而不是文件系统路径(别问我为什么知道),否则无法连接SMB共享,出现错误代码”0x80070043“。
此时在其他设备上利用root用户访问这个共享目录时,就会提示权限不足或者“0x80070035”错误代码。
这是因为openwrt对root用户访问smb是有限制的,所以需要去掉root用户的限制。
在网络共享界面,进入编辑模板
在invalid users = root前添加一个#号,将这一行注释掉,这样root就不会被限制访问smb了。
然后使用以下命令重启smb:
/etc/init.d/samba restart
当连接时错误代码为“0x80070043”,则大概率是共享文件夹的挂载路径有错误,可能原因是硬盘未挂载成功或者挂载路径拼写错误。参照上一大条的第四小点下方注意事项。