Contents: A long, but hopefully easy to read collection of advice for beginners and intermediate users. Don't get scared by the volume: The fact that the text is long is not an indication that installing is difficult, it's just a result of trying to deal with many different problems, also some which are fairly unlikely to encounter. Though the guide was born in 2012 it is receiving steady updates, latest 2024-01-24.
Various Linux distros are known as a good option for bringing old hardware back to life and the forum is receiving many questions on the topic. The thread is created in order to keep the experience and advice regarding old hardware in one place. Many of the considerations, recommendations and warnings from one problem can and should be reused by other people.
The main release, Ubuntu, used to be lightweight and suitable for old hardware, but recent releases are targeting new systems with more graphics horsepower.
Lighter derivatives like Lubuntu and Xubuntu are a better option for semi-old hardware. Both of them use the shared Ubuntu software repository so applications known to run on Ubuntu can also be used on Lubuntu/Xubuntu.
However, there is a lot of hardware around which would benefit from something even lighter. For example, Snap (discussed later) adds a big workload. This might not be relevant for recent hardware but one clearly feels the difference using older gear. Also, the Buntu family does not support 32 bit CPU's so this is another use case where other distros must be considered.
1) Which distro to install?
Ubuntu is built on Debian and broadly speaking Debian of today can be compared to Buntu ten years ago. According to some, Buntu has drifted away from the roots but this space is now taken over by Debian. Some of the advantages regarding old hardware are:
- Debian supports 32 bit hardware
- Debian offers a small Netinstall image suitable for older equipment. Most of the packages are being downloaded during the installation so they don't have to be packaged in the installation file itself. The installation file fits to a CD.
- Debian manages packages using the DEB format which is as lightweight as can be. Various middle tiers like Snap and Flatpak are not needed here.
- There is no push towards buying a 'pro' subscription and the commands retain their original and intended function. For example, the apt command in Debian is only used for package management, not for additional marketing of the 'pro' option.
When viewed using the command df -hT, a typical Debian installation running the XFCE desktop environment with Libreoffice and Firefox installed looks like this:
Code:
Filesystem Type Size Used Avail Use% Mounted on
udev devtmpfs 1.7G 0 1.7G 0% /dev
tmpfs tmpfs 352M 1.2M 351M 1% /run
/dev/sda1 ext4 284G 4.1G 265G 2% /
tmpfs tmpfs 1.8G 0 1.8G 0% /dev/shm
tmpfs tmpfs 5.0M 8.0K 5.0M 1% /run/lock
tmpfs tmpfs 352M 60K 352M 1% /run/user/1000
A size around 4 GB is about as small as one can get.
Later zram can be added (explained below).
In the following guide we first test the hardware capabilities before deciding what and how to install but if you can't wait or if it's not possible to run a live boot you can just take the chance and go straight to the install described in 3).
2) Hardware
The main rule is that software in the Debian world works more or less everywhere. Some exceptions apply, though.
Hardware |
Age (approx.) |
Occurrence |
Remarks |
32 bit without SSE2 |
- 2002 |
Rare |
See post 3 in the thread |
32 bit without PAE |
2003-4 |
Rare |
Debian is recommended. It comes with Firefox in stead of Chrome/Chromium which has abandoned 32 bit hardware. |
32 bit with SSE2 and PAE |
A) General availability 2000 - 2008
B) Intel Atom notebooks from the years 2009-11 famous for having very low power consumption. |
Common |
Debian is recommended. It comes with Firefox in stead of Chrome/Chromium which has abandoned 32 bit hardware. |
64 bit |
2003 - |
Common |
Though Ubuntu installs fine the performance under Debian is likely better. |
These restrictions are good to remember when reading the thread.
Let's begin with a simple test to see if the hardware in question is fairly old but straightforward to deal with or very old and needs some tricks.
Using any Linux distro, installed or from a live boot, please copy the following command one at a time into the terminal and run.
Code:
sudo apt update
sudo apt dist-upgrade
sudo apt install lshw dmidecode
It installs the programs lshw (an abbreviation for list hardware) and dmidecode if they are not already present. We are going to use them a lot to look inside the computer.
After this, run
Code:
sudo lshw -C cpu | grep -i sse2
It takes some seconds to complete.
If you get a line full of abbreviations everything is good. Chances are that the install is simply next, next, next, finish.
If the command doesn't yield an output please see post #3 'really old hardware' in the thread. It's questionable if the computer will be of any practial use.
(Details: The command above checks if the processor has the SSE2 instructions set. In the Intel family the oldest member with SSE2 is a Pentium 4 and for AMD the oldest is a K8. Though SSE2 is not necessary for a Debian install it still serves as a baseline for reasonable performance.)
The command
Code:
sudo lshw -C cpu | grep -i width
tells if you have a 32 or 64 bit processor. If it's 64 bit and you have more than 2 GiB of memory then a 64 bit ISO is recommended.
For people wanting to investigate CPU properties in depth this link gives inspiration.
Memory: The command
Code:
sudo dmidecode -t memory | grep -i 'ddr\|size'
shows the size of the present memory, for example 2*1 GB. It also shows empty slots ready for additional memory.
Code:
sudo dmidecode -t memory | grep -i max
shows the maximum size of memory that the motherboard supports.
If you (like me) end up with hardware not worth salvaging these commands are helpful when deciding how and where to recycle the memory. I often see a big improvement when an old computer receives one or two memory sticks from a donor.
The graphics processor has its own memory modules. Here is a guide for finding out how much memory the graphics processor has.
Drives
Code:
sudo lshw -short -C disk
shows the drives of the system, including CD/DVD drives. You can see the size of the hard disk and decide if it's big enough for the intended use. Later in the thread we shall investigate the health of the hard disk.
If Gparted or the df command show some strange partitions or don't show any at all it could be due of Fake-RAID. If that's the case and if you don't want to keep Windows which may be installed here I suggest that Fake-RAID be disabled so the disks are functioning independently. The text in the hyperlink explains why.
Network
Code:
sudo lshw | grep -i '00bt'
shows the speed of the wired (ethernet) connector, often 100 or 1000 Mbit/s. If Wifi is slow then this is an alternative.
Display server
You might have heard that some Linux distros are slowly switching from X11 to Wayland as a display server. Debian/XFCE stays for the time being with the dated but highly stable X11. One can see which server is in use by running the command
Code:
echo $XDG_SESSION_TYPE
If the output is x11 then there's no need to worry about people posting this-and-that about Wayland.
Hardware modifications
The older and hence slower the hard disk the more important is zram and/or swappiness, as explained in a later post. 2,5" disks used in portables are generally worse than 3,5" disks in stationary computers.
Adding memory is the single most efficient step one can take.
If the hardware does not meet these requirements one should consider if it's worth the effort to carry on. There is so much used (say, 4-12 years of age) gear around that one can get for free or cheap. The ever-increasing system requirements of Windows are pushing more and more computers into the ‘old’ category even though they are in good working order.
Though, if the graphics horsepower in an old computer is too weak for daily use it can still be of value as a file server for back-ups. Just check that the hard disk is in good condition (see next post in the thread) but consider the power consumption if it's intended to be always running.
On a home network with only trusted clients Vsftpd is a fine FTP server package for backup purposes. The otherwise popular client Filezilla has been terminated for 32 bit systems so here one has to use alternatives like Gftp.
An interesting blog about old hardware and realistic expectations.
3) Installing the operating system
First of all: The solution to getting old hardware into usable condition is not old software. When software has reached end of life and is abandoned by the developers no security fixes are provided, and for obvious reasons people should not run such a system. Don't use it, no matter how fast it runs or how much you like the user interface. Here we focus on the latest Debian.
Installation files are normally packaged in a file with the .ISO extension, in daily speak just referred to as 'an ISO'.
If the computer is one you have salvaged from a dumpster or which has been given to you I suggest that you begin with completely erasing the hard disk. My preferred command is
Code:
sudo shred -f -z -v -n 2 /dev/sdX
where sdX refers to your hard disk, often sda. It must be run from a live boot.
Nwipe is another good candidate for sanitising a hard disk.
More about hard disk management.
Installation should be done from a USB stick, if the computer is young enough to support it, or else from a CD or DVD. If the install hangs at the very end with no explanation given just push Return.
If booting from USB does not work and if the CD/DVD drive is on the brink of failing it's worth trying the minimal Debian ISO as opposed to the full-size one. Often a semi-working CD drive will accept a small ISO file like this one.
Regardless of which ISO you choose one should (if possible) use wired internet access while installing, during the first boot and when applying the first batch of bug fixes.
A number of background processes called daemons are created automatically. They often serve a useful purpose, for example taking care of the network connection, but not all are needed by all users.
If one doesn't have a printer then cups could and should be removed. It can be temporarily disabled by the command
Code:
sudo systemctl stop cups
After that
Code:
sudo apt --purge remove cups cups-common cups-filters cups-pk-helper
followed by
Code:
sudo apt autoremove
removes cups-related packages.
One or both of the commands
Code:
sudo systemctl --type=service
service --status-all
will shows all daemons running (press q for quitting after seeing the output). If one wants to harden the system and remove other unneeded daemons, for example Bluetooth, then this can be used as inspiration.
3 B) Security matters
Hardware-related security is first and foremost centered around the CPU (more text to come here).
3 C) Distros other than Debian
GNU/Linux is about choice, and other light distros than Debian are also worth a try.
Puppy (which comes in many versions), Knoppix and Bodhi Linux are good options. More distros are listed here and here if people want to experiment, but before choosing one of the minor distros remember to check how well it is maintained. Never use an unsupported distro or a distro where bug fixes are released so slowly that it's almost unsupported. This excludes for example Damn Small Linux, which is sadly still mentioned in Ubuntuforums. Please let it rest in peace.
3D) BIOS
If the install still does not work you could try resetting BIOS to default values and / or upgrade the BIOS to a later version. Before upgrading remember to search the web and see if people have bad experiences with this for your particular hardware. Don't be afraid of general warnings which may not apply to your machinery.
Some advice for updating BIOS and other kinds of firmware.
A working BIOS can sometimes be tuned to yield a better performance, for example by disabling options which are not needed.
4) Snap
The traditional package format for Debian is a deb package. Lately at least three alternative package formats have been introduced: Snap, Flatpack and AppImage.
For a number of reasons I recommend to stay with deb packages only, especially for old hardware. First and foremost the other package formats add a significant workload to the system.
The people behind Linux Mint have posted this statement about Snap explaining why they try to avoid it. Since the purpose of this thread is to get old hardware functioning we will do the same.
To check if you have snap installed run the command It has three possible outcomes:
- An error appears
- The user is encouraged you run the command snap install hello-world
- The user gets a list of installed snap packages, for example
Code:
Name Version Rev Tracking Publisher Notes
bare 1.0 5 latest/stable canonical✓ base
core22 20230801 864 latest/stable canonical✓ base
firefox 118.0.1-1 3216 latest/stable/… mozilla✓ -
gnome-42-2204 0+git.ff35a85 141 latest/stable/… canonical✓ -
gtk-common-themes 0.1-81-g442e511 1535 latest/stable/… canonical✓ -
snapd 2.60.3 20092 latest/stable canonical✓ snapd
If 1: Everything is good.
If 2: The snap daemon is present but inactive. To avoid using it by accident just remove it with the command sudo apt remove snapd. It can take a while to finish.
If 3: Some applications are present in snap format. Consider if you need all of them or if they can be replaced by applications in deb packages.
To remove a snap package run
Code:
sudo snap remove <package>
for each package, for example
Code:
sudo snap remove firefox
It might take some attempts because packages have to be removed in the right order.
Now
should display the empty list.
Finally
Code:
sudo apt remove snapd
removes the mothership. All clear.
Now comes the tricky part. One would expect that the command
Code:
sudo apt install chromium-browser --dry-run
would warn the user about all packages about to be installed but that's not the case. Should one be mislead to executing
Code:
sudo apt install chromium-browser
then a subsequent
will show that the command silently has triggered a full Snap reinstall including packages unrelated to Chromium. We are back to start, only with cups added to the list. Oh, snap.
Code:
Name Version Rev Tracking Publisher Notes
bare 1.0 5 latest/stable canonical✓ base
chromium 118.0.5993.117 2673 latest/stable canonical✓ -
core22 20230801 864 latest/stable canonical✓ base
cups 2.4.6-4 980 latest/stable openprinting✓ -
gnome-42-2204 0+git.ff35a85 141 latest/stable canonical✓ -
gtk-common-themes 0.1-81-g442e511 1535 latest/stable canonical✓ -
snapd 2.60.4 20290 latest/stable canonical✓ snapd
The Buntu roadmap indicates that more and more packages are to be transferred to Snap. If that's not your liking then it's worth the while trying Debian or Linux Mint.
For more information about Snap see the thread here.
5) Applications
‘Light applications’ is a neverending topic. Only brief advice is given here, otherwise I leave it to the user to experiment.
Trying a lighter browser like Pale Moon, Xombrero / Xxxterm or Epiphany may or may not speed things up. The packages are small so it’s an easy test to do. The even lighter browser links2 gives a crude text display with embedded images but nothing more - no pop-ups, no animated GIF's and no video ads (scrolling is done with right mouse button or with Page Up/Down). After years of exposure to pages bloated with irrelevant ads and animations it's a joy to see only plain text. The command for installing is
Code:
sudo apt install links2
6) Maintenance
An often overlooked part of getting an old computer into a useable condition is cleaning the interior dust build-ups, especially around the fan and heatsink. Take care not to damage the fans by forceful vacuuming and remember to only vacuum in the reverse direction of the normal air flow. Best is to block the fan with a tooth pick or piece of wire while cleaning to prevent it from spinning too fast. If we are dealing with a desktop remember that it likely has several fans (for CPU, GPU, power supply and more).
Short bursts of compressed air also helps. Again, only in the reverse direction of the normal air flow.
Remember to check that the fan is turning freely after cleaning.
Many good guides are available describing how to take hardware apart. Here's for example a list for Toshiba.
On the software side the only maintenance needed is
Code:
sudo apt update
sudo apt dist-upgrade
<maybe reboot here>
sudo apt clean
sudo apt autoremove
once in a while. The last command comes in handy because it removes old kernels and saves hard disk space.
If the computer does not automatically ask for updates shortly after the install it's especially important to run the commands.
A file system needs some free space to perform well. The command
shows in percent how much space is used for various mounts. A good rule of thumb is never letting any of the measures exceed 75%.
The similar command shows the number of available inodes. There are many explanations for inodes on the web, for now it will be enough to know that the percentages shown should be as low as possible. If you see high numbers just run the autoremove command mentioned above.
The command
Code:
sudo find /home -name '*' -size +50M
tells which files in the /home directory are more than 50 MB of size. It's useful for cleaning if space is getting tight. Remember to empty the trash can afterwards.
Some advice on file system maintenance.
7) Environmental impact
It is a widely held belief that old hardware shouldn’t be used because of power consumption. This is not necessarily true: Old hardware is sometimes less greedy than new, if one compares within the same category (desktop versus desktop, for example). The power consumption of newer machines per unit of calculation is lower, but not the total power consumption of the machine.
However, the biggest benefits from using an old computer as long as possible is less production of new hardware and less e-waste to be handled, both of which are causing serious environmental problems. Add to this the joy of using hardware without a software vendor trying to force people to pay for a pre-installed operating system.
If you have managed to bring an old computer back to usable life you should not be ashamed for being out of sync but proud of taking care of the environment.
8) Further improvement
Third post in the thread gives some suggestions for what to trim and adjust after install.
9) Still in doubt?
If this does not answer all your questions you are of course welcome to post but please read #4 first.
= = =
Thanks to MG&TL for proof-reading.
Bookmarks