Review of Ubuntu 7.04 Server on Old Hardware
by Mike Lawson
Ubuntu Linux have been releasing server versions of their distro for a while now, aimed at providing a quick and easy way to set up a Linux server, so I decided to give it a try. My aim was to see how easy it was to install and set up Ubuntu 7.04 Server in LAMP configuration (Linux, Apache, MySQL, PHP) on an old computer I had lying around. This would be used on my local network as a test web server. It would not require to be security hardened as it would not be accessible from the internet. I have previously used Debian for this same purpose, installing packages as need be, and I have used Ubuntu as a desktop Operating System, so I was interested in how simple Ubuntu 7.04 would be to set up as a server.
The computer I used for this is a creaking old wreck that is only really suited to tests like this. The configuration is as follows:
- CPU: AMD K6-2 450MHz
- RAM: 128MB
- HDD: 4.3GB
- Other: 3dfx Banshee graphics, Unbranded 10/100 ethernet card, Goldstar 4x CDRW
Anyone who has tried to set up Ubuntu Server on that kind of hardware might see a glaring problem, but more on that later...
First step was to download the x86 version of Ubuntu 7.04 Server Edition from the Ubuntu download page and burn to CD-R.
The next step was to boot the install CD and start the install process. This was where the first problem occurred. An error message appeared saying "
ACPI: unable to locate RSDP". A quick search online showed that the fix was to switch ACPI off altogether by pressing F6 at the boot menu and entering "
acpi=off". This solved the problem.
The install process was a standard text-based procedure that involved selecting the correct language, keyboard and so on. Very easy and straightforward. When it came to partitioning the hard drive, I accepted the default option of a main partition formatted as ext3 and a swap partition, not using LVM. I was then asked to enter a username and password in order to create a new account.
Installation started, and unsurprisingly took quite a long time with the ancient CD drive talking to the ancient hard drive while the ancient processor sat there scratching its head in bewilderment. It was around 45 minutes before a menu came up offering 2 options of set configurations: DNS Server or LAMP Server. Choosing neither will result in a generic server configuration. I chose LAMP Server, and the relevant software was then installed and configured. I was then asked to remove the CD and reboot.
The system rebooted itself. And rebooted itself again. And again.
A quick search of the net turned up the problem. Ubuntu 7.04 Server Edition x86 is optimized for i686 processors. While the K6-2 does have a 6 in its name, it's only an i586 processor. (i686 being Intel Pentium 2, AMD Athlon, etc.) D'oh! Well, on the downside it goes to prove that your humble author is as much of a birdbrain as ever, but on the upside, I was able to try out the install CD in Rescue Mode.
The solution to the problem was to boot into Rescue Mode, go onto the hard drive and "downgrade" the Linux kernel to one that wouldn't make the K6-2 processor get scared and reboot. The easiest way was simply to install the standard i386 linux kernel. It's been a while since I had to use commands like
mount, so I was a bit apprehensive of this, but I needn't have been. Choosing "Rescue a broken system" from the install CD's menu resulted in being walked through the standard questions on language and keyboard, but I was then offered the chance to start a command shell on the hard disk. I simply had to choose hd1, and was then given a terminal prompt, with the hard drive already mounted and chrooted. All that was required was to change the kernel by typing
apt-get install linux-image-386.
The system then booted properly. Of course, I had lost the server optimizations that are present as standard in the Ubuntu Server Edition's Linux kernel. This didn't matter for my purposes, and if I was worried about performance I could always compile a kernel to my liking.
I now had a server which was already set up and running Apache 2, MySQL 5 and PHP 5. It did not have the OpenSSH server installed, which I had to do using apt-get before I could start administering the server remotely (well, from the other side of the room at least.) This involved putting the install CD back in the drive.
Ubuntu 7.04 Server Edition provides a very easy way to get a LAMP server up and running quickly. The lack of SSH access as standard seemed strange for a distro focussed on ease of installation, but comes from the principle that the less daemons there are running, the less daemons there are to hack, which is understandable. Of course, it is then up to the user to configure Apache, MySQL and PHP, which can be quite time consuming. I think that Ubuntu Server is best viewed as a shortcut to a fully rigged server rather than an all in one solution.
I ran into problems, but only due to the prehistoric age of the hardware I was testing on, and they were easily solved with minimal net searching. The install CD's Rescue mode turned out to be very impressive, so I'm glad I had a chance to try it out. I would not hesitate to use it on a misbehaving system. There are a lot of people who hire a VPS for web development and testing. An 128MB/4GB unmanaged VPS starts from around $120 per year, so pressing the K6-2 dinosaur into service was a worthwhile project, despite the trouble along the way.
I recommend Ubuntu 7.04 Server Edition as an extremely simple way to get a LAMP server running, but it cannot ease the configuration of the webserver and database programs to your needs. Ubuntu Server is best seen as a timesaver in the process of setting up a web server, getting the basic set-up out of the way so you can concentrate on advanced settings.