There was a time when booting Linux from a floppy disk was the norm, but of course, those days are long gone. Even if you still had a working 3.5 inch drive, surely the size of the modern kernel alone would far exceed the 1.44 MB capacity of the disks, to say nothing of all the support software required to create a usable operating system. Well that’s what we thought, anyway.
But then [Krzysztof Krystian Jankowski] dropped Floppinux, a live Linux OS that boots from just a single floppy. There’s even a few hundred KB left over on the disk, allowing the user to tuck a few of their own programs and scripts onboard before booting it up. But most impressively, the project doesn’t rely on ancient software releases like so many other embedded systems do. Every component of Floppinux is pulled directly from the cutting edge, including version 5.13.0-rc2 of the Linux kernel which is literally just a few days old.
Of course some concessions had to made in order cram the latest Linux kernel and build of BusyBox into slightly north of 1 MB, so Floppinux certainly isn’t what anyone would call a daily driver. The kernel is stripped down the absolute minimum, and is targeted for the decidedly poky i486. [Krzysztof] had to be very selective about which programs actually made the cut as well, so once the system is booted, there’s not a whole lot you can do with it outside of writing some shell scripts. But then, that was sort of the goal to begin with.
If you’re wondering how [Krzysztof] pulled it off, you don’t have to. He walks you though the entire process, down to the commands he used to do everything from pull down and compile the source code to creating the final disk image. Even if you don’t own a floppy drive, it’s well worth following his guide and booting the image up in QEMU just to say you’ve officially built a Linux system from scratch. It’s good for more than just bragging rights; learning how all the components of a minimal install like this fits together will no doubt come in handy the next time you find yourself poking around inside an embedded Linux device.
Oh yeah, booting from a floppy was common back then. In fact, I wrote many chapters of my Embedded Linux book using a single floppy. I’d park near the Ouray campground then boot a desktop with CRT using an inverter. Don’t believe me? Here’s a photo with the old Bronco and Jessie, http://hollabaugh.com/010712-114836.jpg. Those were the days!
Hit submit to early. To boot a latest kernel with busybox off floppy is truly impressive. I just shows the efficiency of the kernel programmer’s coding skills and your stripping skills. Users can increase their Linux knowledge when they learn to compile their own kernels. Thanks for the article and congratulations.
There was actually a significant effort to minimize the required size of the Linux kernel upon merging in patches from μClinux. I think it was mostly driven by the embedded market but it worked out great. They even managed to cut so much that it could be used make Linux it’s own bootloader. It’s only fair to point out that FreeBSD still manages to keep the size and memory requirements much smaller which is super impressive.
Hope you picked up that bottle before you left!
Yet another day at the office!
I used Coyote Linux a lot to transform old 486 with 2 ethernet cards (ISA or PCI) into routers for students to share their internet connection, ne2000 or 3com cards, those were the days!
Beautiful dog. What breed is that?
border collie
so, you were just doing the typing, he actually did all the work? :)
no comment
Cool picture, prefect caption “Hillbilly Hacker”.
Judging from the instructions, looks like glibc is being used… using a musl-libc based toochain or µclibc would shrink that quite a bit!
In before modern Linux from a 5¼” DD 360 kB disk. ^^’
Ancient Linux on a 1.2MB HD 5½” floppy was a challenge! So errm, yeah, I’ll believe it when I see it.
I tried uclib but filed. I will look at this as it should shrink the tools size in half! Added to myy learning list for this project :)
I built it with musl (…not just to build it with musl, but because I needed an i486 cross toolchain because the instructions as presented contaminate busybox with the host libc, which in their case is i686 based, I wanted to boot it on an Pentium MMX for funsies, and the http://musl.cc/ tarballs are the laziest way to make that happen).
It doesn’t appear to make much of a difference because statically linked BusyBox is already super lean, though there are some other low-hanging optimizations like packing the initrd with xz instead of gzip that can shave some kb.
Deets: https://github.com/w84death/floppinux/issues/2
You could boot from a floppy disk, but that’s not the same thing as using Linux from a floppy. Maybe there were special instances, but generally you needed a bunch of floppies and install the contents from hard drive.
Twenty years ago, I remember having to make two floppies to boot Linux for the first time. I can’t remember why I couldn’t just boot the cdrom. You could do a small subset of things, mostly related to installation.
There was a time when I routinely boited Linux with a floppy, but I’d put lilo on the floppy, and it was booting the hard drive.
“Maybe there were special instances,”
Sure. Usually they were meant to be rescue disks. But those rescue disks had text editors, links (text base web browser), maybe even an irc client. I suppose someone could spend all day in that environment if they really wanted to.
” I can’t remember why I couldn’t just boot the cdrom.”
CDROMs were around quite a while before the BIOS gained the ability to boot from them. Even when BIOS started including that ability it was hit or miss for a while. I remember booting from floppy to install Linux from a CD being a regular thing for a long time on machines including 486, pentium and AMD K6-2s.
History kind of repeated itself with booting from USB sticks. It seemed like a lot of BIOS’s claimed to support it but didn’t actually work for a while. I remember getting annoyed because some distros weren’t keeping their CD/DVD iso images up to date very well in favor of USB stick images but I still babysat computers that claimed to boot via USB sticks but would not.
Then again, to install an OS I still usually prefer to just burn a boot CD over USB stick. Mostly that’s just because I still have tons of blank unused CD/DVDRs so I might as well use them for that. If I can find one of my USB sticks I have to look and see what’s on it, make sure I’m not writing over something.
Speaking of using the “rescue/install” disk as an environment… Who remembers the Caldera Linux installer with it’s Tetris game?
The next one to add to that is UEFI boot. It will, it won’t. Eventually it will get sorted and those computers that are currently tied to Windo$e will be useful again. Mostly it is there but I still meet an occasional one that cannot be done.
You mean secure boot. UEFI is the bootloader.
I know your pain.
~10 years ago I was running IPFire[1] on a IGEL thin client from a USB stick.
Bios didn’t support that and there was no internal drive except for a m-sys DiskOnChip module with 32MiBs.
Got (free?)DOS running from the DOC, chainloaded Grub4dos and then kexec-loader[2] which could boot IPFire from the thumb drive.
Or tell the booting DOS to start itself where I could load a network stack and use Arachne[3] to “surf the web”.
Still want to visit the “special” HaD site with a similar setup some time…
[1] https://www.ipfire.org/
[2] http://www.solemnwarning.net/kexec-loader/
[3] https://en.wikipedia.org/wiki/Arachne_(web_browser)
Pretty common in those days for the BIOS to not understand the El Torito boot sector standard used on CD-ROMs… so a boot floppy for booting a mid-90s era PC to install from CD was pretty common.
Just random search in google. There were a lot of floppy based distros. Mostly specialized some required secondary floppy. Most used one by me was floppyfw.
http://www.ugr.es/~ama/compro/
A full install would take multiple floppies, of course. But there were plenty of live distros that fit on a single disk for the purposes of system recovery. When I was doing IT back then, I’d always have a few bootable floppies with me when I went to a remote location. Eventually these became live CDs, but the concept was the same.
Who remembers the QNX floppy?
OS, GUI, 3D demo, editor, file browser, a game and a web browser (HTML3) in 1.44 MB.
I remember. Keep meaning to dig out an old NE2000 and fire up my copy again…
I have a couple Ergo Audrey’s around 🤪
+1 working for logistics company round 2000, they had password on the proxy gateway so only managers could use the WWW, but had a modem on a machine for incomming faxes, QNX + free dialup account = WWW access at work
Damn, that explains the drop in fax orders and revenue in 2000. We almost went bankrupt.
The real fun started when you booted up several machines and then started playing with qnet … *Sigh* I kinda miss my QNX days.
This is cool, and impressive! I wonder though – aren’t there more efficient filesystems that can be used on a floppy? 1.44MB is only because 0.56MB was lost to the filesystem. Getting an extra few hundred KB would drastically increase what could be provided.
DMF and XDF are just FAT12 with specific parameters. What makes them special is that they physically use more of the floppy disk’s surface for storing data. On a 3½-inch high density floppy disk, DMF increases the physical capacity from 1440 KiB to 1680 KiB, and XDF increases it to 1836 KiB.
This!
Used a special format tool to reformat 10-20 normal 3,5-inch 1,44MiB floppies to something around 1,7MiB to get Windows 95 (and later 98se) from CD onto floppies and then onto a x486 Toshiba laptop (with 200MiB HDD).
And of course to share more games on less disks on the playground/schoolyard (compressed with PowerZip)…
Bloody hell! The last time I did that was more than 15 years ago on a Dec Alpha machine so I could run a simple installer. That was a pain to make fit and work.
Impressive achievement, especially with so recent kernel.
I remember 20+ years ago blockhouse network, small town in North Poland. And old PC running single floppy Linux for many many years acting as a router. It ended when floppy disc failed and none had backup nor knowledge how to rebuild it.
Back when Windows 95 came out, I managed to strip it down to it’s basics and got it to run from a 3.5 floppy disc. Those were the days.