How to install Ubuntu on a Chromebook

Google’s Chromebook concept has gained momentum lately. When it was unveiled in mid-2011, the idea of a system in which everything happened in the browser was met with distrust: how would we get by without our familiar desktop applications? And how would anything work on the go? Successive updates to the OS, with richer apps and offline support, have to an extent quelled these concerns, while hardware prices have fallen to tempting lows.

Yet the system is still limited compared to a regular laptop. The browser-based model is good for simplicity and security, but most existing applications, games and development tools don’t run in the cloud, and many probably never will. Although hardly in the spirit of the Chromebook concept, there’s no denying that the option of booting into a regular desktop OS adds considerably to its flexibility.

Google doesn’t advertise the fact, but such a feat is perfectly possible. Almost all Chromebooks are based on standard Intel Atom or Celeron processors, so there’s no fundamental obstacle to setting up a dual-boot system offering a mainstream Linux distribution alongside Chrome OS.

It isn’t quite as easy as simply plugging in a USB drive and launching the installer, however. Chromebooks are locked down in a way that doesn’t allow you to boot operating systems or external bootloaders other than Chrome OS.

Much like Windows 8’s Secure Boot feature, this ensures a rogue rootkit can’t take over your system by tricking the BIOS into booting it before the OS starts up. It also means, if you want to install a secondary operating system, you’ll need to delve into the Chromebook’s developer settings and install the guest operating system via the command line.

Does this sound daunting? Don’t panic. A helpful hacker named Jay Lee has done almost all the work for you, creating an online script that will automatically download and install Ubuntu Linux 12.04 onto your Chromebook – an installation that can then be upgraded to the latest 12.10 release and, in time, beyond. You can find all the latest updates and discussions at the official project website.

The official website hosts updates and informative blog entries relating to the ChrUbuntu project

On these pages, we’ll show you how to use the script, and give you a few pointers to help you get the best from Ubuntu on your Chromebook.

Chromebook caveats

Generally speaking, Ubuntu runs well on an Atom-based Chromebook. Performance is inevitably rather slow – this is a netbook CPU we’re using, after all – but all the hardware works, and you should be able to download and install updates and applications without problems. Before you jump into the process of installing it, however, there are a few Chromebook-specific niggles to bear in mind.

First, because of the way the Chromebook BIOS is locked down, you’ll have to keep your laptop in developer mode in order to use Ubuntu. This isn’t exactly a problem, but it does mean you’ll have to dismiss a warning screen (or wait 30 seconds for it to close) every time you power on the system. And if anyone does, at some point, come up with a rootkit exploit for Chromebooks, you’ll be vulnerable.

It’s also worth noting there’s no boot menu: if you want to switch from one OS to the other, you’ll have to reconfigure your boot settings at the command line then restart the machine.

Since Chromebooks naturally have no Windows key to serve as the “Super” modifier, some standard Ubuntu shortcuts won’t work (notably, the one for opening the Dash search interface). You may, therefore, want to open up the Keyboard Layout and Shortcut options and assign your own shortcuts to frequently accessed functions. You’ll also have to get used to using function keys with shortcut symbols on them, rather than numbers.

We’re sure you’ll agree, however, that these irritations are a small price to pay for the whole new dimension of usefulness that Ubuntu brings to the Chromebook.

Entering developer mode

As we mentioned earlier, Chromebook systems are heavily locked down – but don’t let that put you off. Google states openly that the various protections built into the system are there solely to thwart malware, not to prevent users from experimenting with their own systems. If you want to repartition your hard disk and configure the system to boot into a different OS, you can gain the required permissions by simply switching the Chromebook into developer mode.

Be warned that entering developer mode causes all the data cached on your Chromebook to be automatically wiped. This shouldn’t inconvenience you, since all your data and settings will normally be stored safely in the cloud – it’s just a security measure to prevent someone who doesn’t know your Chrome OS password from booting into a different OS to snoop at your files. If you’ve been working offline, however, it’s worth making sure everything is synced before you switch modes.

To install a third-party OS, you need to physically switch your Chromebook into developer modeHow you switch to developer mode depends on your particular model of Chromebook. On Samsung models, it’s done via a switch at the right-hand side of the chassis. On the Acer AC700, the switch is underneath the battery. If you’re using an Acer C7, you enable developer mode by holding down the Escape and Refresh keys while powering on the system, then pressing Ctrl-D to reboot into developer mode.

