I am planning to create a home Linux file server with an old machine I have, but I need some help–I want to do it with Linux, but don’t have much Linux experience. If anyone out there has a link to a nicely written How-To document, I would really appreciate it!
One plus: I would like to be able to set it up in a virtual computer first, so I can see it work before I do it with the hardware, so I will be more likely to know when I run into a wall whether it is a a driver/hardware issue or a software issue.
Leave a comment below!
Rob
Popularity: 2% [?]
Related posts:


I did the same thing a few months ago, it’s working pretty nicely.
The first thing I would suggest to you is to get familiar with Linux. To have a very basic understanding is not hard, and will go a long way to computer educating yourself. Basically be comfortable with the shell. Know how to navigate the filesystem (ls, cd, mv, cp). Know how to log in (ssh). Understand (vaguely is ok) what a shell is and the diff between shells (ie bash, zsh, etc). And MAN PAGES (type “man ” at the command line to read it’s manual, or “man page”).
At this point, you have two main options. If what you want is primarily a FILE server, then it’s easier. If instead you want a file SERVER, there’s more work, but you can generally get more out of it.
If FILE server is your desire (ie, you just want some extra file storage), then your best bet is to just set up a NAS (network-accessable storage) box. For a client, my stepdad used a linux livecd called FreeNAS (http://www.freenas.org/). Basically, you put it on a CD, USB Stick or even a floppy disc, and you boot it up, and voila, instant file server in every way you could ever want (ftp, http, scp/ssh, samba, etc). There are a handful of solutions like that; pick the one that suits you. This would take just a few hours to set up.
If you’d rather have a fully-functional server, then it gets complicated. There are a million different flavours of linux, all with their ups and downs. On an old machine you’d need a lean version of linux. I am using one called Arch (http://www.archlinux.org/), on recomendation of a friend. It’s _very_ lightweight, by default it installs NOTHING except what you need to boot it. So you know you’re not wasting resources, and you know you’re not opening unnecessary security risks. It has an awesome package manager, it’s got a simple organization, and a pretty good support wiki/community
So, for a how-to for Arch Linux (I’m writing htis ont he spot, I make no guarantees):
1) get an arch iso from http://www.archlinux.org and burn to disk
2) boot from that disk.
3) at the login prompt it should give you instructions on how to log in. After that, it should give you instructions on how to run the installer (I believe you type “/arch/install” or something
4) The installer will run. Do everything in order, make sure you READ ALL INSTRUCTIONS, and it’s pretty straightforward
5) towards the end of the installer, it will let you edit all the config files. They should be all properly commented to explain everything. The important file is /etc/rc.conf. This has all your systemwide config info. Specifically it has info wrt networking (Set IP or use DHCP, etc) and what runs on startup (the last line, I believe it begins “DAEMONS = (…”
6) after this is done, log in. Have a look around, or read up on the wiki. Before you’re done though there’s some important stuff.
7) go to /etc/pacman.d/ Pacman is the Package Manager; a centralized, organized way to install a wide variety of common programs. /etc/pacman.d is the configuration for the pacman service (/etc contains config files). Open up the file “mirrorlist” in a text editor such as nano (ie type “nano /etc/pacman.d/mirrorlist”). This is the list of every server you can download updates from. They are ALL commented out by default. Pick one in canada, and uncomment it (delete the hashmark in front of the line). Save, exit nano.
8) do a full system update. Type “pacman -Syu”. -S is sync, means download/update. y means pull fresh data from the pacman server instead of using cached, and u means update system.
9) You’ll probably have to reboot. Do this
10) Now you need to install some packages. Some packages you might be interested in are “sudo” (like runas admin in windows), “ssh” (remote login, also for file serving in SCP), “iptables” (a super awesome firewall, but it’s way too complicated for me to understand, nevermind write a tutorial), “samba” (for windows-compatible SMB filesharing). To install each, type “pacman -Sy ”
Each of those programs has soem specific setup associated with it, but I can’t recall offhand enough to write a tutorial. For a smart cookie such as youyrself it should be easy enough to figure out.
Feel free to ask any questions necessary!
-Tim
Thanks so much Tim! That’s all awesome! I have the basic understanding of linux that you mentioned–used it enough in my CS degree to get that much. Just never set up a box at home.
I had seen FreeNas.com and was wondering about it–I appreciate the endorsement! I think I will start with that and see how it goes.
Did you have any experience installing as a virtual PC to test it first? Did it work?
Yes, actually. For my AI homework, we write stuff in Prolog, which apparently doesn’t want to be installed in OSX Snow Leopard. So, I had to set up a virtual machine (using virtualbox, by virtue of it being free), and installed arch on that. It was really easy, set up in an hour or so, yeah. It worked fine! The only problem was in me not understanding how virtualbox does device passthrough. But yeah, it worked flawlessly!
Found a nice install guide for installing FreeNAS on VirtualBox:
http://www.jamescochran.org/2009/01/27/freenas-installation/
Got it working!
Rob