OpenWrt搭建文件共享服務(wù)(NAS)

1. 硬盤(pán)掛載

1.1 安裝USB、fs的內(nèi)核模塊

opkg update
opkg install kmod-usb-core kmod-usb-storage kmod-usb-ohci kmod-fs-ext2 kmod-fs-ext3 kmod-fs-vfat kmod-fuse ntfs-3g

1.2 配置自動(dòng)掛載

  • 安裝mount工具
    opkg install mount-utils

  • 編輯配置文件
    vi /etc/hotplug.d/block/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
  • 修改可執(zhí)行權(quán)限
    chmod 777 /etc/hotplug.d/block/10-mount

2. 硬盤(pán)自動(dòng)休眠

2.1. 安裝hdparm

opkg update
opkg install hdparm

2.2. hdparm測(cè)試:

hdparm -S 60 /dev/sda    (放到開(kāi)機(jī)啟動(dòng)項(xiàng)就可以每次開(kāi)機(jī)都生效?。?hdparm -y /dev/sda           (這個(gè)命令是立即休眠,測(cè)試硬盤(pán)是否休眠成功。)

說(shuō)明:hdparm -S 60 /dev/sda 設(shè)置超時(shí)值(5分鐘)使硬盤(pán)進(jìn)入休眠模式(省電模式)(這個(gè) S數(shù)值/12=分鐘); /dev/sda 為掛載的硬盤(pán)路徑,ls /dev/sda查看你的盤(pán)符。執(zhí)行完hdparm -S 60 /dev/sda 這個(gè)命令時(shí)你的路由已經(jīng)設(shè)置為5分鐘休眠了。(注:5分鐘硬盤(pán)無(wú)操作時(shí)省電模式,休眠時(shí)接到讀寫(xiě)命令會(huì)自動(dòng)喚醒進(jìn)入工作模式)

附:** Linux hdparm 命令**
顯示與設(shè)定硬盤(pán)的參數(shù),語(yǔ)法:hdparm [-CfghiIqtTvyYZ][-a <快取分區(qū)>][-A <0或1>][-c ][-d <0或1>][-k <0或1>][-K <0或1>][-m <分區(qū)數(shù)>][-n <0或1>][-p ][-P <分區(qū)數(shù)>][-r <0或1>][-S <時(shí)間>][-u <0或1>][-W <0或1>][-X <傳輸模式>][設(shè)備]
  補(bǔ)充說(shuō)明:hdparm可檢測(cè),顯示與設(shè)定IDE或SCSI硬盤(pán)的參數(shù)。
  測(cè)試各硬盤(pán)讀取速度判斷硬盤(pán)故障
  在服務(wù)端命令窗口中執(zhí)行如下命令
  hdparm -t /dev/hda (IDE硬盤(pán))
  hdparm -t /dev/sda (SATA、SCSI、硬RAID卡陣列)
  hdparm -t /dev/md0 (軟RAID設(shè)備)
  測(cè)試結(jié)果在空載情況下應(yīng) >40M/s ,在負(fù)載情況下平均應(yīng) > 20M/s 為正常,如測(cè)試結(jié)果極低則需要進(jìn)一步使用硬盤(pán)專用檢測(cè)工具測(cè)試是否為硬盤(pán)故障。
  參數(shù):

  -a<快取分區(qū)> 設(shè)定讀取文件時(shí),預(yù)先存入塊區(qū)的分區(qū)數(shù),若不加上<快取分區(qū)>選項(xiàng),則顯示目前的設(shè)定。
  -A<0或1> 啟動(dòng)或關(guān)閉讀取文件時(shí)的快取功能。
  -c 設(shè)定IDE32位I/O模式。
  -C 檢測(cè)IDE硬盤(pán)的電源管理模式。
  -d<0或1> 設(shè)定磁盤(pán)的DMA模式。
  -f 將內(nèi)存緩沖區(qū)的數(shù)據(jù)寫(xiě)入硬盤(pán),并清楚緩沖區(qū)。
  -g 顯示硬盤(pán)的磁軌,磁頭,磁區(qū)等參數(shù)。
  -h 顯示幫助。
  -i 顯示硬盤(pán)的硬件規(guī)格信息,這些信息是在開(kāi)機(jī)時(shí)由硬盤(pán)本身所提供。
  -I 直接讀取硬盤(pán)所提供的硬件規(guī)格信息。
  -k<0或1> 重設(shè)硬盤(pán)時(shí),保留-dmu參數(shù)的設(shè)定。
  -K<0或1> 重設(shè)硬盤(pán)時(shí),保留-APSWXZ參數(shù)的設(shè)定。
  -m<磁區(qū)數(shù)> 設(shè)定硬盤(pán)多重分區(qū)存取的分區(qū)數(shù)。
  -n<0或1> 忽略硬盤(pán)寫(xiě)入時(shí)所發(fā)生的錯(cuò)誤。
  -p 設(shè)定硬盤(pán)的PIO模式。
  -P<磁區(qū)數(shù)> 設(shè)定硬盤(pán)內(nèi)部快取的分區(qū)數(shù)。
  -q 在執(zhí)行后續(xù)的參數(shù)時(shí),不在屏幕上顯示任何信息。
  -r<0或1> 設(shè)定硬盤(pán)的讀寫(xiě)模式。
  -S<時(shí)間> 設(shè)定硬盤(pán)進(jìn)入省電模式前的等待時(shí)間。
  -t 評(píng)估硬盤(pán)的讀取效率。
  -T 平谷硬盤(pán)快取的讀取效率。
  -u<0或1> 在硬盤(pán)存取時(shí),允許其他中斷要求同時(shí)執(zhí)行。
  -v 顯示硬盤(pán)的相關(guān)設(shè)定。
  -W<0或1> 設(shè)定硬盤(pán)的寫(xiě)入快取。
  -X<傳輸模式> 設(shè)定硬盤(pán)的傳輸模式。
  -y 使IDE硬盤(pán)進(jìn)入省電模式。
  -Y 使IDE硬盤(pán)進(jìn)入睡眠模式。
  -Z 關(guān)閉某些Seagate硬盤(pán)的自動(dòng)省電功能。

3. 安裝文件共享服務(wù)(samba)

關(guān)于samba:Samba是在Linux和UNIX系統(tǒng)上實(shí)現(xiàn)SMB協(xié)議的一個(gè)免費(fèi)軟件,由服務(wù)器及客戶端程序構(gòu)成。而SMB(Server Messages Block,信息服務(wù)塊)是一種在局域網(wǎng)上共享文件和打印機(jī)的一種通信協(xié)議,它為局域網(wǎng)內(nèi)的不同計(jì)算機(jī)之間提供文件及打印機(jī)等資源的共享服務(wù)。

3.1. 安裝Samba服務(wù)

執(zhí)行如下命令:

opkg update
opkg install samba36-server

注:上面的 samba36-server 是本文發(fā)布時(shí)的Samba服務(wù)軟件包名稱,其中數(shù)字36表示3.6.X版本,以后Samba版本更新的話可能找不到這個(gè)軟件包,這個(gè)時(shí)候執(zhí)行 opkg list | grep samba 搜一下就好。

3.2. 配置samba

3.2.1 掛載點(diǎn)配置

方式一:luci控制臺(tái)


Paste_Image.png

方式二:修改配置文件
配置文件路徑為 /etc/samba/smb.conf ,將 [global] 中的 invalid users = root 注掉,修改后文件內(nèi)容如下:

[global]
netbios name = |NAME|
display charset = |CHARSET|
interfaces = |INTERFACES|
server string = |DESCRIPTION|
unix charset = |CHARSET|
workgroup = |WORKGROUP|
browseable = yes
deadtime = 30
domain master = yes
encrypt passwords = true
enable core files = no
guest account = nobody
guest ok = yes
\# invalid users = root
local master = yes
load printers = no
map to guest = Bad User
max protocol = SMB2
min receivefile size = 16384
null passwords = yes
obey pam restrictions = yes
os level = 20
passdb backend = smbpasswd
preferred master = yes
printable = no
security = user
smb encrypt = disabled
smb passwd file = /etc/samba/smbpasswd
socket options = TCP_NODELAY IPTOS_LOWDELAY
syslog = 2
use sendfile = yes
writeable = yes
3.2.2 配置共享目錄

方式一:luci控制臺(tái)


Paste_Image.png

方式二:修改配置文件/etc/samba/smb.conf
例如要添加一個(gè)名稱為 airport 的共享,共享路徑為 /mnt/usb,允許root用戶讀寫(xiě)操作,在 /etc/samba/smb.conf 配置文件中增加如下信息:

[airport]
        path = /mnt/usb
        valid users = root
        read only = no
        guest ok = yes
        create mask = 0777
        directory mask = 0777
3.2.3 配置共享密碼

Samba的共享用戶密碼是單獨(dú)配置的,執(zhí)行下面的命令將root添加為共享用戶,同時(shí)按照命令提示設(shè)置共享密碼。

smbpasswd -a root

3.3. 啟動(dòng)samba

配置完成后,啟動(dòng)Samba服務(wù)即可。
/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

4 使用

  • Mac
    打開(kāi)finder找到如下:
    Paste_Image.png

如果沒(méi)找到,則cmd+k


Paste_Image.png
  • Android
    ES文件管理器:局域網(wǎng)-掃描
    圖片發(fā)自簡(jiǎn)書(shū)App

    魅族內(nèi)置文件瀏覽器:網(wǎng)上鄰居
    S70418-235633(1).jpg

    S70418-235650.jpg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容