I daresay there's many of us that have an old PC or two lurking around in the depths of cupboards, or just sitting unused under desks. Articles on what to do with old PCs crop up time and time again, but in this day and age PC's from a few years back with ample hard drive space and specifications in the region of 1Ghz and above seem to be classed as old - I'm not really talking about those. Personally, I think such a machine is still completely usable as a desktop system - I own a couple, and while not being able to run any graphically intensive game at a playable rate, they're more than capable of playing older games, and again more than suitable for day to day office work.

The machine in question for this instructable (my first, so please don't go too harshly!) is around 12-13 years old, and when new ran the latest graphically intensive Windows 95 games at a mind boggling resolution of 800x600. It remained the faithful family computer for quite some time, but it's been sitting doing nothing in my room for a few years now, and I decided it was time to see if it could be put back into action.

I thought of several possibilities other than a file server, and all could be equally valid - a static content web server, a machine for experimenting on, a router, a firewall - all were possibilities. I even thought about using it as a computerized method of controlling my ever expanding train set. However, personally a file server met my needs best - I have no need for a web server, I have a router and firewall, and the train control idea can wait until I've done a bit more research on the subject.

Next, why Gentoo? Yes there's ways to do this using windows, and an article popped up on digg a while back about it if I remember correctly. However, you're looking at reduced performance, security, and increased bloat when going down the windows route - especially for an old machine such as this where an outdated version of windows would have to be used to gain any level of respectable performance. I've gone for Gentoo because it's a distribution designed to be tinkered with, and that's what we'll be doing later. If I was feeling really brave (or indeed you are) you could give LFS a try, but getting that up and running would probably be a series of instructables in itself. Gentoo's not the easiest system to get running, but it's still entirely feasible and there's a huge user base on forums if you get stuck.

So on with the materials list, you will need the following:

An old computer, to use Gentoo this will need to be at least a 486 (My choice is an aging Pentium 90Mhz, S3 Virge graphics card, with 80MB RAM upgraded from an original 16MB.) This should work on anything 486 and above, you could use a 386 (I think) with FreeBSD, but Gentoo should be much flexible and faster as well. Your limit is that defined by the Gentoo minimal install CD, that being 64MB of RAM and at least a 486. The biggest issue here is probably going to be RAM, but you can probably pick up some cheap old sticks on ebay for not a lot.

A network card - my PC didn't have one originally installed, so I've gone with a basic 10/100 Belkin card. Gigabit is overkill here, you're not going to be looking at anywhere near those speeds with a low end computer like this.

A new hard disk - being an old PC, this will almost definitely not have the space required that we need for a file server. It doesn't need to be huge by today's standards though, in fact it can be tiny - I've opted for a spare 40GB model I've got lying around. A word of warning however for those that aren't aware - the older the PC, the smaller the chances of the BIOS recognizing the drive - mine didn't. Gentoo should still recognize the drive anyway (though I can't guarantee this, it worked for me) but this makes booting into your system a right pig. We'll try to address this issue later.

A CD-ROM drive - if your computer hasn't got one, you should be able to borrow one off another computer temporarily.

The ability to leave your computer on for quite a while - Gentoo compiles everything from source, which is fantastic for speed optimizations once it's all done, but it means it takes a while in doing it. Technically speaking you don't HAVE to leave it on, but it makes it a heck of a lot easier if you do.

Step 1: Cleaning and Stressing

If you're going to be relying on your server to any extent, you'll want to make sure it doesn't collapse out or give up suddenly, and this is where this step comes in. Some may be tempted to skip it, and to be honest if you know your system is completely fine then you're probably OK skipping this step. However, I'd personally still recommend it.

Though please bear in mind, whatever testing you're using, this is an OLD system, please make sure your data is backed up elsewhere - just in case!

First of all, have a mini vacuum cleaner and a can of compressed air handy. Then open the case and (gently) get rid of as much dust and gunk as possible. When you've done this, unplug the various cables, blow the dust away from there and then reseat them (in their original positions!) It's good practice to clean any PC like this regularly, and with something that hasn't been used in a while it's good to give it a fresh start!

Right, next on to testing the system.

I'd recommend StressLinux for this, it's a livecd distribution that's designed to run a series of tests on hardware, and includes memtest. Now if you're in the same situation as me you'd now be thinking something like "I'm stuck with a computer that's completely incapable of booting from CD!" However, all is not lost, we simply need a bit of extra help, and this is where Smart Boot Manager comes in. It's a neat little utility that boots from a floppy, then gives you options to boot from everywhere on your system it can.

Follow the link above to download stresslinux, then burn the ISO image to a CD, being careful to create a disk from the ISO image and not simply copy the ISO file onto a CD - that won't do anything useful. If you need it, download and install smart boot manager to a floppy. Set your BIOS to boot from the relevant medium, and stresslinux should fire up.

To start with, I'd test the memory. Type in "memtest" (no quotes) into the boot: prompt and press enter. Leave it to it's own devices for a good few hours - the longer the better. You should have no more than a couple of errors at most, preferably 0, after this time. If the number of errors is high or rising significantly, you most likely have a problem that will prevent you using anything with more than a minimal degree of reliability, if at all. Look into this before you progress further.

After memtest has run for a few hours and assuming there are few or no errors, reboot your system and boot back into stresslinux, this time just hit enter when greeted with boot:, and follow it's steps through to set it up. When it's running, run badblocks on your hard drive and CD-ROM drive, you should have, again, no more than a couple of bad blocks on each, if that.

To run badblocks, simply type badblocks followed by the drive, which will probably be:

/dev/hda for the primary master
/dev/hdb for the primary slave
/dev/hdc for the secondary master
/dev/hdd for the secondary slave.

The most likely configuration is that the hard drive is on /dev/hda and the CD-ROM is /dev/hdc. So to run badblocks for the hard drive:

badblocks /dev/hda

and for the CD-ROM:

badblocks /dev/hdc

Be patient and wait for it to complete. Assuming no problems, you're now ready to start the Gentoo installation procedure.
<p>As for the hardware, I used a machine with some newer Celeron CPU because of its low power consumption. It does not provide enough computing power for disk encryption but I decided that I let this to client. It now hosts file server, media server, wi-fi access point, Nexus.</p>
i jus can't get it to work, i get right to the end and reboot only to find out i've missed something, and i followed the instructions perfectly, i think my problem is caused either due to me installing on a sata drive or i have not setup the bootloader correctly, as i noticed in the handbook it mentions about keeping a note of the kernel name and adding it to the bootloader, but you never mention any of that, so i think this instructable will have to be updated.
I have a PC with 2 HDDs, a good processor, maybe bad ram (I'll try to test it tomorrow), the screen gets no response. What'll be a good project for it? I was thinking an over-sized storage device accessible via Ethernet port, but so far all I read was install software and configure things on target PC.
i ended up using a IBM netvista with a mythbuntu backhand
Cool - bear in mind though that the mythtv part of mythbuntu will be a rather big unnecessary overhead (unless you're using it's tv part as well!)
well it dosnt have myth tv becaus i set it up as just a server but im putting a tuner card on it
sorry im going to ask a lot of questions because this is my first time working on a server 1. what is the minimum BIOS for Gentoo? 2. how do i hook this in to a network? 3. how much RAM do i need?
1) Nothing specifically that I know of, as long as it'll support hard drives larger than 4GB (Gentoo's minimum requirement) 2) Network support is generally very good - I literally installed a bog standard Belkin card in a PCI slot, booted it up and it recognised it straight away. Beyond that it's just installing things like SAMBA and CUPS. 3) I had 80MB in my machine and it worked fine, Gentoo's minimum requirement says 48-64 but I wouldn't personally like to rely on it working well in the lower end of that range, especially with SAMBA and CUPS running too. Hope that helped!
would an old system that originally ran 98 work?
The system I used this on originally ran 95, but it had a number of upgrades - the hard drive was originally 1GB (which wouldn't be enough, minimum required is 4GB) and it only had 16MB of RAM (but was upgraded to 80MB) If the requirements are too much, try debian - from memory the requirements for the base install of that are lower.
ah, in the days of freeski and mahjong
Not freeski, but <a rel="nofollow" href="http://ski.ihoc.net/">SkiFree</a>. And at that time I used to play <a rel="nofollow" href="http://en.wikipedia.org/wiki/Image:Taipei.png">Taipei</a>. Good times... :)<br/><br/>But, now talking about this instructable (which I haven't actually read)... I guess Gentoo might take too long to compile on those old machines. On the other hand, most binary distros won't run on old computers.<br/><br/>Maybe <a rel="nofollow" href="http://m0n0.ch/wall/">m0n0wall</a> could be another option for some people. I never tried it, but it looks good. AFAIK, m0n0wall doesn't even require a hard drive. Of course, if you are geeky enough and want more power, more flexibility, then install a linux distro like describe in this instructable.<br/>
It depends how you classify "too long." If you're willing to leave the machine on for a couple of nights straight, that's all it took for me. I was surprised, actually expected a lot longer. If you're running X though, then things would start to take a turn for the worse. And openoffice would probably take weeks alone. Still - if you're running a computer as old as I am, I don't think that's a wise move :) As for m0n0wall, I've personally always used smoothwall when it's come to firewalls and linux distros so I can't really comment. Firewalls are great, but if you've only got one ethernet card in your machine then it requires additional expense. Sure, they're cheap but I wanted to get something going with what I already had lying around. On the file server front, there is a version of BSD that is pretty much plug and play as far as I know, and works rather nicely. However, it wasn't plug and play with my machine, rather it complained at every step along the way. So it seemed gentoo was really the only option.
The fact that Gentoo compiles everything is <strong>bad</strong> because it will take a long time to install.<br/>The fact that Gentoo compiles everything is <strong>good</strong> because it will work (eventually).<br/>
(oh, just a comment, I use Gentoo on Pentium III 800, which is my main machine)
this instructable might be kick black ass if you'd have some pics :-|
I would've done during the install, but I couldn't work out how, and my camera wasn't working either... I agree it would've been better, I might go and add some in later but I've been really busy lately. I've also started another instructable along the same lines as this one (hopefully with pics this time) but again I've been busy so not sure when it'll be finished.

About This Instructable




More by berry120:Turning an old PC into a file server, the Gentoo way 
Add instructable to: