Although Chrome OS is competent at handling web-based workloads, by design it's light on features compared to a full desktop operating system, which is presumably where many of its users are coming from. Fortunately, if you're on Google’s operating system and wish it was a little more flexible, it's possible to install a fully functional copy of Linux on many Chrome devices.
Options range from running a Live USB drive outside of Chrome OS to installing a firmware mod for a traditional dual-boot configuration. And of course, you can also overwrite Google’s OS in favor of Linux. However, these routes are less practical than simply running Linux in the background of Chrome OS on a separate USB drive/SD card, which is what we’ll be focusing on here.
The main reason for this being that few Chromebooks have more than 32GB of storage and you’d have to play it pretty conservatively to give Linux enough storage space, particularly so on the basic 16GB Asus C202SA we’ve been using for testing Chrome OS. It should also be said that Chrome OS has its perks (great battery life, speed, ease of access) which may be useful if you don’t need Linux 24/7.
Before you get started…
Your mileage will vary depending on the device, distro, and installation method. It’s also worth mentioning that if you're not experienced with Linux, this process might require some trial and error but experimenting is low risk.
Also read: A Beginner's Guide to the Linux Command Line
Regardless of your approach you need to enter Chrome OS Developer Mode, which will warn you about wiping your local files, but everything else is synced to Google and will reappear when you log back into your account.
To enter Developer Mode: Press the Escape + Refresh + Power buttons at the same time and then hit Ctrl + D when you reach the white screen (you’ll have to hit Ctrl + D at this same white screen every time you reboot now).
Reverting back to the normal mode can be initiated by hitting your space bar at the same white screen, and again, this will wipe local files. On the bright side, Chrome OS only takes a few minutes to fully wipe and reinstall.
Step 1: Format your Linux drive to .ext4
It may be easiest to format your new Linux drive with another machine, but it is possible via Chrome OS Developer Mode and you should already have that enabled.
Open a terminal (Ctrl + Alt + T) in Chrome OS and enter the following lines (you can copy any of the commands below and right click in the terminal to paste them):
df -h (populates a list of directories including your soon-to-be Linux drive)
sudo umount /dev/YourLinuxDrive (that’s umount, not unmount…)
sudo dd if=/dev/zero of=/dev/sdX bs=1M count=100
sudo mkfs -t ext4 /dev/YourLinuxDrive
Reboot your Chromebook and the drive should be remounted and ready for Linux (if not, eject and reinsert the drive).
Step 2: Install Linux to formatted drive via Crouton
Picking a distro will depend on compatibility with your hardware. If you’re not sure which OS to try, we suggest Trusty Ubuntu, which has worked great on the Asus C202SA. You don’t need to download this in advance.
You do, however, need to download Crouton or the ‘Chromium OS Universal Chroot Environment’: Go to the GitHub page on your Chromebook and click the goo.gl link (currently https://goo.gl/fd3zc) which should place a Crouton file in your downloads folder.
Assuming your drive is already formatted to ext4, you’re ready to begin the install (you can replace “trusty” and “xfce” with your preferred distro and interface):
sudo sh -e ~/Downloads/crouton -r trusty -t xfce -e -p ‘/media/removable/YourLinuxDrive’
Provide passwords when prompted and prepare to wait a while.
To update your install with new parameters later you can use the -u operator. This is also handy if your install pauses or fails and you want to resume where you left off:
sudo sh -e ~/Downloads/crouton -r trusty -t xfce -u -e -p ‘/media/removable/YourLinuxDrive’
Step 3: Launch your new Linux install
Assuming everything went smoothly, you can access your new Linux installation with the following commands (shell isn’t necessary if it has already been entered):
sudo sh ‘/media/removable/YourLinuxDrive/bin/startxfce4’
To leave and return to Chrome OS simply log out of Linux with the GUI.
Note: For some reason, every time we’ve done this there is no Internet connection on the first log in to Linux but after exiting and reentering the OS everything works as expected. Also note that the downloads folder is shared between Linux and Chrome.
I don’t have a spare USB drive/SD card!
In case you haven’t priced them in a while, it’s worth noting that there are $25 64GB drives around in both formats so those might be worth considering. Although we haven’t written a step-by-step for all of these options, the information below should get you pointed in the right direction for each method you can use to install Linux on a Chrome device, along with the reasons why we wouldn’t recommend them for most people.
- Traditional live USB drive/device - Requires a firmware mod for boot selection and you must exit Chrome OS to access Linux.
- Crouton on your default drive alongside Chrome OS - You’ll want at least a 32GB SSD and you can begin with the instructions above in step 2 but exclude “-p ‘/media/removable/YourLinuxDrive’” so the installation is no longer pointed at a separate drive.
- Traditional dual boot - We wouldn’t try this either on less than 32GB Chrome devices and it also requires one of these firmware mods.
- Overwrite Chrome OS entirely - We don’t recommend this because Chrome OS is handy for its battery life and speed, but you will again require one of the firmware mods already linked, which will allow you to boot off a live Linux drive to install the OS as you normally would.
Wrap Up Tip
If you dual-boot Chrome OS and Linux and want to reclaim the latter partition, reinstalling Chrome OS with a recovery drive will automatically delete and merge all partitions. Although enabling/disabling developer mode performs a powerwash, this doesn't appear to touch other partitions. You can create a Chrome OS recovery drive with the Chromebook Recovery Utility extension, which can run from your Chromebook or Chrome browser on another machine.