How to Build a Chromebook on Hard Disk Using Windows

Building a Chromebook containing Google’s OS is a very messy process. I have seen many sites and YouTube videos explaining how to do so, but all of them involve having Hexxeh’s Vanilla OS installed on a USB key and booting from there. What if I wanted a “true” Chromebook?

I finally found an article that explains what to do. My head already is spinning and I’m debating whether or not an all-internet based operating system has real advantages over a Windows XP installation, which from experience works very nicely on slower netbooks. Nevertheless, here’s an excerpt from the article.

How do I Install Chrome OS on the Harddisk?

Guide to Dual-Booting Chrome OS with Windows

How To Dual-Boot Chrome OS with WindowsIf by now you have managed to get it working off of a USB stick, you might be wanting a more permanent solution. Installing Chromium OS on to your hard disk is much trickier, especially if you want to keep your existing OS.

Depending on your current setup, there are a number of methods that you can use. The most likely scenario is that you have Windows as your main OS, and you want to have Chromium installed for quick access to the web.

What you will need

  • A netbook or laptop running Windows.
  • A USB memory stick with Chromium loaded on it (see above).
  • Another USB memory stick, hard disk or CDROM drive.

IMPORTANT!

Here be dragons!

How your computer is actually setup will change the steps you need to make Chromium OS work from the harddisk. You might already have some extra partitions on the disk, or your devices might appear in a different order. I recommend you take the time to become familiar with the tools you’ll be using and how your computer works.

Be sure to double-check everything before making changes.

Phase 1: Preparing the GParted Live Boot Disk

Once you’ve got Chromium OS working off of the USB stick, we need to go through a few hoops to get that copied on to the hard disk. For this you’ll need another bootable storage device, either a USB flash disk, USB hard disk or a CDROM drive.

Note: resizing and adding partitions on your hard disk is an advanced topic, and not for the faint hearted. If you’re not comfortable messing with the disk partitions then this might not be for you.

Warning: There is a reasonably high chance that you will break your Window installation if you don’t do this right. Make sure you have backed up all your important data first.

  1. First, download a copy of GParted Live. Make sure you get the .zip version if you plan to boot from disk, and the.iso version if using a CDROM. Follow the instructions on that page on how to make the disk bootable.
  2. Reboot the computer, with the bootable drive or CD connected. Hopefully it will boot up into the GParted Live system. It will ask you a few questions, and the default answers will probably be fine.
  3. Once you have GParted running, the first thing you will need to do is make some space for two new partitions. This is done by selecting the last partition, and reducing its size by 2 or 4 Gb. [see Image 1] Having done that, click on the Apply button.
  4. Switch the device (button in top corner) to the flash disk you installed the OS on to. You will see very many partitions, but the only two you are interested in are the ones labels C-ROOT and C-STATE. Make note of the exact sizes for these two paritions. [see Image 2]
  5. Switch back to your main disk device, and create two partitions C-ROOT and C-STATE with the same sizes as you noted down above. Click on the Apply button to make the changes happen.
  6. Go to the flash drive, select the C-ROOT partition, and click on the Copy button on the toolbar. Then switch over to the main hard disk and select the new C-ROOT and Paste. Repeat this step for the C-STATE partition too.
Double check that the pending actions are correct, and click Apply.

Screenshots from GParted

  •  

    Image 1: Reduce size of main partition on main hard disk to make space for Chromium OS.
  •  

    Image 2: Make note of the sizes of C-ROOT and C-STATE partitions on the flash disk.
Phase 2: Getting Chromium OS to Boot

Now that you have successfully copied the OS to your hard disk, the next challenge is getting it to boot. The following instructions are specifically tailored to Windows users who want to minimise the impact on their existing configuration. This method won’t touch the MBR, nor will it change how Windows is booted.

