热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

OpenWrt搭建文件共享服务——基于samba

OpenWrt搭建文件共享服务——基于samba1.安装USB和fs内核模块opkgupdateopkginstallkmod-usb-corekmod-usb-storagekm
OpenWrt搭建文件共享服务——基于samba

1.安装USB和fs内核模块

opkg update
opkg install kmod-usb-core kmod-usb-storage kmod-usb-ohci kmod-fs-ext4 kmod-fs-vfat kmod-fuse ntfs-3g
##注意:1.kmod-fs-ext2和kmod-fs-ext3已经无法正常获取,但是被komd-fs-ext4所包含了;

注意:1.kmod-fs-ext2和kmod-fs-ext3已经无法正常获取,但是被komd-fs-ext4所包含了;

2.配置自动挂载

opkg install mount-utils block-mount
##注意:1.block-extroot和block-hotplug已经合并到block-mount中,因此,安装block-hotplug后也会一并安装其他两个。

安装成功后,产生文件/etc/hotplug.d/block/10-mount。首先将原文件10-mount备份,重命名成 /etc/hotplug.d/block/10-mount.def;然后新建文件;最后将以下脚本内容复制粘贴到文件中。

## 备份文件
cp ./10-mount ./10-mount.def
## 新建文件
vim 10-mount
## 复制以下内容
#!/bin/sh
#Copyright (C) 2009 OpenWrt.org (C) 2010 OpenWrt.org.cn
blkdev=`dirname $DEVPATH`
if [ `basename $blkdev` != "block" ]; then
device=`basename $DEVPATH`
case "$ACTION" in
add)
mkdir -p /mnt/$device
# vfat & ntfs-3g check
if [ `which fdisk` ]; then
isntfs=`fdisk -l | grep $device | grep NTFS`
isvfat=`fdisk -l | grep $device | grep FAT`
isfuse=`lsmod | grep fuse`
isntfs3g=`which ntfs-3g`
else
isntfs=""
isvfat=""
fi
# mount with ntfs-3g if possible, else with default mount
if [ "$isntfs" -a "$isfuse" -a "$isntfs3g" ]; then
ntfs-3g -o nls=utf8 /dev/$device /mnt/$device
elif [ "$isvfat" ]; then
mount -t vfat -o iocharset=utf8,rw,sync,umask=0000,dmask=0000,fmask=
else
mount /dev/$device /mnt/$device
fi
if [ -f /dev/${device}/swapfile ]; then
# make swap space
mkswap /dev/${device}/swapfile
swapon /dev/${device}/swapfile
fi
;;
remove)
if [ -f /dev/${device}/swapfile ]; then
swapoff /dev/${device}/swapfile
fi
umount /dev/$device
;;
esac
fi

完成以上步骤之后,就可以:路由器先上电,然后插上U盘并自动挂载。如果想要兼容:路由器先插上U盘,然后上电并自动挂载这种场景的话。还需要做以下设置:

使用fstab机制,修改/etc/config/fstab中的option anon_mount ‘1’:

config 'global'
option anon_swap '0'
option anon_mount '1' ##关键
option auto_swap '1'
option auto_mount '1'
option delay_root '5'
option check_fs '0'

3.设置硬盘自动休眠

## 安装hdparm
opkg update
opkg install hdparm
## hdparm休眠测试
hdparm -S 60 /dev/sda ##设置超时值(5分钟)使硬盘进入休眠模式(省电模式)。放到开机启动项就可以每次开机都生效
hdparm -y /dev/sda ##这个命令是立即休眠,测试硬盘是否休眠成功。休眠时接到读写命令会自动唤醒进入工作模式
## 读盘速度测试
hdparm -t /dev/hda ##IDE硬盘
hdparm -t /dev/sda ##SATA、SCSI、硬RAID卡阵列
hdparm -t /dev/md0 ##软RAID设备
## 注意:测试结果在空载情况下应 >40M/s ,在负载情况下平均应 > 20M/s 为正常,如测试结果极低则需要进一步使用硬盘专用检测工具测试是否为硬盘故障。

以下提供其他参数的解释

-a<快取分区> 设定读取文件时,预先存入块区的分区数,若不加上<快取分区>选项,则显示目前的设定。
  -A<0或1> 启动或关闭读取文件时的快取功能。
  -c 设定IDE32位I/O模式。
  -C 检测IDE硬盘的电源管理模式。
  -d<0或1> 设定磁盘的DMA模式。
  -f 将内存缓冲区的数据写入硬盘,并清楚缓冲区。
  -g 显示硬盘的磁轨,磁头,磁区等参数。
  -h 显示帮助。
  -i 显示硬盘的硬件规格信息,这些信息是在开机时由硬盘本身所提供。
  -I 直接读取硬盘所提供的硬件规格信息。
  -k<0或1> 重设硬盘时,保留-dmu参数的设定。
  -K<0或1> 重设硬盘时,保留-APSWXZ参数的设定。
  -m<磁区数> 设定硬盘多重分区存取的分区数。
  -n<0或1> 忽略硬盘写入时所发生的错误。
  -p 设定硬盘的PIO模式。
  -P<磁区数> 设定硬盘内部快取的分区数。
  -q 在执行后续的参数时,不在屏幕上显示任何信息。
  -r<0或1> 设定硬盘的读写模式。
  -S<时间> 设定硬盘进入省电模式前的等待时间。
  -t 评估硬盘的读取效率。
  -T 平谷硬盘快取的读取效率。
  -u<0或1> 在硬盘存取时,允许其他中断要求同时执行。
  -v 显示硬盘的相关设定。
  -W<0或1> 设定硬盘的写入快取。
  -X<传输模式> 设定硬盘的传输模式。
  -y 使IDE硬盘进入省电模式。
  -Y 使IDE硬盘进入睡眠模式。
  -Z 关闭某些Seagate硬盘的自动省电功能。