As long as you’re in developer mode, your Chromebook will start up with a screen warning that “OS verification is turned off”. This screen can’t be disabled: it’s there so you can’t be tricked into running an unauthorised operating system without realising it.

If you press the spacebar from this screen, you’ll be taken to the recovery interface, from where you can reinstall Chrome OS. Press Ctrl-D instead (or wait 30 seconds) and the Chrome OS initial setup window will then appear, asking you to choose language and networking options.

If you’re using an Acer C7 or a Samsung Series 5 550, you can now skip to the next section. For the original Samsung Series 5 and Acer AC700, there’s one more step to take, since these devices have an additional layer of BIOS protection that must be disabled.

This is done from the command line. To access it, hold down Ctrl-Alt and press the Forward Arrow key (that is, the navigation key in the F2 position along the top of the keyboard). At the login prompt, give your username as “chronos”; you shouldn’t be asked for a password but rather presented with a command line. Enter these two lines:

sudo bash
chromeos-firmwareupdate –mode=todev

Once the BIOS mode has been changed, reboot the Chromebook. At the warning, press Ctrl-D once again to access the setup window.

Downloading the script

You can bypass the Chrome OS setup process by pressing Ctrl-Alt-Forward Arrow when prompted to select a network connectionThe script that installs Ubuntu is downloaded from a remote server, as is the operating system itself – so the next thing to do is connect Chrome OS to a wireless network. Select your SSID from the dropdown menu in the setup window and enter the passphrase to get connected. Once this is done, press Ctrl-Alt-Forward Arrow as described previously to switch to the command line, and again log in with the username “chronos” and no password.

Once you’re in, enter this line:

wget http://goo.gl/tnyga

Your Chromebook should now fetch the script and save it to your home directory. (There’s no particular significance to the “tnyga” name – that’s just the string of random characters chosen by Google’s URL-shortening service.) If this command returns a “not found” error, it’s probably because your Chromebook hasn’t yet connected to the wireless network – wait a moment and try again. When the script has arrived successfully, run this command:

sudo bash tnyga

This will kick off the process of installing Ubuntu – or “ChrUbuntu”, as the project is dubbed – on your Chromebook.

Repartitioning your drive

Most Chromebooks come with a 16GB internal SSD. Chrome OS itself uses around 5GB of this space, leaving 11GB of storage for what’s called the “stateful” partition, where your local settings and cached data are stored. Jay Lee’s script automatically shrinks this to make space for your new Ubuntu partition. The ChrUbuntu system needs at least 5GB of space, but you can choose to allocate up to 10GB. We’ve found that 8GB gives Ubuntu enough space to install updates and applications, while still enabling Chrome OS to cache a decent selection of files and apps for offline use. Once you’ve made your selection, the computer will whirr away for a few minutes making the necessary changes.

The system must then be restarted, after which you need to go through the above instructions again, once more connecting to the wireless network and logging in at the command line. Then re-enter:

sudo bash tnyga

The script will detect that your hard disk has now been partitioned, and will proceed to download and install the Ubuntu 12.04 files. There’s about a gigabyte of compressed data to retrieve, so depending on the speed of your connection this may take 20 minutes or more. In the unlikely event that something goes wrong, just re-run the script and it will pick up where it left off. Once the installation is complete, your Chromebook will automatically restart and boot to the familiar Ubuntu desktop.

Lightweight Chromebook hardware is powerful enough to run Ubuntu Linux smoothly

Customising and updating ChrUbuntu

After you’ve had a quick play with Ubuntu – just to see for yourself that it’s all working as it should be – you’ll probably want to start customising things. ChrUbuntu sets up a default Administrator account under the name “ChrUbuntu User” (the username and password are both “user”), but you’ll probably want to create your own user account under your own name.

This isn’t difficult: although this edition of Ubuntu is installed in an unorthodox way, once you’re at the desktop it is, to all intents and purposes, a regular installation. You can access User Account settings in all the ways you’d expect – for example, by opening System Settings from the System menu at the top right of the screen, or by searching the Dash for “user accounts”.

Another thing you’ll probably want to do right away is configure your Chromebook to boot automatically into Ubuntu on subsequent boots. If you don’t do this, you’ll be returned into Chrome OS the next time you restart. To make ChrUbuntu your default OS, open a terminal and enter this command:

sudo cgpt add -i 6 -P 5 -S 1 /dev/sda

If you want to set Chrome OS as the default in the future, enter:

