Putting Linux on your Chromebook is easier than you think (and totally worth it!)

You've may have seen chatter on the internet about installing Linux on your Chromebook. Plenty of longtime Chrome OS users are doing it, and it allows the use of programs like GIMP (a Photoshop replacement), or Darktable, (a Lightroom alternative) as well as plenty of programs for video and audio editing. It's a way to use your Chromebook for the few power-user features you might need. It's also completely free and easier than you think.

Let's walk through an easy setup that keeps Chrome OS and is able to run Ubuntu with the Xfce desktop and any applications you might need. You'll be able to run both operating systems at once with a shared Downloads folder, a shared clipboard and web links opening in the Chrome browser you're already familiar with. You can even run them side by side in a split window.

And yes, it really is as cool as it sounds.

Getting started

Transitioning to dev mode

Before you try anything we're talking about here, you need to do two things: back up all your user files to Google Drive, and have a Chrome OS restore image ready just in case. We're going to be unlocking developer mode and starting with a clean and current Chrome OS install. There's no way around that. The first time you unlock developer mode your Chromebook is Powerwashed and everything is erased. And whenever you're doing something like this there is always a chance that you'll need to reinstall Chrome from scratch with the restore image. Don't worry, none of this is difficult.

Get everything you need ready before you start so you're not stuck looking for it if things go wrong.

You'll need to search Google to find the exact instructions to unlock developer mode for your Chromebook. On some models, you'll need to toggle an actual switch, and on others it is done through the standard recovery software. If you're using a Pixel, for example, you press and hold the Escape and Refresh keys, then hold the power button until the system shuts off and the keyboard backlight comes on to enter recovery mode. On some older Samsung Chromebooks, you'll need to find a switch next to the SD card slot and flip it, then reboot. Everything you need to know is a web search away.

The same goes for grabbing a restore image. You'll find full instructions on where to download one and how to write it to an SD card or thumb drive. Don't skip this step — especially if you don't have another computer to use. The process is simple and it's always nice to have everything you need to factory flash your Chromebook on hand.

Once you're unlocked and prepared in case you need to start from scratch, we can start copying some files.


Crouton installed

No, not the breadcrumb kind of Crouton, the chroot kind from David Schneider (opens in new tab), a Google hardware engineer who loves Chromebooks. Crouton is a script that you can run to automatically fetch all the bits and pieces you need, create an environment for them, and get everything working without doing it by hand.

Using the same principle that Android and Google Play are using to run on Chrome, you can install a full Linux desktop that runs in its own space yet is able to share your Chromebook's hardware. This isn't the only way to install Linux on your Chromebook, and nobody is saying it's the best way. But it is easy simple to uninstall or modify down the road. To get started, grab your Chromebook and download Crouton.

If you're not going to play Steam games, you can run Chrome and Ubuntu at the same time in separate windows.

For the next step you need to make a choice — are you going to install Steam and play games? We'll cover that with another how-to, but know that installing the full Steam client and installing any games your Chromebook meets the minimum requirements for is a thing. We're going to be using a Chrome extension called Crouton Integration (also from David Schneider) that works with the window manager to run your Linux desktop in a window while Chrome OS is still active. This allows you to share things like the clipboard and Downloads folder, as well as use Chrome itself to open web links and pages.

The only concern is that there are performance trade-offs when you're running something that taxes the GPU. For a program like GIMP, it's fine. For Rocket League or CS: Go, it's really not. If you're not going to install Steam, grab the extension from the link above and install it. We'll split out instructions anytime they're different.

Once you have Crouton downloaded, and the Crouton Integration extension installed if you need it, we can install Linux with just a few commands.

The Chrosh shell

