http://chromeos-cr48.blogspot.com/2013/05/chrubuntu-one-script-to-rule-them-all_31.html
Ready to get started with the latest, greatest ChrUbuntu? Here are the instructions:
To get started, make sure your Chromebook is in developer mode and has a developer BIOS installed. See Google's instructions for your model. Older Samsung and Acer owners should pay special attention to the Developer BIOS instructions.
Start with your Chrome device turned off. Turn it on but do not login. Make sure you have a WiFi or Ethernet connection configured at this point. 3G/4G is not recommended. Press CTRL+ALT+=> (=> is the forward arrow where the F2 key would be on a PC). Do not use the normal CTRL+ALT+T method to get a shell. Use the CTRL+ALT+=> method while no one is logged in.
Login as user chronos, no password is needed.
As the chronos user and without having changed directories or run other commands, run:
curl -L -O http://goo.gl/s9ryd; sudo bash s9ryd Make sure you have the command exactly right. The -O and -L after curl are both capital letters. s9ryd is all lowercase letters and numbers and would sound like 'ess nine are why dee' if you said it out loud. If you get a 'not found' error, make sure you have Internet connectivity and you're typing the command correctly.
You'll be prompted with some information about your Chromebook. You may need to run an additional command to install a developer BIOS on your Chromebook. Press Enter to continue.
The Chrome OS stateful partition where your data and settings are stored is just short of 11gb by default (except for the Acer C7 where it is much larger), the script shrinks the stateful partition to make room for ChrUbuntu. You can choose to give ChrUbuntu from 5gb up to 10gb in 1gb increments (Note: If you've installed a larger SSD in your Chrome device, your max number and recommended max will be larger). I recommend not going higher than 9 as 10 leaves Chrome OS with very little free space (less than 1gb).
Once you've entered a number, your hard drive will be repartitioned. After awhile it will reboot and re-initialize the stateful partition. This process takes 2-15 minutes and then the Chromebook reboots again and shows you the Welcome screen you got when you first turned on your Chromebook out of the cardboard box.
Go through the Chrome OS setup process again until you get to the Google login page. You'll need to have a WiFi or Ethernet connection again at this point. Now follow steps 2 through 4 again. This time the script will see that you've already made room for Ubuntu and start downloading ChrUbuntu.
Pro Tip: Here's where you can install other versions of Ubuntu! Just specify the preferred Ubuntu flavor and version at the end of the command:
curl -L -O http://goo.gl/s9ryd; sudo bash s9ryd [flavor] [version] [target-disk]
For example:
curl -L -O http://goo.gl/s9ryd; sudo bash s9ryd xubuntu-desktop lts
this will install Xubuntu and the latest LTS release (12.04.3 as of writing) rather than a 13.10 Unity desktop. Some possible flavor alternatives to Unity are:
default (ubuntu-desktop on x86, xubuntu-desktop on arm)
kubuntu-desktop
lubuntu-desktop
xubuntu-desktop
edubuntu-desktop
ubuntu-standard (no GUI installed)
some possible versions are:
lts -- latest LTS Ubuntu release, 12.04.3 as of this writing
latest -- latest official release, currently 13.10
dev -- unstable development Ubuntu release, experts only! If this breaks, don't be surprised
12.10 -- Ubuntu 12.10 release
[target-disk] is the last argument (specify 'default' and 'latest' for the first two arguments if you just want to install the defaults to an external drive). An example installation to SD Card might be:
curl -L -O http://goo.gl/s9ryd; sudo bash s9ryd default latest /dev/mmcblk1
During the installation (within the first 5-15 minutes). You'll see a few prompts to select your encoding, locale and language. For most people, the defaults should be fine, just press Enter but change them if you'd like.
After all of the Ubuntu files have been downloaded, installed and configured, the script will make a few more updates and then prompt you to reboot.
You'll see ChrUbuntu start up! The username is 'user' and the password is 'user'.
Right now, you're in ChrUbuntu but if you reboot, you'll be back in Chrome OS. This is a safety feature, if ChrUbuntu won't boot, you want to be able to get back into Chrome OS to fix it. To make ChrUbuntu the default, run:
sudo cgpt add -i 6 -P 5 -S 1 /dev/sda
on the ARM Chromebook, replace /dev/sda with /dev/mmcblk0. The password is 'user'. It should be possible to run this from ChrUbuntu or Chrome OS.
To make Chrome OS the default again, either turn off Developer Mode, or run:
sudo cgpt add -i 6 -P 0 -S 1 /dev/sda
------------------------
Update #2: I've updated the script so that module loading works with beta and dev channel Chrome OS kernels. If you were on beta or dev channel and ChrUbuntu booted but you couldn't connect to WiFi/ethernet, try now. Thanks to not-so-lazy commenter 'The Lazy Husband' for the pointer and fix. I've also added a possible fix for some people getting out of space errors.
Update: I've updated the title since it doesn't look like USB hard drives work properly (USB Flash drives do work). I haven't tested extensively but my guess would be the Chrome OS firmware simply doesn't support booting from USB hard drives like it does flash drives. Also, I should have mentioned earlier, the Cr-48 will not work with USB Flash / SD Cards either since it does not support the CTRL+U boot method.
I'm happy to announce updated versions of the ChrUbuntu install scripts that supports installation to an external USB or SD Card leaving Chrome OS and the internal SSD unchanged. This works for all Chrome OS devices including the new ARM-based Samsung Chromebook. Your USB / SD Card needs to be 8gb or larger and all current data on it will be lost. Installation is very simple, just follow the normal ChrUbuntu instructions but specify the correct script below instead of the old script (I'll update the main instructions as soon as some of you verify this worked for you). You also need to specify the device name of your external drive. Depending on your Chrome device, this may be something like /dev/mmcblk0 or /dev/sdb. You can find out what devices you have with the command:
lsblk | grep disk
Look for the device of the same size as your external drive. Add /dev/ to the beginning of the device name. In general:
- The 1st USB drive plugged into an x86 Chromebook will be /dev/sdb
- The 1st SD Card plugged into an x86 Chromebook will be /dev/mmcblk0
- The 1st USB drive plugged into an ARM Chromebook will be /dev/sda
- The 1st SD Card plugged into an ARM Chromebook will be /dev/mmcblk1
To install ChrUbuntu to a SD Card on an x86 Chromebook, run:
wget http://goo.gl/tnyga; sudo bash tnyga /dev/mmcblk0
Be sure to type this exactly. That's t n y g a and if you said it aloud it'd sound like 'tee in why gee aye'.
To install ChrUbuntu to a SD Card on an ARM Chromebook, run:
wget http://goo.gl/34v87; sudo bash 34v87 /dev/mmcblk1
Be sure to type this exactly. That's 3 4 v 8 7 and if you said it aloud it'd sound like 'three four vee eight seven'. Also, make sure the USB drive (if you're using USB) is plugged into the black USB port, not the blue USB 3.0 port which doesn't support booting.
One nice thing about installing to an external drive is no reboot is needed, the script partitions the drive and starts downloading ChrUbuntu immediately.
In order to boot ChrUbuntu from an external drive, instead of pressing CTRL+D or waiting 30 seconds at the 'sad computer' startup screen, press CTRL+U immediately. This makes it simple to switch between Chrome OS and ChrUbuntu. CTRL+D or a 30 second wait on bootup starts Chrome OS. CTRL+U starts ChrUbuntu.
Note that if you exit developer mode after installing ChrUbuntu to an external drive, you'll need to rerun:
sudo crossystem dev_usb_boot=1
to get USB CTRL+U booting working again. Be sure to share your success or failure (with details in the comments below!
Now do you need a good SD Card to use with ChrUbuntu? Purchase one of these from Amazon and a portion of the cost goes to support this blog!