sudo cgpt add -i 6 -P 0 -S 1 /dev/sda

You can run these commands from within Chrome OS as well as Ubuntu, so it’s easy to switch between OSes. Chrome OS doesn’t offer a traditional standalone terminal application, but you can press Ctrl-Alt-Forward Arrow to switch to the command prompt and then return to the graphical environment with Ctrl-Alt-Back Arrow.

Moving to Ubuntu 12.10

Once the basic housekeeping tasks are out of the way, it’s time to consider whether you’re happy with Ubuntu 12.04 or want to upgrade to 12.10, the latest version. Ordinarily this is a no-brainer, since the most recent release will include all the latest bug-fixes and new features. However, Ubuntu 12.04 is an LTS release, meaning it will receive long-term support until 2017, whereas 12.10 is a regular biannual edition, with a guaranteed shelf life of only 18 months from the date of release (October 2012).

If you decide to upgrade to 12.10, the process is simple: the Ubuntu update manager can download and install the relevant updates for you. By default, though, you won’t see this option: LTS editions of Ubuntu assume you’ll only want to upgrade to a future LTS edition. To change this, open the update manager, click on Settings, select the Updates tab and change the “Notify me of a new Ubuntu version” option from “For long-term support versions” to “For any new versions”. Click Close, then check for updates and you should see the option to update to Ubuntu 12.10.

Generally speaking, it appears safe to perform in-place upgrades and other software updates via the update manager: we’ve tested the upgrade to 12.10 and found it works perfectly. It’s conceivable, however, that future updates could change the boot process in a way that makes ChrUbuntu stop working: if you’re in doubt, check the official ChrUbuntu website before installing updates.

Finally, if you decide ChrUbuntu isn’t working out, you can disable it by simply switching your Chromebook out of developer mode. Chrome OS will then become the default operating system again, and the warning screen will stop appearing every time the system starts up. If you want to remove ChrUbuntu completely, and reclaim the disk space for Chrome OS, the easiest approach is simply to use Google’s Chrome OS recovery tool to completely wipe and rebuild the system. Your data, of course, will remain safely in the cloud.

Why not Windows?

In principle, Windows ought to run happily, albeit slowly, on any x86-based Chromebook. In fact, since all current Chromebooks have either 2GB or 4GB of RAM, the experience ought to be a little smoother than using an Atom-based netbook.

Unfortunately, a Chromebook won’t recognise a Windows installation disk as a bootable device, and, as yet, we haven’t heard of anybody finding a way to launch it from within the startup environment of Chrome OS.

In truth, such a hack probably wouldn’t be particularly useful anyway. Chromebooks aren’t only slow, but also short on storage: almost every model available comes with only a 16GB internal SSD. You’d struggle to fit a comfortable Windows 7 or 8 system into that space, even if you were to remove Chrome OS entirely.

The one exception is the Acer C7 Chromebook, which comes with a 320GB hard disk, as well as a Celeron 847 processor: this model would probably make a quite usable Windows laptop. In the absence of a script, though, it’s academic: for now, if you want to install a second operating system, it’s Ubuntu or nothing.

ChrUbuntu on ARM

Until recently, all Chrome OS devices – both Chromebooks and desktop-style Chromeboxes, as yet available only in the US – were based on the x86 architecture. Samsung’s Series 3 Chromebook breaks the mould, instead using a low-power ARM-based Exynos 5 processor. The difference isn’t noticeable in regular use: it runs the same Chrome OS as the Intel-based models, simply recompiled for ARM. However, the different architecture means you can’t install the regular x86 edition of Ubuntu on this model.

Don’t despair, however: help is at hand. In addition to his excellent work getting the x86 edition of Ubuntu onto the Chromebook, Jay Lee has also created a script to help Series 3 owners install the ARM edition of Ubuntu 12.04. The process is much the same as for Intel Chromebooks: you’ll find full instructions on the website.

Be warned that ChrUbuntu for ARM is considered “alpha” quality: networking and USB connections work, but Lee’s own tests indicate that sound and graphic acceleration aren’t currently working. There’s also no guarantee that software updates (such as the upgrade to 12.10) will work perfectly: in principle, ARM is a supported Ubuntu platform, but it’s very much a minority project with a comparatively small community of users and coders, so it’s more likely to contain bugs than the more widely tested x86 edition.

Disclaimer: Some pages on this site may include an affiliate link. This does not effect our editorial in any way.