This is Chrome OS's command line interface, and what you'll need to run the installer. Open one with by pressing Ctrl+Alt+T on your keyboard. A new tab will open with a text interface. Switch to it, and enter the command shell to change from the Chrosh (Chrome Shell) shell to a proper bash (Bourne Again Shell — a command interpreter that's universal across Linux, BSD, and OS X) shell. The text will change to green and you're ready to run the install script.

  • If you are using the Crouton Integration extension, type the following and hit enter. Mind the spelling, spacing, and punctuation.
sudo sh ~/Downloads/crouton -t xiwi,xfce
  • If you're not going to use Crouton Integration, use the following instead:
sudo sh ~/Downloads/crouton -t xfce

Now, we wait. Crouton is creating a chroot environment, fetching the right software packages and extracting them to the right place. You'll have to interact with the shell tab a couple of times, but it halts at the right spot and waits for your input so you don't have to try and read all the scrolling text. Depending on your internet connection, this will take anywhere between 5 and 20 minutes.

When it's finished downloading and unpacking, you're ready to fire things up.

Starting your new desktop

Using the same shell you used above, type sudo startxfce4 and press the enter key. A few lines of text will scroll by, then you're switched to a new GUI. What you're seeing is a full install of Ubuntu (12.04 LTS at the time of this writing) with the Xfce desktop environment running. You'll use the username and password you set up earlier, and you can install any application the runs on Ubuntu and built for your processor architecture.

If you choose to integrate Crouton into Chrome, you might need a couple tips to get started.

The first time you launch Ubuntu, it might open full screen and prompt you to use the F11 key to switch back to a windowed view. Your Chromebook has no F11 key so you'll need to use a little trick to exit. Right-click on the desktop and add an internet shortcut. It can point to any website or local file, so that's not important. It will use Crouton Integration to switch back to Chrome OS to parse whatever URL you entered and minimize the Ubuntu window. You can then switch between Chrome and Ubuntu using the tray icon for Crouton Integration and Ubuntu will stay inside a bordered window with standard minimize, maximize and window keys.

A quick trick in case it happens again after you shut down — open the extensions page in the settings and scroll to the very bottom. Click the link titled Keyboard shortcuts and create one for Crouton Integration. You can use that shortcut to move to and from full screen.

If you didn't use Crouton Integration, none of this applies. When you start an Ubuntu session, Chrome is suspended and when you log out you're returned.

If you lose your mouse pointer the first time you start Ubuntu, don't panic. On some hardware, this is expected. Just press and hold the power button until you're at the login screen, and use Tab and Enter to shut down. When you reboot things are fine and it won't happen again.

Make it your own


Using these instructions you'll have a very basic setup. You'll probably want to customize it a bit. You can go through the settings and try them all, but there are a few things you will probably want to install to get started — a bash utility and the Ubuntu Software Center. To get both up and running, right-click on the desktop and open a terminal session from the menu. Type the following commands one line at a time, hit enter and let them finish before moving on.

sudo apt-get update

This synchronizes the internal package database with the online servers. Ubuntu uses packages to install software, and will automatically install everything you need to run a program when you install the program itself. The command line version is apt, and we want to update the package lists before we fetch any new software.

sudo apt-get install bash-completion ttf-ubuntu-font-family software-center synaptic

This installs a utility that lets you enter the first letter or letters of a location in the terminal, and use the Tab key to fill in the rest, as well as the fonts you'll need for the software store (otherwise some entries will have squares in place of letters) and the store itself. During the installation of the True Type fonts, you'll need to accept a license. Use the arrow keys to scroll the window, then tab key to choose an option and the enter key to accept.

Ubuntu has its own app store to install programs with just a click of the mouse.

Once finished, you'll find the Ubuntu Software Center in your apps list. That's Ubuntu's version of an app store where you can download just about any program available. If you're using a Chromebook with an Intel processor, there's nothing to do except look through it and grab the things you'll need. If you're using an ARM Chromebook, some of the programs aren't going to run — check the description and reviews to see if someone has mentioned it. If something you want isn't working for ARM processors, hit Google to find one that does. There a really good chance someone has compiled it for ARM because they wanted to use it, too.

You'll be told when updates to your operating system are available and can install them with the click of a button. You'll probably see a notice that a new version of Ubuntu is available to download. Don't just click yes and try it! Ubuntu 12.04 LTS isn't the newest version, but it is the best-supported version for most Chromebooks. Any and all critical updates and patches are available for 12.04, so there is no urgent need to try it. Google around a bit and see how newer versions work with your particular model before you jump in.

One last thing


Because your Chromebook is in Developer Mode, you'll need to hit Ctrl + D at the boot screen every time you start it. You'll also get a scary warning about security. Know that doing any of this makes your Chromebook less secure. It's still more secure than most other laptops, but you are giving someone with physical access another way to try to get in.

When you log out of Ubuntu you go back to Chrome. the tab with your shell session is still open, and to go back just type sudo startxfce4 again. When you shut down, you'll need to reopen a shell session tab (Ctrl+Alt+T) again, and switch to bash with the shell command. You can then start Ubuntu with the sudo startxfce4 command. The tab with the shell running will need to stay open while you're in Ubuntu.

All that's left now is to try it and see why the people "dual-booting" on their Chromebooks love it so much!

Jerry Hildenbrand
Senior Editor — Google Ecosystem

Jerry is an amateur woodworker and struggling shade tree mechanic. There's nothing he can't take apart, but many things he can't reassemble. You'll find him writing and speaking his loud opinion on Android Central and occasionally on Twitter.

  • No. It isn't easier than I think. It is exactly what I do. If making assumptions about your audience isn't bad enough, you always have to assume the we know nothing. I guess that this is what your analytics say about your audience.
  • Somebody get this guy a snickers...STAT!
  • He must have missed all the "How to change your desktop background" and "What's new in Subway Surfers" posts.
  • And here I was thinking that he'll go over how to wipe out Chrome completely, bypass any warnings from the BIOS and load linux directly, not with this Crouton crap... all in no time or effort at all. Yeah, I'd buy a machine like this if it had straight forward support for linux.
  • Yes, please! Hehehe
  • It's just standard operating procedure for writing up an informative piece. If you assume that your audience already knows everything that you have to tell them, then you obviate any need to write to them. Besides, if you already have installed Linux on your Chromebook, then you should have expected going in that you weren't part of the audience for this article.
  • I bet he writes all those Linux user guides that start at page 5 of 7 and assumes that you've been using Linux for the past 15 years so didn't need the first four. Grrrr.
  • Those people are the worst. Everyone was a noob at some point and pretending that noobs don't exist and/or being hostile to them is one of the many reasons most people will never switch to Linux.
  • What does "knowing nothing" means, by the way?
  • When you come across a how-to article about something written below your own knowledge level, you have two options. 1) Don't bother to read it because it doesn't apply to you, or 2) Be a smug, condescending prick in the comments. Adults choose the first option.
  • +1000
  • I promise you that was not the intention. Jerry is, like you, well versed in these matters. Most others are not. It's a fair assumption to say that most Chromebook users would, as would I, think installing Linux would be difficult on a Chromebook — not because they aren't able to do it, but because the Chromebook wasn't designed for it. That's the assumption we're making.
  • There are two ways of installing Linux on an Chromebook. The one appears in Google when you search, and the easy one posted above. Oh wait, they are the same. How is this possible? Look, the article is very good and relevant. However Android Central has the custom of using 'you' in their article titles when they know that they have a diverse audience. It's a lame attempt of luring readers in a way that doesn't respect diversity. My provocative remark above that disrespects diversity was made to make the point. Your audience is diverse and another title like 'Instaliing Linux on a Chromebook is Easy-Peasy!' would have driven the point without luring those who are not part of the intended audience. I'm happy to see that I got the intended result. I'm feeling the wrath of the comments. Hehehe. As a bonus, I'm sure that the click metric for this article got a healthy boost thanks to it. The author should be very happy.
  • You must be a riot to hang out with.
  • No, just no.
  • Your first mistake was thinking someone made the internet for you. Your second was thinking that your opinion is important enough to change anything.
  • You're overlooking the fact that Chromebook runs on Linux out of the box. Chrome OS is based on Gentoo Linux. I understand that people mean "othe Linux" distros, but then we should specifically state that in the article AND comments. No matter how you look at it, chrome os IS linux.
  • No, Linux is a kernel and not an operating system. We can take this deeper :)   This is written for people who need assistance. Getting specific — "With Crouton you can install the Linux kernel and GNU utilities and middleware as well as FOSS from Canonical as a package called Ubuntu on top or your Linux kernel and GNU utilities with Chromium middleware and Google's closed contributions known as Chrome OS" is just confusing.
  • I stand corrected. ;) Now I'm a bit embarressed, should have worded my last commenf in a less arrogant manner either way! Thanks :)
  • You must be the life of the party.
  • Man "it's easier than you think" goes to the fact that you can have Linux on a session inside chrome OS without needing format. If you are trying to play the role of the imbecile though, you are free to go.
  • Thank you for this article, I didn' t even know this was possible! With being able to run Android and Linux, my next computer could just as well be a Chromebook! Yay :)
  • Thanks for reading! Let us know how you like it.
  • For about 2 years now I have wanted to do something like this, since I have been laptop shopping, and not able to rely on a chromebook fully.
    One day.....
  • No mention of flashing Linux and replacing ChromeOS completely? I'd think it's easier to be honest, but voids warranty. Similar start, Dev mode -> Chrosh, but then remove the write protect screw, flash SeaBIOS, and boot off a USB Linux install. More hardware/power available that way. Google could push these as very capable 95% open source boxes IMHO. The 5% is some BIOS code, and drivers afaIk.
  • Info on total replacement of ChromeOS is especially relevant now that more ChromeBooks are approaching their Google-announced end-of-life. With Cub Linux, users would get a nearly identical user interface, plus of course access to Linux apps, and the ability to print outside of the (crippled, never-fixed) Google Cloud Print.
  • It actually is NOT easier than I think. Heck, I am not even able to successfully sideload an OTA update on my Nexus 6P, let alone worry about what most of the jargons on this article mean :P
  • It is once you try it. But then again, it's better to get more info about Linux before performing such tasks based on a single article.
    For example, sideloading OS updates for Android may seem complicated.....until you see your 16 year old cousin doing it alone after watching a couple of Youtube videos.
  • Yeah, I tried watching some YouTube videos, then downloaded the entire Android studio and the Java SDK, then enabled developer options... blah blah blah... you know, the whole shebang. But after adb has recognized my device the first time, I put it in recovery through the command prompt, and then adb stops interacting with it. It is unable to send the update across. I don't know what goes wrong, but I've been stuck on this for a while now. Hence why I feel it isn't easier than I think, coz that's what I thought of adb and OTA on Nexus as well, and that didn't turn out so well...
  • If i buy the new acer chromebook 14 would i be able to put windows on it ?
  • I'm pretty sure you can, but I'm going to guess the performance may not be so great and your first obstacle will be the Chromebooks HD space (which is usually very low).
  • Windows wouldn't fit in that small HD and you would kill that low spec Chromebook. Windows is an OS made to carry with a lot of weight. Chrome OS is basically a glorified browser.
  • On my Pixel I run Windows in a VM through Chrome OS with a different, but similar setup as this article. Never believe anyone who says Chrome OS isn't powerful or just a browser :) Not sure how the Chromebook 14 would handle it, but I'd try before I installed Windows to the hardware.
  • Ok thanks ive got the asus x205ta and that has windows with a 32gb os but it came with it and had to use a usb stick
  • You will (eventually) be able to run Windows programs semi-natively using an Android app called CrossOver when the Play Store officially comes to ChromeOS. The programs would only be accessible inside the CrossOver app's environment, but that's only a few clicks to get to the programs you need. Side note, if the few media-related programs I use (MakeMKV, Handbrake and WinX DVD Ripper) work well enough on a Chromebook is CrossOver's environment, I will gladly use a Chromebook as my only laptop.
  • I had been considering getting a Chromebook for some time (i.e. I've been thinking about convincing my job to buy me one) and this is precisely what I'd want to do - being able to share a download folder and even clipboard is super great. I wonder if I (they) sprang for a touch-screen model if it'd work with Ubuntu. Are there Chromebook models that are better supported (their chips etc.) than others? People who find this daunting it's really well laid out and if you go step by step and copy/paste it should be pretty easy - and I'm going to assume it's not too hard to get a Chromebook back to factory defaults? Anywho - nice article me likes.
  • Hardware support (including touch) isn't much of an issue. Chrome OS is just Google's version of Chromium, which is completely open source. Everything needed to make the hardware work is put into Chromium by the people who make it. I can't think of any Chromebooks that don't have everything working, but of course, that can change. Intel chips are better than ARM, because of application support. I'd stay away from anything with an Exynos in it. it's not difficult to build a program for ARM chips but there just isn't much demand. Going back to default settings is easy. The boot screen tells you how to get started then walks you through. On some models you will need that recovery media you made in step one of this guide, but everything is automatic.
  • All the high schoolers in my son's school got Chromebooks with a pretty nice case/carrying case. They're all using google docs also. So cool! I used brown paper bags on my books for book covers. It was an art back then.
  • He claims they all get to keep them after the school year also.
  • Knowing I could put Linux on one of these I would consider a high end one.
  • Will Croutoned Chromebooks still run Android Apps?
    Where can I find a How To on running a linux (preferably Ubuntu) from Live USB with persistence?
    Keep up the good work!
  • Android and Google Play still work. Just be careful not to muck around with Android app data folders from the Ubuntu side. Installing on a USB drive or SD card is the same as above. You just need to symlink the external drive to /usr/local/chroots from the bash shell. Format the media (or at least the part you want for this) as EXT4. Find the path — it should be /media/removable/name-of-the-volume. Don't use spaces in the name — jerrySDcard is good, Jerry SDcard isn't — or you'll need to know how to parse them in bash. Just don't use spaces :) sudo mkdir /media/removable/Path-to-your-external-device/chroots /usr/local/chroots sudo ln -s /media/removable/Path-to-your-external-device/chroots /usrlocal/chroots Then install as normal. This just creates the folder everything goes in before the installer does it for you, so you can decide where it goes. Crouton doesn;t care where it's installed.
  • Any news on if Chromium will somehow be able to run the Play Store?
  • This would have been more useful if you included links in the places where you tell people to Google it. I mean, what is the point? And for the average user, this is not something that will be simple to follow.
  • So the article mentions a couple of photo editors, but my use case is needing a nice light EDC that can edit WAV files. I record friends' shows on an Edirol R09-HR (so the Chromebook won't be involved at the recording stage) but need to edit the levels (normalize), edit at the sample level (loud claps), split the single file into tracks, and ideally convert it all into FLACs. I prefer to avoid the pile of steaming crap that is Audacity... are there any decent audio editors that a Linux Chromebook would be able to run? (I'd rather pay for decent software than bother with Audacity.) Thanks for any pointers.
  • http://ardour.org/ That's everything you need and more. Be sure to install through the package manager (Ubuntu store) because it needs to replace the entire default audio routing stack with a zero latency version. It does it automagically.
  • If I can run an full fledged Ubuntu on a Chromebook then I might of just found a viable software development machine that would cost a fraction of what a Mac would.
  • You could do it the way I do it — install your new OS in a chroot without a GUI. Add the Crouton integration extension, but don't install a GUI when installing the new OS. (.../crouton -t xiwi ) Xiwi installs an x server so you're good. Then you can run your IDE right from Chrome OS From a Chrosh tab: shell sudo enter-chroot -b xiwi -T eclipse Starts Eclipse (or whatever IDE you're using) in a Tab ( -T) and squelches the shell output. (-b)
  • I was going to get a Chromebook to do this but bought a Thinkpad x220 instead for $80 on Craigslist. Runs Linux and has 160gb SSD. I would like to get a Chromebook but my understanding is that you can't replace the hard drive on most Chromebooks.
  • i'm in dev mode but when i try the instructions, i get "unknown command: sudo." any tips? i haven't been able to figure out why the commands aren't working.
  • did you type "shell" and change to bash?
  • Thanks, Jerry. I had installed xfce months before, but I think I must have immediately upgraded to version 14 -- the result was a bit flaky, so I powerwashed and didn't give it another thought. I will heed your advice and stay with 12. Works nicely. BTW, on my Dell 13 I can use the full screen function key to get out of full-screen mode when first starting xfce.
  • Untill chromebooks have very limited storage, its not a big point to put linux on them. They are superb machines in cloud with chrome, but a full use of linux really needs storage....
  • There is always micro usb. Well, maybe not "always" (do all CBs have card slots?). I have a 200gb card, and that is plenty for photo editing, short video editing, and android image flashing.
  • Good stuff. Like others, I too had tried it before, but didn't know about crouton integration and the linux upgrade issue. Now, Linux seems to work well. Now, I installed Kodi on it by following instructions on http://kodi.wiki/view/HOW-TO:Install_Kodi_for_Linux. Kodi does not seems to work - no sound, and it freezes on Kodi exit screen. Any tips? I'm on Acer CB5-571 with Intel chip.
  • Assuming you used the Kodi PPA to install the packages, did you uninstall kodi, kodi-bin, and kodi-data first? Not sure if they are present on a "regular" crouton ubuntu install, but if so they can cause issues. They were built for the Ubuntu store specific version of Kodi, and not the version from the Kodi PPA for Debian/Ubuntu. There's a chance the package manager would leave them in place if the version numbers are the same. I'll monkey around with it here. Probably a nice write up. Thanks for the idea!
  • Oh, man, it would be awesome to see your take on Kodi on chromebook. So far, not working for me. I didn't know about kodi, kodi-bin, kodi-data. So, I uninstalled it (sudo apt-get remove kodi kodi-bin kodi-data, sudo apt-get update, sudo apt-get remove kodi*, sudo apt-get purge kodi*, rm -rf ~/.kodi/) And then, installed it again (sudo apt-get install software-properties-common, sudo add-apt-repository ppa:team-xbmc/ppa, sudo apt-get update, sudo apt-get install kodi). Still the same problem; no sound, and freezes on exit.
  • chrubuntu or gtfoh