Dual boot Chrome OS and Linux

In my original guide many of you have asked how to dual boot Chrome OS and Linux on your Chromebooks. I’ve come up with this how to along with the video guide to make the whole process easier to understand and follow.

John has provided some great resources on his site along with the modified BIOS needed to make installing Linux on a Chromebook possible. For dual booting on a Chromebook you should use the RW_LEGACY BIOS mod. You may find my post about the difference between BOOT_STUB and RW_LEGACY useful as well.

Update: Please use Mr Chromebox’s BIOS mod instead of John’s. It is based on John’s work but includes more options and features. You will find it here with ample explanation about how to use it. In short, the process is very similar to John’s script.

With only a 16GB internal drive on the Chromebook, it’s not worth partitioning it for the Linux install and so I’m using a USB 3.0 drive instead.

This means I’ll leave the Chrome OS install on the internal drive and install Linux on a always plugged in USB 3.0 thumb drive. USB 3.0 drives provide fast read/write speeds and a compact one like the SanDisk 128GB Ultra Fit is the one I chose. It’s a good solution because it doesn’t stick out of the side of the Chromebook too much and costs only around $30.

Lastly, the great thing about this method (RW_LEGACY) is that you DON’T have to open your Chromebook up meaning you aren’t invalidating your warranty and you can’t brick your Chromebook.

It’s a good idea to have your mains power plugged in to avoid any low battery issues.

 

What you’ll need:

 

Step 1. Enable Developer mode

Developer mode will wipe your Chromebook back to factory settings so make sure you back up any data not on your Google drive.

  • With your Chromebook turned off hold down the ESC and Refresh While keeping them held down, press the power button once.
  • Press Ctrl + D to bypass this screen.
  • Press Enter at the next screen.
  • On the next screen press Ctrl + D to bypass this message.
  • You will see a timer counting down in the top right hand corner of the screen. The Chromebook will reboot and you’ll see the screen with the red exclamation mark.
  • Developer mode is now enabled, power off the Chromebook.

Step 2. Modify the Chromebooks BIOS

By enabling developer mode, your Chromebook will always display the screen with the red exclamation mark on startup. Let’s now modify the BIOS to allow us to install Linux.

  • Turn the Chromebook on and press Ctrl + D to bypass the screen with the red exclamation mark.
  • Your Chromebook is reset to factory settings so you will need to go through the Chrome OS setup again.
  • Once complete, open a new Chrome tab and go to John’s website, at the bottom of the post (before the comments section) copy the commands.
  • Press Ctrl + Alt + T to bring up a terminal window tab.
  • Type shell and press Enter.
  • Paste the commands into the terminal and press Enter.
  • Choose the option to Modify my Chromebook’s RW_LEGACY slot and follow the on-screen instructions.

Step 3. Enable USB boot

  • Pressing Ctrl + D at the screen with the red exclamation mark on startup will take you to your Chrome OS install but pressing Ctrl + L will take you to the BIOS screen to boot from your USB drive. Let’s turn on the Ctrl + L functionality next:
  • Press Ctrl + D at the initial startup screen to load Chrome OS.
  • Press Ctrl + Alt + F2 at the Chrome OS login screen.
  • Login using the password chronos
  • At the terminal prompt, type sudo crossystem dev_boot_usb=1 dev_boot_legacy=1
  • Power off the Chromebook by typing in sudo poweroff
  • Now on startup, if you press Ctrl + L, you will get the BIOS screen instead of Chrome OS.

Step 4. Install Linux

At this stage most of the work is done and all that’s left is to install Linux:

  • Plug in your USB 3.0 drive into the USB 3.0 port of your Chromebook.
  • Plug in your live Linux USB into the other USB port.
  • Power on the Chromebook and press Ctrl + L to get to the BIOS screen.
  • Press ESC when prompted and you will see 3 drives: the USB 3.0 drive, the live Linux USB drive (I am using Ubuntu) and the eMMC (the Chromebooks internal drive). Choose the live Linux USB drive.
  • Choose the option Try Ubuntu without installing. When Linux loads make sure you can connect to the internet (I am using my trusty USB to Ethernet hub combo for a wired connection).
  • Click on the Install Ubuntu 16.04 LTS icon and follow the on screen prompts until you get to Installation type.
  • We want to leave the Chromebook’s internal drive untouched so choose the option to do something else so that we can manually setup the partitions for Ubuntu.
  • Ignore all the mmc partitions and look for your USB drive, if you’re not sure, look at the size of the drive.
  • Setup a 4GB (4000 MB) swap partition and set the rest of the space as the root partition.
  • DON’T FORGET to change the boot disk to your USB drive as well.
  • Check your partitions are correct and continue the install. 
  • The rest of the install is a standard install so just follow the on screen prompts.
  • Once finished, reboot, remove the live Linux USB and press Ctrl + L

You now have Linux installed. Run the software updates to make sure you have the latest firmware, drivers and software.

Step 5. Fix any problems

For most Chromebooks things will work just fine but there may be some tweaks you need to perform.

To make this easier see my post on automating these fixes so that you can start using your shiny new Linux Chromebook as quickly as possible.