How to run Linux on a Chromebook

The HP Chromebook 11 Credit: Image credit: IDG News Service/James Niccolai

Want to run Debian or Ubuntu on your Chromebook? With Crouton, you can do that.

I love my Chromebook. Or, I should say, I love my Chromebooks. You see I have an early model Samsung Chromebook, a Samsung Series 5 Chromebook, and my terribly expensive, but worth every penny, Chromebook Pixel.

How do I love my Chromebooks? Let me count the ways: Faster than fast Web-browsing; great software-as-a-service (SaaS) programs; automatic updating, real improvements with each new major update; and great desktop security. It really is the first operating system in decades that is giving Windows a run for the desktop dollar.

But, there are still some things a Chromebook can't do as well as a traditional fat-client style desktop. For me, it's graphics. I don't do much graphics work, but I do some and when I do my program of choice is the Gnu Image Manipulation Program (GIMP). While ChromeOS is based on Linux, it doesn't natively support sophisticated Linux programs such as GIMP, LibreOffice, or the Evolution mail client.

Chromebooks are the new Swiss Army knifeImage credit: ITworld/Phil Johnson
It’s a laptop! No, it’s a floor polish! No, it’s a dessert topping!

Fortunately, there's an easy way to add desktop Linux to a Chromebook to give you the best of both worlds: traditional Linux and Chrome OS. Note: you can also try to dual-boot a Chromebook, but I haven't yet found a way to do this that I'm happy with, so I'm going to just focus on the easy, safe way to have your ChromeOS and eat your traditional Linux cake too: Crouton.

Crouton

With Chromium OS Universal Chroot Environment (Crouton), you use the Linux command chroot (Change Root) to simultaneously run a Linux operating system, typically Ubuntu, alongside Chrome OS. Crouton is a set of scripts that provide for an easy-to-install chroot Linux distribution setup.

Chroot is usually used for system maintenance. It enables you to run a different root, the super-user or administrator, of Linux systems from a different directory than your normal root directory. You can also, as Crouton does, use it to run a completely different Linux distribution within another.

This isn't the same thing as a virtual machine (VM) or a container. In the former, you're running a full operating system image. This, in turn, is managed by a virtualization or paravirtualization manager (a.k.a. a hypervisor). Containers maintain their independence from their host operating system and other container instances, but they run directly on top of the core operating system. Chroot's advantage to these approaches in this one case is that you can run it on a Chromebook without additional software. Someday, I'm sure, someone will add either a VM or container technology to Chromebooks, but no one's done it yet.

For users the win for the Crouton approach is that you can switch between Chrome OS and Ubuntu with a keyboard shortcut. You won't need to reboot it. Because this approach uses your Chromebook's native hardware drivers you also won't have incompatibility problems. In short, this is the easiest and most flexible way to run native Linux and Chrome OS on one machine.

Here's how you do it.

Adding desktop Linux to your Chromebook

First, you need to enable "developer mode” on your Chromebook. Keep in mind that, as Google warns you, "Modifications you make to the system are not supported by Google, may cause hardware, software or security issues and may void warranty.” In addition, if you've been storing files on your Chromebook's drive, get ready to kiss them good-bye. You should put them on your cloud-based Google Drive where they'll be safe. The local files will (not might, will) be blasted into oblivion.

If everything goes wrong, you can, by the way, restore your Chromebook to normal. I've done this procedure more times than I can easily count and I haven't lost a Chromebook yet.

On Samsung Chromebooks or the Chromebook Pixel, you get to developer mode by pressing down the Esc and Refresh (a.k.a. reload) keys together and then tapping the Power button. First and second-generation Chromebooks usually have physical developer switches that you’ll need to switch. Check your Chromebook's technical documents to find exactly how you'll need to enter developer mode.

Now reboot your Chromebook. Instead of the normal screen, you'll see the recovery screen saying that Chrome OS is missing or damaged. Do not panic. This is normal. At this screen press Ctrl and D, agree to continue, and you'll be on your way to developer mode. You'll get one more screen telling you that your system is getting ready for Developer Mode. This screen will stay in place as it clears your hard drive and gets it ready for a fresh Developer Mode install of Chrome OS.

