Why dual-boot Linux when you can run it from a USB flash drive?

I’ve been a sideline fan of Linux for a long time.  My very first experience with it was buying one of those 800 page, dictionary-sized technical manuals for Linux which came with Red HatSlackware and Caldera.  I effectively destroyed my Windows 95 box trying to get Red Hat installed and failing.

After that, I was much more cautious, but I’ve always had an active interest in Linux.  For about a year I trolled Distrowatch to keep up-to-date about distribution updates and what was hot.  While I was working at Albertsons, I randomly decided to install 5 of the most popular Linux distributions into a VirtualPC environment to test them out and see which one I liked best (I ultimately decided I still liked Ubuntu best, with Fedora being a fairly close second – if it wasn’t for the fact that I dislike KDE).  I’ve tested more Linux distributions than I can count on my fingers and for about a year I ran Ubuntu as my primary operating system at home, only booting to Windows for games.  I gave that up when I left my job at Albertsons to do web design full time.  As much as I like Linux, running virtualized versions of Adobe applications was just going to unnecessarily eat up resources, and I’m still not ready to switch to GIMP (though I could probably ditch Dreamweaver for just about anything else as long as it runs well).  For a few months I had an Ubuntu partition on my main system, but I never used it, so I got rid of it.

Linux on a stick

For the winter holiday, I got a USB thumbdrive.  The main use I had in mind for this was pretty much the same as my old zip drive when I was in college – to store large files – mostly graphics — that I could transport and use on other systems.  We don’t have a printer because for the amount that ink cartridges cost vs. the amount we actually print anything on paper, it’s just not worth it, so I end up going to FedEx/Kinkos to print stuff, using their online form to upload files from home.  This is fine and dandy, but when I have something that I know would take them 3 minutes to run if they just got off their ass to do it, it’s annoying to wait a half hour or longer for them to call and say it’s done.  Enter the thumb drive: I can save whatever document I need to print on that, take it to the FedEx/Kinkos office, and print it myself.  When I noticed they had USB ports for such purposes, it was instantly on my list.

Realistically, I only need maybe 500 MB for anything I might possibly need to print, if that.  The USB thumb drive (which now lives on my keychain) is 2GB – so what to do with the remaining 1.5GB?

My first task was to export my data from LastPass to the thumbdrive.  I’ve been using LastPass and updating all my passwords to more secure ones (14 characters, alphanumeric with symbols, randomly generated), so this way I could have a backup of my passwords that was always on me and encrypted.  That’s 138KB.

Then I saw a blog post on LastPass’ blog that talked about how to install a portable browser onto a USB flash drive and install their plugin on said portable browser – that way you can take your entire password vault to any computer you want and run the browser from your USB drive.  I went straight out and downloaded Google Chrome Portable, installed the LastPass extension (and, actually, ran Chrome’s sync to grab all my other extensions and bookmarks).  Now I have an entire browser with all my ridiculously encrypted passwords that can run straight from my USB drive on any (Windows) computer.  That was another 150MB or so.

I started toying with the idea of running Linux from a USB drive and started looking into how it was done.  Most of the manuals and blogs I found on the subject were a couple years old, so that didn’t help when many (if not most) Linux distributions release updates at least once a year if not more.  I did, however, learn that running the portable version of Ubuntu took between 1-2GB and would wipe out any existing data on your drive – not ideal, so I started looking at alternatives.

I chose Puppy Linux because it’s designed to be small and portable (100MB!).  It also doesn’t seem like it gets updates every 6 months which, in this case, is a good thing (since I won’t be updating an operating system that lives on a USB drive).  The documentation on the Puppy site is a bit of a nightmare, though, so I waited.  Then I stumbled on Pendrive Linux.  Pendrive Linux has a Universal USB installer that will install any from an exhaustive list of distributions (and any distro you want that’s not on the list) directly to your USB drive without you needing to do much of anything (other than download the actual ISO).  The link built into the installer for Puppy Linux Lupu 5.2 was broken, but I was able to navigate through the FTP server to find where it actually lived.  After downloading the ISO, the actual installation took maybe 5 minutes.

From what I’d already read, I knew that I’d need to go into the Boot Menu during startup to select the USB drive as a boot device.  About 45 seconds later, after being greeted by a friendly Puppy logo, I was at the desktop.  I was surprised by how quick the everything moved – I was used to LiveCDs where you clicked on something and have to wait a minute for the system to respond.  Everything behaved as if I was running an operating system directly off my hard drive.  The other thing that I found pretty cool about Puppy is that you can save your settings onto your flash drive, which means that when I clicked on Browse and was prompted to install a browser (Chromium, onto which I again installed the LastPass extension and then synced my bookmarks and preferences), it would be able to save everything I downloaded into its save file.  LastPass bitched at me for using the autologin option, so when I was prompted to save my Puppy preferences when I went to shut down, I encrypted the save file, so you’d need to enter a password to get to the Puppy desktop.  You can choose the size of your save file – I chose 512MB, the default – in sizes which range from very small (I didn’t pay attention, but I think it was as low as 64 MB or less) to 2GB.  All told, with Chromium installed and my 512MB save file, the entire operating system takes up just 640MB, leaving me with more than a gigabyte to do whatever I need to.

Now, not only can I run a personalized browser on any Windows computer from my USB drive, I can run an entire freaking operating system from my USB drive, presumably (though this is, as yet, untested) on any computer anywhere.  And it fits in my pocket.  If I wanted, I could install a LAMP onto Puppy and tell people I had a webserver in my pocket.  But that’s a little insane, I think.  The whole process was surprisingly, ridiculously easy and I never once needed to boot from a LiveCD or otherwise boot into Linux to run the install except to actually test the fully-installed OS.

The idea that I can carry around a ready-to-go operating system in my pocket that I can use on any computer is pretty awesome (as well as the fact that you can get a drive to run said operating system for less than $20) and I’m sure has implications I haven’t even fathomed yet.