Note: All settings and data within Chromium OS will be wiped.
(Seeing as all your data is stored in “the cloud”, this shouldn’t be a problem.)

  • First, download a copy of Grub for DOS (most recent is grub4dos-0.4.4-2009-06-20.zip). From this zip file you just need the file called “grldr”. Copy this to your C:
  • Create a file in C: called “menu.lst” with the following contents:

    timeout 0

    title Chromium OS
    root (hd0,2)/boot/vmlinuz quiet console=tty2 init=/sbin/init boot=local rootwait ro noresume noswap loglevel=1 noinitrd root=LABEL=C-ROOT i915.modeset=1 cros_legacy BOOT_IMAGE=vmlinuz
    You’ll need to change (hd0,2) to point to whichever partition is C-ROOT. In this example, (hd0,2) is the 3rd partition on the 1st disk (counting from zero).

  • Finally, add Grub for DOS to the Windows boot.ini file. The method varies depending on which system you have:

    Windows 2K, XP: Add the line below to your C:boot.ini

    c:grldr=”Chromium OS”
    Windows VISTA: Open notepad as administrator and create “C:boot.ini”:

    [boot loader] [operating systems] C:grldr=”Chromium OS”
    Windows 7:
    Open command prompt as administrator. Use bcdedit to create a boot menu entry.

    bcdedit /create /d “Chromium OS” /application bootsector
    This prints a long number with { }. This long number is called “id”.
    Replace the “id” with your number in the following commands.

    bcdedit /set {id} device partition=C:
    bcdedit /set {id} path grldr
    bcdedit /displayorder {id} /addlast

  • Cross fingers, remove all USB devices and reboot computer. If successful, you will see Chromium OS boot up.
  • The first thing it might do is display the message like “Chrome OS is missing or damaged” or something similar. The it will enter Recovery Mode and rebuild the installation of the OS on your hard disk, which will take a few minutes. When it is done, reboot the computer.
  • It will be necessary to reconfigure the system, as Chromium OS will have wiped all your previous settings and data. This is a minor annoyance, but you should be back online in no time.

    Now that this is complete, you won’t need that USB stick any more…

     

    Update by kthejoker:
    “So perhaps an update is in order, since the build state of hexxeh’s Chromium builds has changed a bit …
    This is what I had to do to get it working:
    1) I used a free tool called MiniTool Partition Wizard to make my partitions. You can make these partitions in Windows without having to create a separate boot disk for GParted or any of that. As long as you have free space sitting at the end of your drive, creating partitions with this tool is a snap.
    So open up the Partition Wizard with your USB drive in the slot. Reclaim 4 gigs of space from the drive you want to install Chromium on. Then just copy the two partitions ROOT-A (formerly known as C-ROOT … catch #1) and STATE into your newly unallocated space. This will copy their size and state exactly. If you’re applying these to the same partition Windows is running on, you’ll have to restart for the tool to do its thing (ie it basically replicates GParted’s functionality.)
    2) Just like the instructions, download Grub4Dos. All you need is the GRLDR.MBR file on the root drive of your Windows partition.
    3) My menu.lst file looks like this:
    timeout 0
    Chromium OS
    root (hd0,1)
    kernel /boot/vmlinuz quiet init=/sbin/init rootwait ro noresume noswap noinitrd root=/dev/sda2 i915.modeset=1 cros_legacy BOOT_IMAGE=vmlinuz.A
    So 1) I couldn’t get it to use the ROOT-A label to load the kernel. If I run findfs, I clearly see that /dev/sda2 is my ROOT-A partition, but God help me, when you run the kernel bootstrapper, it just hangs or errors out every time. So I had to explicitly set the root to the right partition.
    To find my partition, I had to boot into Chromium US via the USB stick and run mount to see where it mounted all my dev partitions and then open each one till I found the one with ROOT-A’s folder structure (sbin, boot, etc.) I’m sure there’s a faster way, but I don’t know enough about Linux, so there you are.
    3) The biggest challenge: modifying the chromeos_startup file in /sbin. You know that init=/sbin/init command in your kernel bootloader? It kicks off chromeos_startup, and chromeos_startup thinks the stateful_partition (ie the STATE partition) is always located at partition 1 … except it’s not. Mine is /dev/sda5 (found the same way as the ROOT-A partition.)
    So if you go into the chromeos_startup file using vi, you can see a line in there that says
    STATE_DEV = {$ROOT_DEV}1
    Change that 1 to whatever partition your STATE partition is.
    Again, I had to boot into my USB stick to edit this file because Windows can’t mount those partitions. Maybe there’s freeware to mount and edit those files within Windows, I’m sure there is. Anyway, I just used vi at the shell prompt to edit it. Ask a Linux friend, they’ll know how to edit it.
    So in conclusion: different menu.lst entry, explicit root partition, edit chromeos_startup. If you have any questions, hit me at my username at google’s popular mail service.”

     

Comments

comments

Recent Posts
  • Diet Bos

    sounds like something to do when on a cold wintersday. hopefully it is still the proper way to install chrome os to the hdd