Samba filesystem

From DD-WRT Wiki

(Difference between revisions)
Jump to: navigation, search
Revision as of 19:11, 23 April 2009 (edit)
KeithB (Talk | contribs)
m (Allowing General Write Access for Windows Users)
← Previous diff
Revision as of 12:20, 17 November 2009 (edit) (undo)
Baltico (Talk | contribs)
(Running a Samba Server on DD-WRT)
Next diff →
Line 111: Line 111:
See [[HDsamba2]] - a fully automated install and boot script for installing Optware Samba2 with SWAT, and more... on a USB HD. Format you HD, adjust a few settings in the web-GUI, run the install script, and you are up and running. See [[HDsamba2]] - a fully automated install and boot script for installing Optware Samba2 with SWAT, and more... on a USB HD. Format you HD, adjust a few settings in the web-GUI, run the install script, and you are up and running.
 +
 +=== Samba Server - option 4: Samba3 ===
 +Since [http://www.dd-wrt.com/phpBB2/viewtopic.php?p=371978 samba2 has issues with files of size >2Gb and <4Gb] you may want to use [[samba3]].
== Troubleshooting == == Troubleshooting ==

Revision as of 12:20, 17 November 2009

Samba is one of a number of network file systems available to the DD-WRT platform. A network file system allows for sharing the contents of directories or entire drives across a network. In DD-WRT this can work both ways: You can run a Samba server on your main computer and run a client on your router (thus gaining writable storage for the router) or you can use Samba to share a drive connected (typically by USB) to the router among all the computers connected to your network.

Standard and larger versions of DD-WRT contain the Samba/CIFS client. Mini and Micro versions of DD-WRT do not contain Samba/CIFS. See the Wiki page What is DD-WRT?#File Versions.

Contents

Running a Samba client on DD-WRT

  1. Create a SMB network share on the host computer.
    • On Linux, use Samba to create a SMB network share. HOWTO. Also you can find a tutorial specific for JFFS in Configure Samba in Linux
    • On Windows, this is the default file sharing system. Simply right click and select "Sharing and Security" to set up sharing.
    • On MacOS X, go to "Sharing" in the System Preferences and turn on "Windows Sharing" for 10.4 or in 10.5 “Share files and folders using SMB.” from the File Sharing options.
  2. Use the Web Interface and go to the Administration tab.
  3. Enable the Samba FS Automount option (or CIFS Automount). If new options do not appear the "Save Changes" and go back to the page.
  4. Enter the share location in the 'share' field. eg: //192.168.1.160/myshare
  5. In 'user' and 'password' enter the user credentials of a user allowed to access the share.
  6. You may optionally enter a Startscript. For example if you have a script on your share \\lanserver\myshare\startup.sh you enter startup.sh in the 'Startscript' box. This script (/tmp/smbshare/startup.sh on the router) will be executed when the router mounts your share on boot.

You can see sample of startup script on Jffs page.

Mount Manually

You can temporarily mount a share manually via a Telnet/SSH session:

First, insert a necessary kernel module:

insmod /lib/modules/`uname -r`/smbfs.o

Then enter these commands to mount:

mkdir /tmp/Path
smbmount //hostname/Share /tmp/Path/ -o username=<user>,password=<password_user>

Note: If using CIFS, the procedure is slightly different:

insmod cifs
nvram set samba_user="username"
nvram set samba_password="password"
mkdir /tmp/smbshare
mount.cifs //hostname/Share /tmp/smbshare -o username=$(nvram get samba_user),password=$(nvram get samba_password)
  • /tmp/Path/ is the path you want mounted
  • Only /tmp/, /dev/ and potentially /jffs/ are writeable!

Receiving errors like the following seem normal:

 load_client_codepage: filename /usr/lib/codepages/codepage.850 does not exist.
 load_unicode_map: filename /usr/lib/codepages/unicode_map.850 does not exist.
 session request to 192.168.1.99 failed
 Can't get /etc/mtab~ lock filesmbmnt failed: 1

To unmount a share, enter this command in a shell prompt:

 umount /tmp/Path/
 rmdir /tmp/Path/
 rmmod smbfs


Allowing General Write Access for Windows Users

On 4/23/09, DD-WRT User locketine advised: You have to mount the drives as rw for the user "nobody". By default drives are mounted read only for everyone but root. The following link told me what I needed to know. I think using "-o user" is the important part when mounting.

http://www.linuxforums.org/forum/debian-linux-help/79749-mount-fat32-shared-partition-write-permission.html


Note for Windows XP

Windows XP has what is called "simple file sharing" enabled by default. This forces guest access to the share and does not allow permissions (read, write, etc.) based on specific user accounts. If you run into problems getting CIFS to work, consider disabling simple file sharing.

To disable it, go to: My Computer -> Tools -> Folder Options -> View Under Advanced Settings: Uncheck "Use Simple File Sharing" Click Apply, OK

Optionally, run the Network Setup Wizard in Windows Control Panel in order to set up your share(s).

Password Note: Make sure the user account that you wish to access the share has a password. Windows XP will reject any logins over the network which don't use a password.

Note for Windows Server 2003/ Vista/ 7 Beta

Especially on Windows Server 2003, assert that your server accepts NTLM v1.

  1. Goto Start > Run
  2. Type "gpedit.msc" and push enter.
  3. Goto Computer Configuration / Windows Settings / Security Settings / Local Policies / Security Options.
  4. Verify that "Network security: LAN Manager authentication level" is NOT "Send NTLMv2 response only\refuse LM & NTLM" (on Vista Home Premium set HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\LmCompatibilityLevel to 1, because there is no gpedit.msc as in Ultimate )

Running a Samba Server on DD-WRT

If you have a powerfull Router like the Asus WL-500gP(remium) you might want to use the USB 2.0 Ports for HD sharing with Windows Clients.

Samba Server - option 1

The default way - using OpenWRT packages

a) install the USB stuff according to USB_storage
b) activate jffs
c) update the ipkg system with the following command
ipkg update
d) install samba with the following command
ipkg install samba2

samba2 is not a current package.

the samba install requires a libgcc version that is not trivial to find.

Samba Server - option 2

The optware way - using Optware packages

A nice Howto for this is located here Optware
You should really try it the optware way because it works :)

Samba Server - option 3: the easy way

See Slim Samba2 - a stripped down version of Optware Samba2 for use on USB drives, just unpack a .tar.gz file, adjust a few settings in the web-GUI, and you are up and runnig.

See HDsamba2 - a fully automated install and boot script for installing Optware Samba2 with SWAT, and more... on a USB HD. Format you HD, adjust a few settings in the web-GUI, run the install script, and you are up and running.

Samba Server - option 4: Samba3

Since samba2 has issues with files of size >2Gb and <4Gb you may want to use samba3.

Troubleshooting

If you are having issues mounting your share, hopefully the following forum post will help:
Problems mounting with cifs