OpenWrt中开启usb存储和samba服务
在从官网安装的WNDR3800 15.05.1版本OpenWrt中, 不带usb存储支持以及samba, 需要另外安装
参考的文章
http://www.geektalks.org/setup-usb-drive-and-sambanas-on-openwrt-from-scratch/
https://wiki.openwrt.org/doc/howto/usb.essentials USB Basic Support
https://wiki.openwrt.org/doc/howto/usb.storage USB Storage
https://wiki.openwrt.org/doc/uci/fstab fstab Configuration
https://wiki.openwrt.org/doc/techref/block_mount#block-mount_binary_package Mount Block Storage
安装过程中需要安装的包有
#Those are USB drivers
kmod-usb-core
kmod-usb2
kmod-usb-storage
kmod-usb-storage-extras
block-mount
kmod-usb-uhci
kmod-usb-ohci
#Those are file system support, you may choose only the ones you are using:
kmod-fs-exfat
kmod-fs-ext4
kmod-fs-ntfs
kmod-fs-vfat #IO charset, IMPORTANT
kmod-nls-cp437
kmod-nls-iso8859-1 #This one is for auto mount
block-mount #These are samba server and web page configuration software:
luci-app-samba
luci-i18n-samba-en
samba36-server
1. 启用usb支持
# 每次重启后, 软件包都要重新update
opkg update
安装 kmod-usb-uhci 或者 kmod-usb-ohci, 如果前者不能安装, 系统会有提示
opkg install kmod-usb-uhci
insmod usbcore
insmod uhci
#在执行后两个命令时, 一个会提示已经完成, 一个会报不存在, 可能教程里的命令未随版本更新
或
opkg update
opkg install kmod-usb-ohci
insmod usb-ohci
安装usb2
opkg install kmod-usb2
insmod ehci-hcd
2. 启用usb存储
需要安装这些包: kmod-usb-storage, 各种格式 kmod-fs-<fs>, block-mount, kmod-scsi-core
# 查看可以安装的fs list
opkg list |grep kmod-fs # 安装e2fsprogs
opkg install e2fsprogs # 安装
opkg install kmod-usb-storage block-mount kmod-fs-ext4 kmod-fs-vfat
# block-mount 会报一个错, 这个是/etc/init.d/fstab中报的, 可以忽略
启用对usb存储的自动挂载
主要是通过 block detect 产生的 fstab 配置来实现的, 各配置项的说明
# mount swap devices that don't have their own config section
option anon_swap ''
# mount block devices that don't have their own config section
option anon_mount ''
# automatically mount swap devices when they appear
option auto_swap ''
# automatically mount block devices when they appear
option auto_mount ''
# wait X seconds before trying to mount root devices on boot
option delay_root ''
# run e2fsck on device prior to a mount. e2fsck is used to check the ext2/ext3/ext4 family of file systems
option check_fs ''
fstab配置也可以在luci界面中进行编辑
root@OpenWrt:~# block detect > /etc/config/fstab
root@OpenWrt:~# cat /etc/config/fstab
config 'global'
option anon_swap ''
option anon_mount ''
option auto_swap ''
option auto_mount ''
option delay_root ''
option check_fs '' config 'mount'
option target '/mnt/sda1'
option uuid '40e0-6302'
option enabled '' root@OpenWrt:~# /etc/init.d/fstab enable
注: 最后一个 option enabled 改为'1' 就会自动挂载, 重启后, 用df -h就能看到usb存储了.
注: 可以将config 'mount'部分删除, 将 option anon_mount 和 option check_fs 改为 '1' 这样在启动时会自动发现usb存储并挂载
住: ntfs格式的移动硬盘不能自动加载, 需要启动后, 通过这样的命令进行挂载
root@WNDR3800:~# ntfs-3g /dev/sda1 /mnt/sda1/
root@WNDR3800:~# ntfs-3g /dev/sda2 /mnt/sda2/
配置samba
主要是通过两个配置文件实现的, 一个是 /etc/config/samba,
# vi /etc/config/samba
config samba
option name 'WNDR3800'
option workgroup 'WORKGROUP'
option description 'OpenWrt'
option homes ''
config sambashare
option name 'sda1'
option path '/mnt/sda1/'
option read_only 'no'
option guest_ok 'yes'
option 'create_mask' '0700'
option 'dir_mask' '0700'
注: option name 和 option path, 如果直接使用 'mnt' 和 '/mnt/' 会导致服务器对剩余空间大小判断错误而无法写入稍微大一点的文件.
所以.. 可以一下多配置几个, 这样接移动硬盘时, 就不用再改了, 比如这样
onfig samba
option name 'WNDR3800'
option workgroup 'WORKGROUP'
option description 'OpenWrt'
option homes '' config sambashare
option read_only 'no'
option guest_ok 'yes'
option create_mask ''
option dir_mask ''
option name 'sda1'
option path '/mnt/sda1/' config sambashare
option read_only 'no'
option guest_ok 'yes'
option create_mask ''
option dir_mask ''
option name 'sda2'
option path '/mnt/sda2/' config sambashare
option name 'sda3'
option path '/mnt/sda3/'
option read_only 'no'
option guest_ok 'yes'
option create_mask ''
option dir_mask '' config sambashare
option name 'sda4'
option path '/mnt/sda4/'
option read_only 'no'
option guest_ok 'yes'
option create_mask ''
option dir_mask ''
另一个是 /etc/samba/smb.conf, 这是samba服务的标准配置文件, 下面是配置的例子
[global]
netbios name = |NAME|
workgroup = |WORKGROUP|
server string = |DESCRIPTION|
syslog =
encrypt passwords = true
passdb backend = smbpasswd
obey pam restrictions = yes
socket options = TCP_NODELAY
unix charset = utf-
preferred master = yes
os level =
security = user
guest account = nobody
# For safety, disable root user
# invalid users = root
smb passwd file = /etc/samba/smbpasswd
然后 /etc/init.d/samba enable 并重启路由器就可以了
启动后, samba会自动更新smb.conf, 将在/etc/config/samba下设置的 [mnt] 附加到文件的后面
用 ext4 格式化u盘
# 查看原文件格式df -T参数
df -h -T # format, 不格式化为ext4不能在Mount Points的添加界面中看到
mkfs.ext4 /dev/sda1
# 或者
mke2fs /dev/sda1 # 如果不行就先挂成swap, 再取消挂载, 再格式化
mkswap /dev/sda1
swapon /dev/sda1
swapoff /dev/sda1 # 创建挂载点
mkdir -p /mnt/usb # 设置挂载点为可写
chmod a+w /mnt/usb
chown -R nobody /mnt/usb
在Luci界面中,
先通过System -> Mount Points 将U盘挂载到 /mnt/usb
再通过Services -> Network Shares 中添加 Shared Directories 将 /mnt/usb 挂载为usb, 勾选Allow Guest
在其它设备中, 检查是否可以连接并且写入. 然后重启路由器, 再次确认是否可以连接并且写入.
在启动日志中查看usb设备的识别情况
root@WNDR3800:~# dmesg
[ 11.460000] uhci_hcd: USB Universal Host Controller Interface driver
[ 11.470000] usb-storage -:1.0: USB Mass Storage device detected
[ 11.480000] scsi host0: usb-storage -:1.0
[ 11.490000] usbcore: registered new interface driver usb-storage
[ 11.740000] block: attempting to load /tmp/jffs_cfg/upper/etc/config/fstab
[ 11.760000] block: extroot: not configured
[ 11.760000] mount_root: switching to jffs2 overlay
[ 11.800000] eth0: link down
[ 11.820000] procd: - early -
[ 11.820000] procd: - watchdog -
[ 12.490000] scsi :::: Direct-Access Generic- SD/MMC 1.00 PQ: ANSI: CCS
[ 12.560000] procd: - ubus -
[ 13.170000] sd :::: [sda] -byte logical blocks: (15.4 GB/14.4 GiB)
[ 13.200000] sd :::: [sda] Write Protect is off
[ 13.200000] sd :::: [sda] Mode Sense:
[ 13.200000] sd :::: [sda] No Caching mode page found
[ 13.210000] sd :::: [sda] Assuming drive cache: write through
[ 13.240000] sda: sda1
[ 13.250000] sd :::: [sda] Attached SCSI removable disk
[ 13.610000] procd: - init -
[ 15.110000] NET: Registered protocol family
[ 15.120000] ntfs: driver 2.1. [Flags: R/O MODULE].
Update 2017-10-15
对于非usb类型的存储, 例如sd card/tf card, 其在/dev中自动检测得到的名称并非sda, 而是类似于mmcblk0这样的设备, 这时候block detect能正常工作, 但是/etc/config/samba里面配置的路径必须设置为(根据/dev/mmcblk0创建后的分区名, 一般为 mmcblk0p1)
option name 'mmcblk0p1'
option path '/mnt/mmcblk0p1/'
这样, fstab才能开机时自动检测并挂载
OpenWrt中开启usb存储和samba服务的更多相关文章
- OpenWrt中对USB文件系统的操作, 以及读写性能测试
参考 http://h-wrt.com/en/doc/flash 1. 查看usb存储在启动日志中的信息 # dmesg [ 5.720000] usbcore: registered new int ...
- Windows 7 系统中开启 ASP.NET State Service 服务的方法
控制面板 -> 程序和功能 -> “打开或者关闭 Windows 功能”对话框 -> Internet 信息服务 -> 万维网服务 -> 应用程序开发功能 -> A ...
- win7 命令行禁用开启usb存储
禁用: reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbstor" /v Start /t reg ...
- [Openwrt 项目开发笔记]:Samba服务&vsFTP服务(四)
[Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 在上一节中,我们讲述了如何在路由器上挂载U盘,以 ...
- [Openwrt 扩展上篇]USB挂载&U盘启动&Samba共享
最近偷懒,没学习,反想起自己的路由刷了Openwrt,正好闲置了一个硬盘想拿来做个网络硬盘,于是开始了折腾....这里将不谈论如何刷Openwrt,如何ssh,如何添加PPOE,如何添加相对应服务的包 ...
- 给树莓派开启samba服务
参考链接:https://www.cnblogs.com/mnstar/p/8144943.html 安装samba 和 samba-common-bin 启动树莓派以后,在命令行输入: sudo a ...
- 树莓派开启samba服务
安装samba 和 samba-common-bin 启动树莓派以后,在命令行输入: sudo apt-get update sudo apt-get install samba samba-comm ...
- OpenWrt 对外网开放vsftp服务和samba服务
对WAN开放vsFTP OpenWrt默认启动了vsftp服务, 在Luci上没找到配置界面, 但是后台是有这个服务的, 如果在Openwrt的lan下, 可以直接使用FileZilla之类的客户端连 ...
- Openwrt 刷机后配置WAN口,安装luci和设置中文、安装挂载USB存储。
官方版本的ROM编译时时没有把luci和uhttpd打包进去的,所以,要ssh登录到路由器后手动安装,默认用户名root,密码是空. 如果你的路由器是挂载在其他路由下面的,DHCP可以获取到IP,能正 ...
随机推荐
- 阿里巴巴直播内容风险防控中的AI力量
直播作为近来新兴的互动形态和今年阿里巴巴双十一的一大亮点,其内容风险监控是一个全新的课题,技术的挑战非常大,管控难点主要包括业界缺乏成熟方案和标准.主播行为.直播内容不可控.峰值期间数千路高并发处理. ...
- H5坦克大战之【玩家控制坦克移动】
自从威少砍下45+11+11的大号三双之后,网上出现了各种各样的神级段子,有一条是这样的: 威少:Hey,哥们,最近过得咋样! 浓眉:对方开启了好友验证,请先添加对方为好友 威少:...... JRS ...
- Ajax实现原理,代码封装
都知道实现页面的异步操作需要使用Ajax,那么Ajax到是怎么实现异步操作的呢? 首先需要认识一个对象 --> XMLHttpRequest 对象 --> Ajax的核心.它有许多的属性和 ...
- JavaScript学习笔记(三)——this、原型、javascript面向对象
一.this 在JavaScript中this表示:谁调用它,this就是谁. JavaScript是由对象组成的,一切皆为对象,万物皆为对象.this是一个动态的对象,根据调用的对象不同而发生变化, ...
- jQuery遮罩层登录对话框
用户登录是许多网站必备的功能.有一种方式就是不管在网站的哪个页面,点击登录按钮就会弹出一个遮罩层,显示用户登录的对话框.这用方式比较灵活方便.而现在扫描二维码登录的方式也是很常见,例如QQ.微信.百度 ...
- Android 添加ActionBar Buttons
一.在res/menu文件夹下创建Xml文件 跟标签为menu,设置item <?xml version="1.0" encoding="utf-8"?& ...
- swift 中关于open ,public ,fileprivate,private ,internal,修饰的说明
关于 swift 中的open ,public ,fileprivate,private, internal的区别 以下按照修饰关键字的访问约束范围 从约束的限定范围大到小的排序进行说明 open,p ...
- 信息安全-1:python之playfair密码算法详解[原创]
转发注明出处: http://www.cnblogs.com/0zcl/p/6105825.html 一.基本概念 古典密码是基于字符替换的密码.加密技术有:Caesar(恺撒)密码.Vigenere ...
- [每日Linux]Linux下xsell和xftp的使用
实验缘由: 1.xsell在Linux下的作用就是远程登录的一个界面,也就是实现访问在Windows下访问Linux服务器的功能.之前在数据挖掘实验中因为自己电脑的内存不够,曾经使用过实验室的服务器跑 ...
- C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解
前言:已经有一个月没写点什么了,感觉心里空落落的.今天再来篇干货,想要学习Webapi的园友们速速动起来,跟着博主一起来学习吧.之前分享过一篇 C#进阶系列——WebApi接口传参不再困惑:传参详解 ...