Part 2/3: Backup and Installation Part 2 will guide you through backup up local data on your chromebook, enabling developer mode, flashing your BIOS (optional) and then booting from USB to install Linux. Recall your equipment from the previous post (USB-drive A, USB-drive B, USB mouse) and let’s get rolling.
Step 1: Backup Local Data from your Chromebook: This is all stored in your “Downloads” folder. Your chrome profile and google drive data are safely stored in the cloud.
Step 2: Generate the ChromeOS recovery media on (a blank) USB-Drive A: This will allow you to wipe your hard-drive and restore ChromeOS to the chromebook for whatever reason. There are a fewways to generate media:
- Install and run the Chromebook recovery utility on your chromebook
- If you are using Linux, a bash script is available
- Type in chrome://imageburner on your chromebook and follow the instructions
Both methods are outlined in this article.
Step 3a: Enable Developer Mode On the C720/C720P (Video): This step will clear your local data.
- Shutdown your chromebook
- Hold down Esc+Refresh (Esc+F3) and tap the power button. You will get a screen saying that “Chrome OS missing or damaged.” Press Ctrl+D to bypass this screen.
- Another screen will appear asking you about “OS verification.” Press Enter to turn it off
- The system will now take a few minutes to set itself up for “Developer Mode”.
Step 3b: Open a root shell and enable legacy mode: Login as Guest or yourself and open a crosh terminal by hitting Ctrl+Alt+t. The following commands will get you access to the root shell in Developer Mode, which we need for both enabling legacy boot and modifying BIOS parameters. Hit enter after each line below:
shell sudo bash
Your command-line prompt should now change from crosh > to something like chronos@localhost#. While you are in the root shell, enable the Legacy BIOS mode and booting from USB by typing in the following command then hitting Enter:
crossystem dev_boot_usb=1 dev_boot_legacy=1
Interim Result: You can now exit the shell. You have enabled the Legacy mode of your BIOS and will be able to boot from USB (as well as your hard-drive when Linux is installed) by pressing Ctrl+L at the startup screen at every boot. However, once we install Linux and wipe ChromeOS, there are a few very important caveats here:
- You will have to press Ctrl+L to boot into Linux at every startup
- At the startup screen, pressing Space and then Enter can re-enable OS-verification, thereby disabling your configuration and potentially making your system inaccessible. You will be forced to either reinstall Linux or ChromeOS on your system, completely wiping out your device.
- If you completely deplete your battery, Legacy Mode boot may be disabled. Since we would have wiped ChromeOS from the system, it cannot be re-enabled and you will lose your data and forced to reinstall Linux or ChromeOS.
To circumvent these issues, BIOS-flags need to be specified via the root shell in Developer Mode before ChromeOS is wiped out. By doing this, you will not have to press Ctrl+L at every startup and the system’s BIOS will remember to boot Linux even if the battery is depleted. However, this comes at the cost of voiding your warranty. Follow Step 4 if you wish to do this. Otherwise you can skip to Step 5 to boot from USB and finally install Linux.
Step 4 (OPTIONAL): Disabling the Write Protect Screw and Setting BIOS Flags: further reading about this process is described here.
- Power off your chromebook and remove it’s AC-power supply.
- Flip it over and undo the 12 visible screws and 1 hidden underneath the warranty sticker in order to remove the plastic covering and expose the chromebook internals. This step voids your warranty.
- Remove the write protect screw labelled as #7 in this picture.
- Put everything back together and reboot your system.
Start a root shell again as described in Step 3a, and use the included set_gbb_flags.sh script to flash the BIOS with new parameters that will make legacy booting default and permanent despite battery depletion:
flashrom --wp-disable /usr/share/vboot/bin/set_gbb_flags.sh 0x489
The first flashrom command will disable software write-protection, and the second command will set the BIOS flags so your system will boot SeaBIOS by default. Note that in older versions of ChromeOS, the set_gbb_flags script is already in the $PATH of the system, so you can just run
after running the flashrom command. The output of the script will tell you whether or not this was successful. Read this page on the Arch Linux Wiki for additional troubleshooting. Now, your system should reboot directly into the Legacy BIOS, bypassing the OS-verification screen automatically after a short delay. You are now ready to wipe ChromeOS from your computer and install Linux.
Step 5 & 6: Boot from USB and install a Linux distribution of your choice: Linux iso files can be copied to the USB-drive B using one of many utilities available in both Windows and Linux. In Linux, my favourite utility to do this is dd. WIth your blank USB-drive B, use the command:
sudo dd bs=4M if=Y.iso of=/dev/sdX
where Y.iso represents the iso file and X in sdX represents the letter associated with your usb drive which can be found using the fdisk utility (fdisk -l). Alternatively, Windows users can use the Linux Live USB Creator which has support for many popular distributions and additional parameters for creating a persistent USB drive with Linux.
The distribution you chose depends on how much you would like to tweak Linux in the post-installation phase. Many individuals have gone through amazing work to tweak specific Linux distributions for the C720(P) and have made them available as iso files for all. Hugh Greenberg has published many Ubuntu-based distributions on Distroshare that are specifically tweaked for the C720(P) so that all hardware issues and keyboard shortcuts have been worked out; all that’s required in this case is that you copy the image to USB-drive B and boot it on your chromebook. If you chose this method, you will not need to proceed to Part 3/3 of this blog post and your chromebook installation is complete! Congratulations. If you’re in it for the learning experience and wish to customize the system to your own, you could download, boot and install a generic liveUSB/iso of a Linux distribution of your choice on your chromebook and then apply your tweaks in the post-installation phase.
I will guide you through my post installation phase of Lubuntu 14.04 in Part 3/3. Note: With the exception of distributions running kernel 3.17 or later, many liveUSB/iso’s do not have plug-and-play support for the touchpad. It is expected for your touchpad not to work until the post-installation phase specific to your Linux distribution is complete (either kernel modules will be installed or the kernel itself will be updated to 3.17). For the generic Lubuntu 14.04, your mouse will not work on a fresh install and you will need to use the USB-mouse for the time being. Proceed to the final Part 3/3 – Post-Installation Phase