How To Get A Full Install Of Linux On A USB Stick
In previous articles and videos I’ve discussed how to get a "Live" mode (i.e. as if your computer were booting from CD) of Linux on a USB stick. Some people think this is cool but would rather have a full CD-sized distribution installation instead. And when I said "CD-sized" I’m referring to distributions that take up the entire contents of a CD (such as Ubuntu) and not "biz card" distros like Puppy Linux and Damn Small Linux.
To do this it isn’t dependent on the distribution you’re using (you can use any you like) but more so on your USB stick itself.
Consider it this way: You want to use your USB stick as a "hard drive", so to speak. Being that’s the case, you need a stick that exceeds the minimum requirements for the OS to work.
Using Ubuntu as an example, the minimum requirement according to its native installer is a drive that has at least 2048MB free. A 2GB USB stick isn’t enough because it doesn’t have enough minimum space – so you need a 4GB USB stick.
Side note: Think a 4GB USB stick is expensive? It’s isn’t. It’s 8 bucks. And I remember not more than 3 to 4 months ago they were $22. These things are getting so unbelievably cheap it’s ridiculous – and they all work.
My recommended method for installing a full Linux distro on a 4GB USB stick
Before continuing, yes the way I do it is complete overkill – but I like to have absolute 100% confirmation that the Linux install absolutely positively will not touch the internal hard drive of my system. You’ll understand what I mean by that in a moment.
1. Head into the BIOS of your computer and from the boot device order set the first to be CDROM and the second to be USB-FDD, USB-HDD or USB-CDROM.
If USB-FDD doesn’t work for a boot device, try USB-HDD. If USB-HDD doesn’t work, try USB-CDROM. One of them will eventually work. And if not, try plugging the USB stick directly into the back of the computer (as in use the USB ports that are directly off the motherboard and not the ones wired to the front of the case).
2. Power off your computer, open the case and physically disconnect the hard drive from the motherboard.
This is the overkill part. Not entirely necessary, but I don’t want GRUB to even know the internal hard drive exists – because even if you set the hard drive "not to exist" in your BIOS, the Linux installation will still "see" your internal hard drive on most motherboards. I go the extra mile by cracking open the case and unplugging the SATA connector from the motherboard physically.
Before rebooting the computer:
Pop in your Linux distro CD-ROM into the tray because you’ll need to boot from it to install the OS to the USB stick.
Insert the USB stick you want to install the OS to into one of your open USB ports.
3. Reboot and proceed with a normal Linux distro installation.
If all goes well, your computer will boot up, spin up the CD-ROM and launch Linux in a Live mode. From there you proceed with a normal installation. Being your hard drive is physically disconnected the OS will be forced to pick the USB stick as its only means of media to install the OS to.
When done, the OS will prompt you to eject the disc (which you do), then restart the computer.
4. Reboot and test the Linux OS off the USB stick to make sure everything works okay.
On reboot you should have a full Linux OS ready-to-rock. If so, you’re all done with that.
5. Shut down, power off the computer and reconnect the internal hard drive to the motherboard.
Once the USB stick has a full Linux OS on it you’re safe to reconnect your hard drive back to the motherboard.
6. Do a test boot with the USB stick inserted to see if it loads first before the internal hard drive does.
Your boot order should be CDROM, USB-FDD (or HDD or CDROM) then HDD. So what your computer should do is try to boot from the optical drive first, then the USB stick and then the internal hard drive.
If all goes well, whenever the USB stick is plugged into the computer and booted from a "cold start", it will always boot from the USB stick first whenever you want to go into Linux. When done you log out of Linux, shut down, power off, unplug the stick and reboot again to go back to the internal hard drive’s OS.
Final notes
You should bear in mind that by installing a Linux OS on a USB fashion it will not be portable. What this means is that the OS will set itself to use the computer it is first booted from and configure itself as such.
If you take the USB stick after a full install and boot, then bring it to another computer with different hardware and boot from that, chances are high that the internal settings of the OS on that stick will get all messed up because it’s "expecting" a different the computer it was first booted from. Sure, you can simply reconfigure everything and get it working again relatively quickly for anything messed up, but that’s a bit of a hassle.
For each computer you want to boot a full-install-on-USB-stick distro from, it’s recommended you get a separate USB stick dedicated to each computer. The sticks are cheap enough anyway so it’s not a big deal.
5 thoughts on “How To Get A Full Install Of Linux On A USB Stick”
I installed ubuntu 10.4 following the steps. Everything works as expected as long as the internal HD is not connected. I checked the BIOS, the USBs are the first option, the HDD is the last.
So, what can be wrong?
Are you using Diskpart to prepare your USB drive?
While many USB Flash drives can function as bootable devices, it’s mistake to tell people that “they all work” when they don’t.
ATTENTION CONSUMERS! GEEKS! ETC! ALWAYS READ THE PRODUCT REVIEWS WHEN YOU BUY! Yes some of them will be placed there by the manufacturer, but when most of them say “could not get it to work as a bootable drive” chances are you shouldn’t buy it.
(side note: I’ve had good results from Memorex and Kingston thumbs, and even a few generic ones, but never from a PNY. Very good brand, but no flash drives for some reason.)
Use that and then tell me they don’t work. Seriously. You’re using crappy boot loaders. Junk those and use something that works.
And cut the caps. Makes you look like an idiot.