目录:
环境说明:
设备:树莓派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共享时碰到了不少坑,用此篇来记录一下。
一、文件共享该怎么做
-
将移动硬盘接上openwrt设备,硬盘的分区格式尽量是Linux系统能识别的Ext4、Ext3、Ext2等格式,这样硬盘就能被系统自动挂载。否则就需要手动挂载。(后来就发现新版本openwrt能自动挂载NTFS格式的硬盘了)
2021.08.30更新
之前我发现SMB共享时用Ext2、Ext3、Ext4等格式的传输速度比NTFS格式的硬盘传输速度更快,所以就顺带写下了分割线之后的建议。当时以为是硬盘分区格式的问题,结果这几天在更换了最新版的openwrt固件之后,发现这个差别又没了,NTFS格式的硬盘传输速度也能跑满千兆网,并且新的固件能直接自动挂载NTFS硬盘。目前不太确定是由于系统更新修复了这个问题还是回到了学校测试(跟之前测试的网线不是同一条了)的原因,所以下面分割线之后的建议仅供参考。
个人建议SMB共享时硬盘还是用EXT4格式最好。因为我在使用中发现挂载的EXT4格式的硬盘通过SMB共享时上传下载都能稳定跑满内网的千兆带宽,传输大文件的速度基本在110兆上下。虽说NTFS格式的硬盘在同样条件时的下载速度并没有慢多少,为100M左右,但上传速度却要慢很多,只能稳定在25M(也就是大概两百兆带宽)。
-
如果没什么问题,openwrt会自动挂载这个硬盘上的分区。在系统->挂载点上确认接入的硬盘在已挂载的文件系统列表中。
如果多次尝试还无法挂载,那么连接到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)
- 再来设置访问smb的root用户密码。
smbpasswd -a root
- 开启网络共享,依次进入菜单网络存储->网络共享。添加一个共享目录
注意:在目录那一栏里是硬盘的挂载点,而不是文件系统路径(别问我为什么知道),否则无法连接SMB共享,出现错误代码”0x80070043“。
二、坑
此时在其他设备上利用root用户访问这个共享目录时,就会提示权限不足或者“0x80070035”错误代码。
这是因为openwrt对root用户访问smb是有限制的,所以需要去掉root用户的限制。
在网络共享界面,进入编辑模板
在invalid users = root前添加一个#号,将这一行注释掉,这样root就不会被限制访问smb了。
然后使用以下命令重启smb:
/etc/init.d/samba restart
当连接时错误代码为“0x80070043”,则大概率是共享文件夹的挂载路径有错误,可能原因是硬盘未挂载成功或者挂载路径拼写错误。参照上一大条的第四小点下方注意事项。
评论 (0)