Setting Up A Low Cost NAS Using Tomato
In this post I’ll describe the steps needed to setup a low cost NAS using the Tomato firmware on the Asus 520gu. This should work with Asus 500 as well.
If you have no idea what a NAS is, think of it as a shared storage device within your home network that you can access via an ip address to store and retrieve documents, wirelessly. If you and your wife/girlfriend/partner have two separate computers, you could store, say vacation photos in this shared storage. This device would appear as a folder/drive on both a Mac and a PC. You can simply drag and drop files to it.
What you need:
- Asus WL-520gu or Asus WL-500g
- An external usb storage device either powered or flash based
A note about our homebrew NAS…
I’m going to tell what most don’t about setting up a USB Wifi NAS. It is pretty cool to put to good use your spare usb drive or external harddisk. But don’t expect blazing speeds.
Storing files, documents, music, photos are fine. But if you are thinking of doing a hard drive backup or store full length videos, the speeds may not be acceptable.
But don’t let that discourage you! It is still pretty cool! We use it as a back up storage device for our photos and serves that purpose pretty well!
Formatting the USB drive
Tomato supports these filesystems:
FAT32 (Windows/Mac/Linux)
FAT16 (Windows/Mac/Linux)
EXT2 (Linux)
EXT3 (Linux)
When you buy a hard drive, it is most likely formatted to FAT32 since most operating systems support it without having to install additional drivers.
So why pick another filesystem?
FAT32 is by Microsoft! If that doesn’t convince you, you have a file size limitation of 4GB, plus FAT32 provides no security and in general quite inefficient.
FAT16. Don’t even consider it! This was the standard used by old MS DOS OS.
EXT2 is mostly used by Linux Operating Systems. Neither Windows nor Mac can read EXT2 drives natively
EXT3 is EXT2 with journalling enabled. Without the technobabble, that means EXT3 helps prevents file corruption in case of an non graceful system shutdown (if you simply pull the USB drive out without unmounting it first)
EXT3 is most preferred. But the disadvantage is once formatted to this format, you can’t plug in your USB drive to your PC or Mac and try to read or write files. You need a Linux system to do that. (There are ways to get PCs and Macs recognize EXT2/EXT3 drives, but that involves additional work).
The biggest advantage of FAT32 is most drives come preformatted to this format. You can plug in the USB drive to your Mac or PC and you will be able to see this drive as another mount point.
What I’ve done is partitioned my old Seagate 160GB hard drive to both FAT32 and EXT3. They now appear as two mount points on both Windows and Mac.
If all this is too technical, just plug in darn drive into the ASUS router! Chances are that it’ll just work!
Getting Started
Set up Tomato on the Asus router
In the admin screen goto USB and NAS

Your config should look like the screenshot above with the exception of Attached Devices. Don’t attach the USB device yet. Save the configuration above and restart the router. Now, come back to this screen and you should see your storage device listed.
If the device shows up as not mounted, make sure the hard drive is formatted to either FAT or EXT and not HFS+ (Mac) or NTFS(XP). Both are not supported and the hard drive will have to be reformatted. Restart the router with the USB drive plugged in. Check this screen, the device should show up as mounted.
If you’ve gotten this far, you are almost there! Getting the device to mount is usually the biggest hurdle. Now using telnet login to 192.168.1.1:
Trying 192.168.1.1...
Connected to davinci.
Escape character is '^]'.
davinci login: root
Password:
Tomato v1.23.8615 ND USB
BusyBox v1.12.3 (2009-01-28 23:18:53 EST) built-in shell (ash)
Enter 'help' for a list of built-in commands.
root@davinci:/tmp/home/root# cd /mnt
root@davinci:/tmp/mnt# ls
disc0_1 disc0_2
root@davinci:/tmp/mnt#
disc0_1 and disc0_2 are the partitions in my USB drive. If you have only one partition, you’ll see only one disc. Note down this info.
Go to File Sharing under USB and NAS. Enter the info as in this screenshot below:

For each directory under /mnt, give a share name and description and save. Set the code page and workgroup name (Windows default is workgroup). Set the access level to Read/Write. Save.
Now on a Mac:
Open Finder
Goto Go..Connect to Server

