<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article  PUBLIC '-//OASIS//DTD DocBook XML V4.4//EN'  'http://www.docbook.org/xml/4.4/docbookx.dtd'><article><articleinfo><title>OpenWrtNAS</title><revhistory><revision><revnumber>10</revnumber><date>2011-11-06 13:15:05</date><authorinitials>ClauzClauz</authorinitials></revision><revision><revnumber>9</revnumber><date>2011-11-06 13:11:05</date><authorinitials>ClauzClauz</authorinitials></revision><revision><revnumber>8</revnumber><date>2011-11-06 13:07:32</date><authorinitials>ClauzClauz</authorinitials></revision><revision><revnumber>7</revnumber><date>2011-11-06 13:00:50</date><authorinitials>ClauzClauz</authorinitials></revision><revision><revnumber>6</revnumber><date>2011-11-06 12:51:58</date><authorinitials>ClauzClauz</authorinitials></revision><revision><revnumber>5</revnumber><date>2011-11-06 12:47:08</date><authorinitials>ClauzClauz</authorinitials></revision><revision><revnumber>4</revnumber><date>2011-11-06 12:13:10</date><authorinitials>ClauzClauz</authorinitials></revision><revision><revnumber>3</revnumber><date>2011-11-06 12:11:05</date><authorinitials>ClauzClauz</authorinitials></revision><revision><revnumber>2</revnumber><date>2011-11-06 11:56:17</date><authorinitials>ClauzClauz</authorinitials></revision><revision><revnumber>1</revnumber><date>2011-11-06 11:46:38</date><authorinitials>ClauzClauz</authorinitials></revision></revhistory></articleinfo><section><title>How to make a Samba NAS with an OpenWrt router</title><para>This express howto describes how to create a <ulink url="https://secure.wikimedia.org/wikipedia/en/wiki/Network-attached_storage">NAS</ulink> to share files inside a network out of an USB-capable <ulink url="http://ninux.org/OpenWrtNAS/OpenWrt#">OpenWrt</ulink> router and an external hard drive. </para><para><inlinemediaobject><imageobject><imagedata depth="300" fileref="http://ninux.org//OpenWrtNAS?action=AttachFile&amp;do=get&amp;target=tplinknas.jpg"/></imageobject><textobject><phrase>tplinknas.jpg</phrase></textobject></inlinemediaobject> <inlinemediaobject><imageobject><imagedata depth="300" fileref="http://ninux.org//OpenWrtNAS?action=AttachFile&amp;do=get&amp;target=tplinkfrombehind.jpg"/></imageobject><textobject><phrase>tplinkfrombehind.jpg</phrase></textobject></inlinemediaobject> </para><section><title>Ingredients</title><itemizedlist><listitem><para><ulink url="http://ninux.org/OpenWrtNAS/OpenWrt#">OpenWrt</ulink> router with USB port (such as TP-Link WR1043ND) already flashed with <ulink url="http://ninux.org/OpenWrtNAS/OpenWrt#">OpenWrt</ulink> Backfire and connected to the Internet </para></listitem><listitem><para>external USB hard drive with a single ext4 partition </para></listitem><listitem><para>cables to connect and power the hardware </para></listitem></itemizedlist></section><section><title>Steps</title><screen><![CDATA[root@QQ:~# opkg update
]]><![CDATA[
root@QQ:~# opkg install kmod-fs-ext4
]]><![CDATA[
root@QQ:~# opkg install kmod-usb-storage
]]><![CDATA[
root@QQ:~# opkg install block-mount]]></screen><itemizedlist><listitem><para>plug the disk into the router's USB port </para></listitem></itemizedlist><screen><![CDATA[root@QQ:~# dmesg
...
SCSI subsystem initialized
Initializing USB Mass Storage driver...
scsi0 : SCSI emulation for USB Mass Storage devices
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usb-storage: device found at 2
usb-storage: waiting for device to settle before scanning
scsi 0:0:0:0: Direct-Access     WD       Ext HDD 1021     2021 PQ: 0 ANSI: 4
sd 0:0:0:0: [sda] 1953519616 512-byte logical blocks: (1.00 TB/931 GiB)
usb-storage: device scan complete
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 17 00 10 08
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Assuming drive cache: write through
 sda: sda1
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Attached SCSI disk]]></screen><itemizedlist><listitem><para>be sure that sda1 is the name of your hard disk's partition. </para></listitem><listitem><para>edit /etc/config/fstab </para></listitem></itemizedlist><screen><![CDATA[config global automount
        option from_fstab 1
        option anon_mount 1
]]><![CDATA[
config global autoswap
        option from_fstab 1
        option anon_swap 0
]]><![CDATA[
config mount
        option target   /mnt                     
        option device   /dev/sda1
        option fstype   ext4   
        option options  rw,sync
        option enabled  1    
        option enabled_fsck 0
           
config swap                      
        option device   /dev/sda2
        option enabled  0]]></screen><itemizedlist><listitem><para>then: </para></listitem></itemizedlist><screen><![CDATA[root@QQ:~# /etc/init.d/fstab enable
root@QQ:~# /etc/init.d/fstab start
WARNING: /lib/functions/fsck not found
root@QQ:~# mount
...
/dev/sda1 on /mnt type ext4 (rw,sync,relatime,barrier=1,data=ordered)]]></screen><itemizedlist><listitem><para>now let's samba: </para></listitem></itemizedlist><screen><![CDATA[root@QQ:~# mkdir /mnt/share
root@QQ:~# opkg install samba3]]></screen><itemizedlist><listitem><para>edit /etc/config/samba </para></listitem></itemizedlist><screen><![CDATA[config samba
        option 'name'                   'QQ'     
        option 'workgroup'              'openwrt'
        option 'description'    'QQ NAS' 
        option 'homes'                  '0'  
]]><![CDATA[
config sambashare
        option 'name'                   'share'      
        option 'path'                   '/mnt/share'
        option 'read_only'              'read'
        option 'guest_ok'               'yes'
        option 'create_mask'    '0700'
        option 'dir_mask'               '0700'
        #option 'users'                 'abc']]></screen><itemizedlist><listitem><para>and enable the samba server: </para></listitem></itemizedlist><screen><![CDATA[root@QQ:~# /etc/init.d/samba enable
root@QQ:~# /etc/init.d/samba start 
root@QQ:~# ]]></screen><itemizedlist><listitem><para>you can now put all the stuff that you want to share inside the harddisk's 'share' directory <inlinemediaobject><imageobject><imagedata depth="16" fileref="http://ninux.org//moin_static197/ninuxtheme02/img/biggrin.png" width="16"/></imageobject><textobject><phrase>:D</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist></section><section><title>Troubleshooting</title><section><title>external hard disk not mounted</title><itemizedlist><listitem><para>If you cannot access the samba mount from a PC or if by issuing the mount command the drive does not show up in the list then edit /etc/init.d/fstab and add a &quot;sleep 15&quot; command in the start() function as follows: </para></listitem></itemizedlist><screen><![CDATA[start() {                                                                           
        . /lib/functions/mount.sh                                                   
                                                                                    
        sleep 15                                                                    
                                                                                    
        config_load fstab                                                           
        mkdir -p /var/lock                                                          
        lock -w /var/lock/fstab.lck && {                                            
                lock /var/lock/fstab.lck                                                                                        
                [ -e /tmp/fstab ] || {                                                                                          
                        echo '# WARNING: this is an auto generated file, please use uci to set defined filesystems' > /tmp/fstab
                }                                                                                                               
                lock -u /var/lock/fstab.lck                                                                                     
        }                                                                                                                       
        config_foreach do_swapon swap                                                                                           
        config_foreach do_mount mount                                                                                           
        config_foreach do_swapon swap  # do swap a second time so that swap on filesystems is enabled                           
}                    ]]></screen></section></section><section><title>Links</title><itemizedlist><listitem><para><ulink url="http://wiki.openwrt.org/doc/uci/fstab"/> </para></listitem><listitem><para><ulink url="http://wiki.openwrt.org/doc/howto/cifs.server"/> </para></listitem><listitem><para><ulink url="http://wiki.openwrt.org/doc/uci/samba"/> </para></listitem></itemizedlist></section></section></article>