Running Modern Linux From A Single Floppy Disk

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.

Floppinux running on the Asus Eee PC

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.

34 thoughts on “Running Modern Linux From A Single Floppy Disk

    1. 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.

    2. 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!

    1. 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

  1. 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.

    1. “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?

      1. 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.

      2. 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)

    2. 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.

    3. 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.

    1. +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

  2. 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.

    1. 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)…

  3. 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.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.