You will now be displayed the mount points and your share will appear under ‘Shared’ in Finder!
On a PC:
Your shares should appear automatically in Network Neighborhood with the share name you specified
Now you drag and drop files to your NAS device over a wifi network. Pretty cool huh?!
Incoming search terms:
- tomato nas
- tomato usb
- tomato usb nas
- tomato file sharing
- tomatousb screenshots
- tomatousb nas
- tomatousb
- tomato print server
- tomato usb file sharing
- tomato usb storage
77 Comments
I was sucessful at setting up the NAS on a Asus 520gu. However, I just recently reformatted my HDD from fat32 to ext3. Now, I am having trouble accessing my files. I know it has to do with permissions. On my Ubuntu machine, I used sudo chown –R username:username /media/movies and I was able to access my movies files, but I don’t know how to set this up in tomato. I am assuming you need a script in the “Init” section before accessing the HDD. I am able to mount the HDD. There are 2 partitions (ext3 & NTFS). I can access the files on the NTFS partition. I also have a swap partition. I’ve searched a few forums and google, but can’t find any help. Thanks!
Hi,
I am currently using D-Link DNS-321 as a NAS, but it’s woefully slow. I am streaming HD videos to PS3, which requires upto 20Mbps, however, DNS-321 tops out at 10Mbps.
If I setup a wl-520gu with a usb connected hard-drive, what are the expected read/write speeds?
Thanks for your response.
HK
Hi,
I wonder if there are available programs out there that can also do mirroring (back up). It’s like hooking up 2 hard disk (HD) in your Asus router. First HD is for NAS. Second HD will act as back up of the First HD in case it fails.
I formatted my drive into two partitions, one fat32 and the other ntfs. I can mount my fat32 partition easy enough in tomato, but I cannot for the life of me figure out how to access the drive from my computer. I am using windows 7 ultimate 64bit with the Asus 520gu. Ive gone under network and see the router itself and that is it. Clicking on the router just brings up access denied. Can anyone help me get this working?
Thank you in Advance,
Tim
I have my HD plug into usb, all works well, does any have
a script file to spin down the HD after not being use for
a while.
I setup my external hdd as a NAS via these instructions and works well. Is it possible to access my drive outside my network, say for example, from my work? Can anyone point me in the direction of instructions for how to do this?
I’m trying to set up an external HD as a NAS, I have successfully mounted it but for some reason the password and user name is different for my router on telnet. It is a asus 520gu, any way I can find the user and pass? Thanks Matt
Hi, just got my asus wl-500g v2 and installed tomato following the guide. Thanks for the great tutorials. However, I got some problems with the file sharing. I was able to connect my 4G flash drive to the router and mount it as a network drive under windows xp. The problem is I can only map the share folder (which is /mnt by default). The system can not save the new share name and directory I added. After I click the save button, it says ‘settings saved, some services are restarted’. Then I refresh the page and everything is gone. I can read the files under windows but not write to the flash drive (fat32).
I have tried several different builds like 1.28.8748.ext, 1.28.8750.ext and tomato-K26USB-1.28.9050MIPSR1-beta20-Ext. All three have the same problem for me. I’ve spent several hours on this and still could not fix it. Any suggestions will be appreciated. Thanks a lot!
GX
UPDATE: I was able to write to flash drive by adding samba script to the “Samba custom configuration”. However, the webpage settings are still not working for me.
I am using tomato 1.27
My FAT formatted flash drive can’t be mounted.
Check the screenshot
http://img833.imageshack.us/i/failedmount.jpg/
Any advice how I can make it mounted?
TIA
I have the same question as Matt about the username and password for the router on telnet. Can anyone help with this?
Are you having trouble accessing the router after flashing to tomato? Seems like Matts post was an issue with accessing the mounted drive. If it is the router, the default is user: admin pass: admin. If it is the drive you are trying to connect to try this
\\Default\nas media\Mount Name\Partition Name
I was having a problem accessing the mounted drive. But I went into the router and found my username and password and that worked. Thanks for your help.