openwrt中利用SMB共享文件

知识分子没文化
2021-08-06 / 1 评论 / 243 阅读 / 正在检测是否收录...

目录:

环境说明:

设备:树莓派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共享时碰到了不少坑,用此篇来记录一下。

一、文件共享该怎么做

  1. 将移动硬盘接上openwrt设备,硬盘的分区格式尽量是Linux系统能识别的Ext4Ext3Ext2等格式,这样硬盘就能被系统自动挂载。否则就需要手动挂载。(后来就发现新版本openwrt能自动挂载NTFS格式的硬盘了)

    2021.08.30更新

    之前我发现SMB共享时用Ext2、Ext3、Ext4等格式的传输速度比NTFS格式的硬盘传输速度更快,所以就顺带写下了分割线之后的建议。当时以为是硬盘分区格式的问题,结果这几天在更换了最新版的openwrt固件之后,发现这个差别又没了,NTFS格式的硬盘传输速度也能跑满千兆网,并且新的固件能直接自动挂载NTFS硬盘。目前不太确定是由于系统更新修复了这个问题还是回到了学校测试(跟之前测试的网线不是同一条了)的原因,所以下面分割线之后的建议仅供参考。


    个人建议SMB共享时硬盘还是用EXT4格式最好。因为我在使用中发现挂载的EXT4格式的硬盘通过SMB共享时上传下载都能稳定跑满内网的千兆带宽,传输大文件的速度基本在110兆上下。虽说NTFS格式的硬盘在同样条件时的下载速度并没有慢多少,为100M左右,但上传速度却要慢很多,只能稳定在25M(也就是大概两百兆带宽)。

  2. 如果没什么问题,openwrt会自动挂载这个硬盘上的分区。在系统->挂载点上确认接入的硬盘在已挂载的文件系统列表中。

01

如果多次尝试还无法挂载,那么连接到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)

  1. 再来设置访问smb的root用户密码。
smbpasswd -a root
  1. 开启网络共享,依次进入菜单网络存储->网络共享。添加一个共享目录

02

注意:在目录那一栏里是硬盘的挂载点,而不是文件系统路径(别问我为什么知道),否则无法连接SMB共享,出现错误代码”0x80070043“。

二、坑

此时在其他设备上利用root用户访问这个共享目录时,就会提示权限不足或者“0x80070035”错误代码。

这是因为openwrt对root用户访问smb是有限制的,所以需要去掉root用户的限制。

网络共享界面,进入编辑模板

03

invalid users = root前添加一个#号,将这一行注释掉,这样root就不会被限制访问smb了。

然后使用以下命令重启smb:

/etc/init.d/samba restart

当连接时错误代码为“0x80070043”,则大概率是共享文件夹的挂载路径有错误,可能原因是硬盘未挂载成功或者挂载路径拼写错误。参照上一大条的第四小点下方注意事项。

0

评论 (1)

取消
  1. 头像
    11
    Windows 10 · Google Chrome

    画图

    回复