Back to 1994, when Linux wore a Top Hat
Mihai Criveti
STSM, IBM Consulting and Vice-Chair, Technology - Open Innovation at IBM. Principal Architect Agents, Integrations and Extensions for IBM Consulting Advantage / Assistants AI Platform.
Inspired by The spooktacular tale of Red Hat's Halloween release and the Download the original Red Hat Linux 0.9 "Halloween" release blogs, I've decided to give Red Hat 0.9 a go, and experience the best 1994 had to offer!
My own journey with UNIX started in 94-95 (first taste UnixWare and Xenix), and Slackware Linux in 1996, and the first Red Hat release I tried came only later in 1997 with version 5 / kernel 2.2. I have very fond of spending long nights installing distro after distro or using WvDial to connect a US Robotics serial model to dial up. Floppy boot was still a thing back then, so I wouldn't expect this 'ISO' to be bootable. Interesting challenges await.
See? I wasn't kidding about the top hat! This Linux version is *so* old there wasn't even a Fedora! Check out the version history!
Downloading the Media
You can download version 0.9 from archive.org, and very quickly discover it's not bootable. However, it does contain a variety of kernels and a bootdisk.img. Let's get it running!
How to get it running
# Extract the media
mkdir -p /mnt/iso && mkdir -p extracted
sudo mount -t iso9660 -o loop halloween.iso /mnt/iso
cp -r /mnt/iso extracted/
# Create a raw disk image
qemu-img create disk.img 500
# Run it with qemu, emulating a 486 CPU with 64M RAM
qemu-system-i386 \
-cpu 486 -m 64 \
-drive file=disk.img,format=raw,index=0,media=disk \
-drive file=rootdisk.img,format=raw,index=0,if=floppy \
-drive file=../../halloween.iso,format=raw \
-kernel 1154/kernels/linux-1.1.54.cdu?
Stuck at the LILO prompt? Just getting to LI? Check out these LILO boot error codes page.
How I got this to run? Direct Linux Boot - using the `-kernel` option for qemu. Read more about Direct Linux Boot on the QEmu page.
To mount the CDROM, change the device to /dev/hdb, as per the qemu configuration.
Enter the /dev/hdb device name to mount the install disk and continue.
Partition your primary disk using fdisk. You will need to reboot. Set the Linux partition type to 83, and the swap to 82.
Or you can just use cfdisk.
"I love this part! Next time, read the manual!"
Run mkswap on /dev/hda2 and make a ext2 filesystem on /dev/hda1
It's interesting that we can use Minix FS as well! Bit of Tanenbaum history there!
Create a fstab and add a mountmount for /dev/hda1 as /
Mount the filesystem and continue with the install, with the Boostrap step:
领英推荐
Set a hostname
Select Series, of course I'm going to install Doom and LaTeX! And Emacs!!
Configure your mouse and X11 using Generic SVGA!
Configure your network card and modem!
Configure the keyboard, clock and add users!
Install your kernel!
And now, the dreaded LILO installation! I have some memories of booting from floppy or dual booting Windows 95 and Linux... didn't like 'GRUB' when it came along, it seemed... slow :-). I liked how distros like Slackware stuck around with LILO for quite some time!
Oh-oh..
It even asks if I want to add another OS as dual boot. I remember doing triple boot at some point, and figuring out primary vs secondary partitions, etc. Tricky!
Is this like the singing pirates in Monkey Island? Of course, the append line represents "hd=cylinders,heads,sectors" which corresponds to what you've configured in qemu / fdisk.
Remember cfdisk saying: "Heads: 16, Sectors per Track: 63, Cylinders: 1015"? Let's change the settings to that! Your values may differ!
Troubleshooting the bootloader
You can install the bootloader by hand, by dropping to a shell, mounting the disk and running lilo.
mount /dev/hda1 /mnt2
cd /mnt2
cp -r /boot /mnt2
chroot . /bin/lilo -C /etc/lilo.conf
Check out https://tldp.org/HOWTO/LILO-4.html for more info.
Drop the floppy parameters from qemu and boot from the disk to enjoy your new old Linux system!
Thoughts on VGA / X11
QEmu supports a number of VGA devices. Try "-vga std" or "-vga cirrus", "-device ati-vga" or "-device VGA,vgamem_mb=32" to set the amount of video memory. So far autoprobe didn't work for me. See the qemu manpage for a list of valid options to try: https://www.qemu.org/docs/master/system/qemu-manpage.html
Want to try something more modern?
Download the latest version of Red Hat Enterprise Linux for free from Red Hat: https://developers.redhat.com/products/rhel/download