4.安装samba文件共享服务

samba:Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。而SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。

## 安装samba
opkg update
opkg install samba36-server
## 注意:上面的 samba36-server 是本文发布时的Samba服务软件包名称,其中数字36表示3.6.X版本,以后Samba版本更新的话可能找不到这个软件包,这个时候执行 opkg list | grep samba 搜一下就好。

这时,重启一下openwrt系统就可以发现硬盘已经挂载上去了。打开LuCi可以查看或修改挂载点:

《OpenWrt搭建文件共享服务——基于samba》

确认挂载成功之后,可以继续配置共享目录,参考下图

《OpenWrt搭建文件共享服务——基于samba》

如果在LuCi找不到Service选项的话,需要手动安装samba网络共享服务

opkg install luci-app-samba #SAMBA网络共享服务

然后设置共享用户的密码,这里将root添加为共享用户

smbpasswd -a root

最后启动服务

/etc/init.d/samba start

以下提供samba操作命令解释

* start Start the service
* stop Stop the service
* restart Restart the service
* reload Reload configuration files (or restart if that fails)
* enable Enable service autostart
* disable Disable service autostart

5.使用

在安卓手机可以通过ES文件浏览器的局域扫描完成客户端操作。

6.参考文献

[1] OpenWrt搭建文件共享服务(NAS)
[2] OpenWrt挂载USB存储设备
[3] OpenWrt挂载U盘(NTFS)并在网上邻居共享访问


推荐阅读
  • 本文详细介绍了在Linux虚拟化部署中进行VLAN配置的方法。首先要确认Linux系统内核是否已经支持VLAN功能,然后配置物理网卡、子网卡和虚拟VLAN网卡的关系。接着介绍了在Linux配置VLAN Trunk的步骤,包括将物理网卡添加到VLAN、检查添加的VLAN虚拟网卡信息以及重启网络服务等。最后,通过验证连通性来确认配置是否成功。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 本文详细介绍了cisco路由器IOS损坏时的恢复方法,包括进入ROMMON模式、设置IP地址、子网掩码、默认网关以及使用TFTP服务器传输IOS文件的步骤。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • Linux下安装免费杀毒软件ClamAV及使用方法
    本文介绍了在Linux系统下安装免费杀毒软件ClamAV的方法,并提供了使用该软件更新病毒库和进行病毒扫描的指令参数。同时还提供了官方安装文档和下载地址。 ... [详细]
  • 【重识云原生】第四章云网络4.8.3.2节——Open vSwitch工作原理详解
    2OpenvSwitch架构2.1OVS整体架构ovs-vswitchd:守护程序,实现交换功能,和Linux内核兼容模块一起,实现基于流的交换flow-basedswitchin ... [详细]
  • 安装oracle软件1创建用户组、用户和目录bjdb节点下:[rootnode1]#groupadd-g200oinstall[rootnode1]#groupad ... [详细]
  • HSRP热备份路由器协议的应用及配置
    本文介绍了HSRP热备份路由器协议的应用及配置方法,包括设计目标、工作原理、配置命令等。通过HSRP协议,可以实现在主动路由器故障时自动切换到备份路由器,保证网络连通性。此外,还介绍了R1和R2路由器的配置方法以及Sw1和Sw2交换机的配置方法,最后还介绍了测试连通性和路由追踪的方法。 ... [详细]
  • 如何使用PLEX播放组播、抓取信号源以及设置路由器
    本文介绍了如何使用PLEX播放组播、抓取信号源以及设置路由器。通过使用xTeve软件和M3U源,用户可以在PLEX上实现直播功能,并且可以自动匹配EPG信息和定时录制节目。同时,本文还提供了从华为itv盒子提取组播地址的方法以及如何在ASUS固件路由器上设置IPTV。在使用PLEX之前,建议先使用VLC测试是否可以正常播放UDPXY转发的iptv流。最后,本文还介绍了docker版xTeve的设置方法。 ... [详细]
  • 第四讲ApacheLAMP服务器基本配置Apache的编译安装从Apache的官方网站下载源码包:http:httpd.apache.orgdownload.cgi今 ... [详细]
  • IP经常分为内网和外网的,内网IP一般是有路由器分配的,尤其是想公司可能都有各自的内网IP,公用的公网IP。查询内网IP的通用方法是通过doc指令来查询,如ipconfig或者ipconfigall ... [详细]
  • x86 linux的进程调度,x86体系结构下Linux2.6.26的进程调度和切换
    进程调度相关数据结构task_structtask_struct是进程在内核中对应的数据结构,它标识了进程的状态等各项信息。其中有一项thread_struct结构的 ... [详细]
  • Shodan简单用法Shodan简介Shodan是互联网上最可怕的搜索引擎,与谷歌不同的是,Shodan不是在网上搜索网址,而是直接进入互联网的背后通道。Shodan可以说是一款“ ... [详细]
  • 三、寻找恶意IP并用iptables禁止掉找出恶意连接你的服务器80端口的IP,直接用iptables来drop掉它;这里建议写脚本来运行, ... [详细]
author-avatar
性感的aaaaaaaaa_681
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有