1. 目的
在OpenWRT上挂载上大容量磁盘(NTFS文件系统),支持读写操作。
解决luci挂载点界面,默认挂载仅能读取,不能写入问题。
配置Samba36,实现局域网文件夹共享。
2. 环境
CPU: Amlogic S805 架构 ARMv7 Processor rev 1 (v7l)
固件版本 OpenWrt 19.07.7
内核版本 3.10.33
3. 安装插件
smbd -v # 检查是否安装了smb
opkg update # 更新包
opkg install kmod-usb-storage block-mount samba36-server luci-app-samba ntfs-3g # ntfs-3g支持ntfs大容量磁盘读写操作。
以上操作也可以在WebUI:系统-》软件中完成:
插件 | 描述 |
---|---|
samba36-server | 安装luci-app-samba时跟随安装 |
luci-app-samba | Samba后台管理界面 |
block-mount | OpenWrt 默认的磁盘管理插件,可以自动挂载插入的 USB 存储设备,也可以手动挂载其他存储设备。 |
kmod-usb2 / kmod-usb3 | USB2.0支持/USB3.0支持 |
kmod-usb-storage | Kernel support for USB Mass Storage devices 如果找不到就执行:opkg update,然后就有了 |
kmod-fs-ext4 | ext4文件系统支持 |
ntfs-3g | Ntfs文件系统支持,支持读写操作 |
kmod-fs-exfat | Kernel module for ExFAT Filesytems |
4. 挂载磁盘
4.1 查看磁盘ID或名称
插入USB磁盘
后台管理,进入系统-挂载点,点击新增,点击下拉列表,看到大容量磁盘的名字:/dev/sda,记下用于后续配置。
如有之前在luci webui挂载点界面添加的不成功的挂载,请删除,并保存,重启。
4.2 创建加载文件夹
请注意,只能将分区挂载到现有目录。所以,请使用以下命令来创建它。
mkdir -p /mnt/sda1
如果创建名字不对,你可以删除它。删除前先卸载它(如果卸载不掉,则先清除挂载名命令,然后重启后再删除)
umount /dev/sdb1
4.3 进入系统-》启动项-》本地启动脚本,添加以下内容:
sleep 1
mkdir -p /mnt/usb # 创建文件夹,用于加载磁盘
ntfs-3g /dev/sda /mnt/usb -o rw,lazytime,noatime,big_writes # 加载磁盘
exit 0
或者:
sleep 1
mkdir -p /mnt/usb # 创建文件夹,用于加载磁盘
mount -t ntfs-3g /dev/sda1 /mnt/usb # 加载磁盘
exit 0
其中:/dev/sda为前面找到的磁盘名。 /mnt/usb,为要加载到的路径。
4.4 验证
重启设备,进入挂载点页面查看是否挂载成功,如果成功,则会看到下面一行:
winscp通过ssh链接进入,看看是否能在/mnt/sda1下写入100M以上的文件。如果能写入则成功。
5 Samba配置
5.1 配置共享
5.2 进入Samba下的编辑模板,注释掉invalid users = root
[global]
enable core files = no
#invalid users = root
local master = no
map to guest = Bad User
5.3 增加samba密码:
Smbpasswd可以在任意路径执行,注意要拼写正确:
smbpasswd -a root
New SMB password: #输入需要设置的密码
Retype SMB password:
# samba 加密码:
#(1)密码保存位置: /etc/samba/smbpasswd
#(2)建立samba密码命令格式:smbpasswd [选项] <用户名>
# 选项:
# -s 从已有用户读取密码
# -a 添加用户
# -x 删除用户
5.4 访问验证
打开Windows文件资源管理器,输入\OpenWRT IP,回车
然后在弹出窗口中输入设置的账号和密码登录,就可看共享文件夹了。
复制几个文件进入做测试。如果可以写入,就成功了。