Chrome OS recovery screenImage credit: ITworld/Steven J. Vaughan-Nichols
Don't Panic! This screen, or something very much like it, is what you should be seeing at this point.

Then, reboot again. You'll see another scary message this one telling you that OS verification is OFF. Don't sweat it. Instead go ahead and let the boot continue. It will take longer than you expect, about 30-seconds, but that's normal. Once you're at the Chrome OS screen, download the latest version of Crouton.

Once Crouton is downloaded, which should take no more than a few seconds on all but the slowest Internet connections, you're ready for the next step. This is to open a crosh terminal with the Ctrl-Alt-T keyboard combination. Crosh is a limited Linux shell. Once there, you start a full Linux shell with the command: shell.

Next, run the following Crouton command to see what versions of Linux it currently supports. Be sure to enter this command, and the others that follow, exactly. In Linux shell commands, spacing and capitalization does count for your final score!

sudo sh -e ~/Downloads/crouton -r list

At the time I wrote this (late January 2014), Crouton fully supported the following versions of Debian Linux: wheezy, jessie, and sid. It also supports Kali, a security testing Linux, and Ubuntu precise, quantal, raring, and saucy. In other words, most of the newer versions of each Linux distribution. If you want to live dangerously you can also try to run older versions of each Linux.

Let's say you want to run the latest version of Ubuntu, Ubuntu 13.10, Saucy Salamander with the Unity interface and encrypt the chroot for extra security. In that case, you'd enter the following command.

sudo sh -e ~/Downloads/crouton -r saucy -t unity

Here's what going on in this command. The -e is telling the Crouton script that we want to encrypt the new Linux's directories. This does not mean that someone can't crack into your distribution, but it will make it harder.

The -r stands for release. This is how you tell Crouton which specific Linux distribution you want to install. Finally, the -t, for target, tells you which desktop interface you want to install. To see what desktops are available for your distribution run the following command:

sh -e ~/Downloads/crouton -t help

The installation process will take a while. Your Chromebook will be downloading and then installing your new operating system.

Installing Ubuntu with CroutonImage credit: ITworld/Steven J. Vaughan-Nichols
It's not very exciting but so long as you see this kind of list of programs being downloaded and installed you're on your way to having Ubuntu, or another Linux distro on your Chromebook.

After it's installed, you start running your new Linux from the full shell terminal with the command:

sudo startunity

And, if all has gone well—ta-da!--you now have a working copy of Ubuntu 14.04 running alongside Chrome OS. To switch between the two operating systems, use the following keyboard sequences: Ctrl-Alt-Shift-Back and Ctrl-Alt-Shift-Forward.

Your new Ubuntu session will last only so long as you're chroot session does. In other words, if you log out of it, or turn off your Chromebook, you'll need to restart the chroot session and Ubuntu.

In all other ways your chroot Ubuntu will work exactly like normal Ubuntu. You can install games, run programs, and do whatever else strikes your fancy. However, your work isn't quite done yet. With Crouton and saucy, in any case, you get only a bare bones Ubuntu installation. This means you'll need to find the programs you want to install on the Web.

The easiest way to do this is to install each program with the venerable apt-get command. To accomplish this run the following command from your new Ubuntu's terminal for each program you want to install. In my case that went like this:

sudo apt-get install gimp
sudo apt-get install libreoffice
sudo apt-get install firefox

(I know, I know, I'm installing Firefox on top of Ubuntu running on top of ChromeOS. What can I say, it appealed to my sense of whimsy.)

Want to know more about how to use Crouton? You can pick up the basics at the Crouton README and find more advanced topics at the Crouton wiki.

Does it work? Yes, yes it does. I wrote this story with LibreOffice, and tweaked the images with GIMP in Ubuntu on my Chromebook Pixel. For Linux users, this really is the best of both worlds.

Now, if there was only a way I could run Android on it at the same time….

Insider: How the basic tech behind the Internet works
Join the discussion
Be the first to comment on this article. Our Commenting Policies