I’ve recently made an effort to reduce the amount of tech stuff that I own. Lack of space, lack of time and the guilt of storing perfectly functional hardware unused in a box were the main motivators.

This has resulted in experiments with my assortment of USB flash storage that I’ve acquired over the years. They’re too old and cheap to be worth selling, so why not run them to the ground?

I’ve always liked the idea of USB sticks. They’re small and the good ones are actually surprisingly fast, especially compared to hard drives. This is why I started installing operating systems on them. It’s really handy to have a USB stick around with a full operating system on it for testing purposes, and I’m too cheap to buy an IODD device.1

What I’ve learned is that Linux installed on a USB stick is a much nicer experience compared to a Windows To Go installation, even on the cheaper and crappier ones.

The Windows experience

I’ve used Rufus for creating portable Windows installations in the past, mostly on portable SSD-s. These have come in handy when I’ve had to update the firmware on certain PC-s or associated hardware, like USB-C docks.2

Recently, I took a Samsung FIT 128GB USB 3.0 drive to see how well Windows can operate off of it.

It’s horrible.

Windows will run, but the first time you boot it, you will have to wait for all sorts of driver and update installations, which puts a huge strain on the storage, making the whole experience borderline unusable. Once that process is complete (multiple hours later), it’s actually not that bad, until you receive yet another Windows update.

For a USB stick that you use only occasionally to troubleshoot hardware, Windows is a really poor choice. Even on a proper portable SSD, it will still be relatively slow due to all that driver and update installation taking place in the background.

Eventually, that installation will also probably brick itself in one way or another, and not even due to any storage failures. Simply using the same disk on multiple machines will accrue configuration and driver cruft that likely results in Windows giving up. It’s just a guesstimate on my side, but I would not be surprised if it was true.

After a Windows update run completely fried one USB stick3 that I used for testing, I gave up on it.

The Linux experience

Most Linux distributions have supported a LiveCD/LiveUSB solution for at least 15+ years at this point. It’s a neat idea: your installation media also doubles as an emergency portable installation of that Linux distro, which you can use to quickly test the functionality of a PC, repair an existing installation or install it on a new machine.

The downside of that solution is that the software on it cannot be changed. You can temporarily install new software or update existing packages during that session, or have a separate writeable partition set aside on the USB stick for storing any permanent changes, but it’s a bit of a hassle to think about that nuance every time.

This is why I went ahead and installed Fedora Linux 40 on a Sandisk Ultra 16GB USB 3.0 flash drive (the one that is actually 16GB). The storage speed is still a bottleneck, but it’s much less noticeable during normal use.

After the installation is done, you’re simply using the system as-is. Opening programs will have a slightly longer delay, but it’s still a perfectly cromulent Linux experience.

A fresh installation of Fedora Workstation 40 uses only 3.6GB of storage! On a 16GB USB flash drive, this leaves plenty of room for performing system updates and installing a small number of applications. If you choose the btrfs filesystem during the installation (the default option), then the files will also be compressed to save even more space and increase the effective storage bandwidth.4

Disk usage on a fresh Fedora Workstation 40 installation.
Disk usage on a fresh Fedora Workstation 40 installation.

You’ll only notice that you’re running off of a USB flash drive when installing new packages, performing system updates or downloading large files. At least with Linux you have control over when you want to install the updates.

It's not terribly fast, but it's not terrible!
It's not terribly fast, but it's not terrible!

Using btrfs also allows you to easily check the flash drive for any integrity issues. Simply run sudo btrfs scrub start -B / and you’ll know soon enough if your flash drive is messing with your data.

The backerupper USB stick

One actual use case that I have for a full Linux installation on a USB stick is the backerupper solution: a fully featured Fedora Linux installation, stored on a small USB stick, and with limited access to networked storage.

Most people working in IT know the joys of working with hardware that family members and relatives own. Before doing any destructive changes, it’s always a good idea to make a full disk copy of the storage on the machine you’re fixing. If you screw up, you’ll have a way of setting everything back just as it was before you did any work on it. A full disk image will also mean that nothing will be left behind before you do a fresh installation.

I already have a home server with some spare storage, so using it as a target for any backups makes perfect sense to me.

This solution has already come in handy once when I had to deal with a 10-year-old laptop with a dying hard drive.5

Crappy storage is still crappy

Don’t expect any kind of longevity with USB sticks, the wear leveling and endurance is not on the level of proper SSD-s. Linux is nicer to the USB stick regarding the wear and tear, but given enough time, the USB flash drive will still fail.

I will still keep using USB flash sticks for this purpose. I have backups of the USB stick installations on my server, so restoring it will simply mean getting another USB stick and writing the full disk image back to it.

USB sticks are also great for specialized solutions that don’t do a lot of IO operations. LibreELEC, a media-center oriented Linux distro, can be run off of a USB flash drive without any major issues, since its storage demands are very small (unless you install a ton of plugins).

Conclusion

Linux and USB flash storage is a great option for making backups or having a working operating system available for disaster recovery scenarios. Just mind the endurance of the flash storage, and don’t use Windows.


  1. I won’t trust Ventoy until they address this issue. ↩︎

  2. Linux can also install firmware updates on some machines and hardware, but it’s not a guaranteed success. ↩︎

  3. only the third time that I’ve actually fried a solid state flash storage device through write abuse in my life. Flash is actually pretty good! ↩︎

  4. compression allows us to push more data through a small pipe, be it a slow storage device or the network, at the cost of additional CPU usage. ↩︎

  5. I utilized my sick tech skills to force a full rewrite of the disk to reduce the number of pending bad sectors, and that made Windows happy enough to run on it once again with a fresh installation. It’s a ticking time bomb, but the user is well aware of it and just wants to have a working backup laptop around. ↩︎