Thursday, April 28, 2011

Ubuntu 11.04 for the Cr-48 is ready!

Update: You should probably use the new ChrUbuntu 12.04 Install Guide instead of this one. This guide will not work on Chromebooks updated to Chrome OS version 19 or higher which will be virtually all Chromebooks by June of 2012.

Even though it's 4 months old, my how to install Ubuntu on the Cr-48 post is still very popular. Today I'm glad to announce that I've updated my install script to use the just announced Ubuntu 11.04 Natty Narwhal. First a few things:

  • If you followed my original guide and are running Ubuntu 10.10 happily, you should follow Ubuntu's standard upgrade instructions, not this guide. Following this guide will destroy your existing Ubuntu install including all your data! If you have 10.10 installed but wish to start clean (perhaps with a larger partition size, something the script now easily supports), you should do a USB Recovery of Chrome OS. Then after updating to the latest Chrome OS release, follow this guide.
  • If this is your first time installing Ubuntu, note that the installation process will reset your Cr-48 to Factory Defaults. You've been warned.
  • Yes, Unity is the default. That was the decision of the Ubuntu team. If you don't like it, complain to them, not here. You can choose to use to the Classic Desktop by default if you prefer.
  • The script now checks to see if the image files are on a local USB / SD Card before downloading them. Thus you can save all 52 of the ubuntu-1104.bin??.bz2 files to a flash drive and the script will use them. Make sure they're in the root folder of the drive.
Now the instructions:
  1. Get root. (also known as Developer mode)
  2. Reboot your Cr-48 but don't login. Make sure you have a WiFi or USB Ethernet connection at this point. 3G is not recommended. Press CTRL+ALT+=> (=> is the forward arrow where the F2 key used to be). Do not use the normal CTRL+ALT+T method to get a shell. Use the CTRL+ALT+=> method.
  3. Login as user chronos, no password is needed.
  4. As the chronos user, run "wget; sudo sh hnkxo". If you get a "not found" error, make sure you have Internet connectivity.
  5. The Chrome OS stateful partition where your data and settings are stored is just short of 11gb by default, the script shrinks the stateful partition to make room for Ubuntu. You can choose to give Ubuntu from 5gb up to 10gb in 1gb increments. I recommend not going higher than 9 though as 10 leaves Chrome OS with very little free space (less than 1gb). Once you've entered a number 5 through 10, your hard drive will be repartitioned. It may look like the Cr-48 is doing nothing for 10-15 minutes but let it be, after awhile it will reboot and re-initialize the stateful partition (told you it was going to wipe your data). This process takes about 5 minutes and then the Cr-48 reboots again and shows you the Welcome screen you got when you first turned on your Cr-48 out of the box.
  6. Go through the setup process until you get to the Google login page. You'll need to have a WiFi or Ethernet Connection again at this point. 3G is not recommended. Now follow steps 2 through 4 again. This time the script will see that you've already made room for Ubuntu and will start downloading the Ubuntu 11.04image and copying it to the SSD.
  7. There are 52 100mb files to be downloaded. Each is compressed so the actual download size ranges from less than 1mb in size to 90mb in size. The total size of all the files is about 1.1gb compressed and 5gb uncompressed so the download and install will take awhile. The files are named ubuntu.binXX.bz2 (where XX is aa, ab, ac, ad, ae, af... ba, bb, bc... all the way to bz). If you want to see how big each piece is, take a look here.
  8. The script keeps track of which of the 52 files have been successfully installed so if you lose Internet connectivity, or the battery dies (you should be plugged in BTW), etc, just re-run Step 4 and it should resume where it left off.
  9. After all 52 files have been downloaded and copied to the SSD, the script will make a few more updates to your Cr-48 and then reboot.
  10. You'll see Ubuntu 11.04 start up! The username is "user" and the password is "user" if you need to make changes.
  11. If you chose anything other than 5gb for the partition size, you'll need to "grow" the ext4 file system to fill the partition. Open a command prompt and run: "sudo resize2fs -p /dev/sda7". This will grow the ext4 partition to fill the free partition space.
  12. Right now, you're in Ubuntu but if you reboot twice, you'll be back in Chrome OS. To make Ubuntu the default, run "sudo cgpt add -i 6 -P 5 -S 1 /dev/sda" (password is "user"). It should be possible to run this from Ubuntu or Chrome OS.
  13. To make Chrome OS the default again, either pull the battery and turn off Developer Mode, or run "sudo cgpt add -i 6 -P 0 -S 1 /dev/sda".