Run classic distros
Where we’re going we don’t need roads, we need QEMU and a bunch of retro Linux ISOs, reveals Les Pounder.
We love the bad old days! With a bit of help from Les Pounder, fire up ancient Linux distros of yore and see just how dire things were thanks to Qemu.
Back in the late 1990s this author chose their PC magazines by what was on the cover disc, something that had started back in their Amiga days. One month they chose a PC magazine that had something called Red Hat Linux on the second disc which was promptly installed on an AMD K6-2 333MHz PC.
It’s fair to say that it wasn’t love at first sight. The sheer volume of application choices, the differing commands and file system was enough to scare this author back to Windows 98. A few months later and another coverdisc, and this time it was something different. It was still Linux, but Corel Linux 1.0 which was a little more “noob” friendly. The install went well and this was this author’s distro for quite some time.
In the 1990s, Linux was still in its infancy and the jump from Windows to Linux seemed massive and exciting. How can we experience these days again? In the absence of a giant Tux-shaped time machine, we can use virtual machines to emulate hardware of the era and install Linux on a virtual PC.
We’ve chosen three Linux distros from the past three decades of Linux and using virtual machines we shall install and use each distro. Our choices span the 1990s, 2000s and 2010s and show the similarities, and differences between Debian, Ubuntu and Linux Mint of these eras.
How To Install QEMU
QEMU is a generic and open source machine emulator and virtualiser. In other words it can emulate the hardware of many different CPUs and machines, and create virtual machines. To install QEMU we need to open a terminal and use the package manager (in our case Ubuntu 21.04 and the apt tool) to install QEMU,a Kernel Virtual Machine (KVM) and its dependencies.
Why are we installing a KVM? It’s because QEMU
is an emulator, and so by using a KVM and having a CPU that supports Intel VT-x or AMD V we can speed up the virtualisation to near-native speeds. Most modern processors have some form of support for virtualisation – our machine is an i7 3770 from 2012 and it supports VT-X.
To check if your Intel or AMD CPU supports these features, open a terminal and type the following. For Intel VT-X, use
grep --color vmx /proc/cpuinfo
and for AMD V, type
grep --color svm /proc/cpuinfo
Now install the QEMU application with KVM
$ sudo apt update
$ sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils
To make managing our systems a little easier, we’ll install a GUI manager for our virtual machines.
$ sudo apt install virt-manager
We now need to reboot our machines for the changes to take effect. If we skip this step then the GUI manager will be unable to connect to QEMU.
Open the Virtual Machine Manager and take a look around. In the top left we have an icon – a monitor with a yellow star – to quickly create a new virtual machine. We shall be using this icon quite a lot in the tutorial.
Virtual machines are listed in the main section of the window and we can select and run machines from here. Selecting a machine and then clicking the Play button will start the machine in the background. Clicking Open will open a new viewer window – our interface with the virtual machine. Launching a machine will launch a player window, where we interact with the virtual machine. In this player window we can administer our virtual machine: redirect host USB devices to the virtual machine, configure the system with more RAM, better CPU, insert CD/DVDs and configure our networking.
The 1990s – Debian Linux
Linux in the 1990s was the new frontier. New distros appeared that took advantage of 486- and Pentium-era machines, while downloading the ISO images took hours, if not days over a dial-up connection. Luckily for most of us in 2021 we have much faster broadbandenabled internet.
Debian Linux was created by Ian Murdock in 1993 and the first version (0.01) was released that year. But it wasn’t until 1996 that we saw the first stable release (1.1). Today, Debian is the backbone for many popular distros including Canonical’s Ubuntu and the Raspberry Pi Foundation’s Raspberry Pi OS. It’s fair to say that without the existence of Debian the Linux landscape would be totally different.
We could download and install our own version of Debian Linux, or we can download a hard drive image that we can use with QEMU. The latter is the most simple, being ready to go with little configuration. That said, the Debian installation process is sublime, more so in recent years. The installation process takes us by the hand through partitioning, user setup and then we can configure the system for our intended use.
We downloaded the Debian 2.0 image from https:// github.com/palmercluff/qemu-images and then extracted the qcow2 file from the archive.
Open Virtual Machine Manager and click File>New Virtual Machine or click the icon of a monitor with a star. In the first screen Create a New Virtual Machine, select Import Existing Hard Disk Image and click Forward. In the next screen navigate to the location of the extracted qcow2 file by clicking Browse, and then Browse Local. Once you’ve selected the volume select Choose Volume and then type in “Generic OS” under Choose the operating system. Click Forward. Set the RAM to 64MB and the number of CPUs to one. This is more than enough for Debian 2.0. Click Forward and in the next screen name the machine “Debian2” and click Finish to set the configuration and start the machine.
On first boot we go through a typical Debian
configuration process. And yes it does say LILO: this author remembers having to learn how to configure that to get their system to boot.
The Debian configuration process starts by setting a root password, then we create a new user account for general access. When prompted to set up shadow passwords, you can select yes or no – it makes no difference. Do remove PCMCIA drivers if prompted. Next we’re asked if we’d like to set up PPP, used for connecting to the internet via a modem. Answer N.
The next screen asks if we’d like to run the dselect program, used to automate installation. Select No and press Enter. If the dselect screen appears anyway, press Q and Enter to drop into a Debian login. Enter your username and password and start using a few commands to mess around with the system. Note that our user has no access to the sudo group; rather, we need to switch user to root in order to make any system-wide changes.
Debian was a refreshing distro at this time. It was easy to install and a joy to use. But our virtual time machine is ready to make a leap forward, to a time when the GUI installer was a big deal to sell the distro.
The 2000s – Ubuntu 6.06 Dapper Drake
The first LTS (Long Term Support) release of Ubuntu was a big deal in 2006. It saw Canonical take a stance as a serious player in Linux, and saw many adopting the Debian-based distro as their main OS. In 2006 this author had just been playing with 5.10 for a few months and was ready to make the switch from SUSE. Dapper Drake came along, and despite being a shade of brown they adopted it for their daily workflow. Let’s take a look at it all over again. The Ubuntu installation process in 6.06 is barebones and really effective. Fifteen years after it was released it still feels fresh and new.
Download the 32-bit ISO from http://old-releases. ubuntu.com/releases/6.06.0 before opening Virtual Machine Manager and creating a new machine.
In the first screen Create a New Virtual Machine, select Local Install Media and click Forward. In the next screen navigate to the location of the downloaded ISO image by clicking Browse, and then Browse Local. Once you’ve selected the volume the operating system name should auto-populate to Ubuntu 6.06. Click Forward. Set the RAM to 1024MB and the number of CPUs to two. This is more than enough for Ubuntu 6.06. Click Forward and in the next screen click Finish to set the configuration and start the machine from the Live CD. Now we follow a typical Ubuntu install, with a snazzy GUI installer.
Ubuntu 6.06 should run fine on the default settings, but should we need to tweak them we can break out of the virtual machine by pressing Ctrl+Alt+G and click the blue information icon in the viewer window to open a configuration menu. We can change the RAM, CPU type and insert virtual/real devices into the virtual machine. Note that every change must be applied before moving to the next item in the configuration. Changes to the configuration take effect the next time the virtual machine is power cycled.
Installing software and getting online is tricky. Most of the software repositories are now unavailable, so we need to install programs by compiling the code. Getting online is possible, but this version of Firefox is no longer supported and so we can’t access any HTTPS sites. But we can still relive the glory years of Ubuntu’s rise to dominance, and that lovely shade of brown.
The 2010s – the rise of Linux Mint
Ubuntu had been the darling of the Linux distros for some time, but in the 2010s some grew upset with the introduction of Unity, and an aubergine-based colour scheme. Linux Mint was seen as an alternative. It had a similar back-end to Ubuntu, but a more traditional user interface. Linux Mint also offered pre-installed codecs for popular music and video formats. So via the super simple installer we can quickly get up and running. We downloaded a suitable ISO from https://mirrors. evowise.com/linuxmint/stable/17.3.
Setting up QEMU for Linux Mint is the easiest of them all. In the first screen Create a New Virtual
Machine, select Local Install Media and click Forward. In the next screen navigate to the location of the downloaded ISO image by clicking Browse, and then Browse Local. Once you’ve selected the volume, set the operating system name to Generic Linux 2016 and click Forward. The RAM and CPU will be set to 2GB and two cores – this is based on our choice of “Generic Linux 2016” in the previous screen. This configuration is more than enough for Linux Mint 17. Click Forward and in the next screen click Finish to set the configuration and start the machine from the Live CD.
Now we follow a typical Linux Mint install, but you may hit a snag. In our install the live CD refused to start the X server. This required us to click the blue information icon in the viewer window, navigate to Video/QXL and change the video option to VGA. Apply and then power cycle the virtual machine. Everything went smoothly after this and we were even able to install software and browse the web via Firefox.
Running QEMU from the terminal
So far we’ve created hard drive images and installed distros using the Virtual Machine Manager. We can do the same thing using the terminal and Crunchbang++
(https://crunchbangplusplus.org), a modern version of
Crunchbang Linux.
First we need to create a virtual hard drive. In this case it’ll be a 10GB .img image called cbpp.img and it’ll be stored in the current directory:
qemu-img create -f qcow2 cbpp.img 10G
We have a blank image ready for our install, so now we need to configure our machine. This is a long command, so we’ll go through each option.
The first command invokes QEMU with 64-bit support, then we use the -cdrom option to tell QEMU where to find our Crunchbang++ ISO. Using -hda we tell QEMU that we wish to use the cbpp.img virtual drive, which is in the current directory. We then set the RAM to 2GB using -m 2048 , before setting up networking, enabling the virtual machine to access the Internet.
qemu-system-x86_64 -cdrom /path/to/iso -hda ./cbpp. img -m 2048 -netdev user,id=mynet0,hostfwd=t cp::8080-:80 -device e1000,netdev=mynet0
Pressing Enter will run this command and start the boot process. For a first boot we recommend running a live session to test that everything works. After that you can reboot the virtual machine and install to the virtual hard disk.
Linux today: The Undiscovered Country
In 2021 we’re truly spoilt for choice. New Linux distros are coming out at an accelerated pace, including specialist distros for media production, networking and scientific projects. Older hardware is supported by lightweight distros such as MXLinux, which prolongs the life of older equipment. Power users aren’t forgotten: we have bespoke gaming distros that use Wine, Proton or DOSBox to run Windows games with the latest RTX and RX GPUs. By looking to the Linux distros of the past we can see how our much-loved distros have grown. From the humble text-based installer of Debian to the slick guided installation process of modern distros, our Linux experience is very different in 2021 – but we can still see the rock-solid foundation under the hood.