You are on page 1of 5

ChromiumOS/Chromefy

Guide to using it with multiple operating systems such as Windows or


Linux

NOTE: A dual boot script and guide on how to use it is


available on the lab section of our Git repository
Things covered in this guide:

● Prerequisites
● Pre-install setup
● Installing Chromium
● Saving a copy of your partition layout for post-install whenever you update so
nothing is overwritten
● Using Grub-Customizer to configure grub/Theme it to your liking
● Chainloading Chromium (Sometimes needed when os-prober cannot find
ChromeOS/Chromium)

Prerequisites 

● Must be already using a GPT partition table(Otherwise a format of the hard drive
is required. This will wipe your data. It is recommended that you create a disk
image of your hard drive and back up to an external drive before formatting the
hard disk so as to keep your data intact)
● Must be using an EFI system. (Most important. This will not be possible
otherwise)

Pre-install setup 

You will need to install a Linux distribution of your choice first of all, as they give us a lot
of useful tools we can use for installing Chromium that aren’t on a Chromium
installation, nor are found in Windows. I went with Arch, but for beginners I’d
recommend using Linux Mint or Ubuntu
Once done, install Gparted, and download the Etcher app image from their website.
Download ArnoldTheBats Chromium special build and flash it to the USB using Etcher.
Open Gparted and select your USB as the disk you want to look through. Remove every
partition except STATE, ROOT-A, and EFI-SYSTEM (Not required but certainly makes
it easier on the eyes)
If you are using Windows and the bulk of free space is contained within Windows, then
boot Windows and open the disk management tool. Shrink space from there, you only
need around 32GB for ChromeOS however 64GB is ideal for most. If you have more to
spare, send half to Linux and half to ChromeOS.

Boot back into Linux, and open Gparted. If you do not use Windows and most of your
space is in Linux, shrink partitions down using Gparted. Again you only need around
32GB for ChromeOS however 64GB is ideal for most. In Gparted, right click on the
unallocated space and hit “Create partition here”.

For the size in MB, put 32. For the format, put FAT16. For both the label and name of
the new partition, put EFI-SYSTEM.

Go back to the unallocated space again. Create another partition. For the size in MB,
put 5000. For the format, put EXT2. For the name and label, put “ROOT-A”

Finally, create another partition in the unallocated space, this time utilizing all the space
that is left. For the format, it should be EXT4, for the name and label it needs to be
“STATE”

Now that we have each of our partitions setup, lets move to installation.

Installing Chromium  

Open a terminal in the Linux distribution you chose, and type:


“mkdir state”
“mkdir root”
“Mkdir efi”
“mkdir localroot”
“mkdir localefi”
“mkdir localstate”
For this next set of commands you will need to use gparted to figure out the disk letter
associated with your Chromium USB. Use that letter in place of ‘b’ in sdb
Note that sudo requires your root password, which is usually the same as the password
of the account you setup for Linux
“sudo mount /dev/sdb12 /home/(username)/efi”
“sudo mount /dev/sda* /home/(username)/localefi” (* being the number associated with
the EFI-SYSTEM partition you created earlier.
Copy over the grub bootloader and efi system files to that EFI-SYSTEM partition from
the USB:
“sudo cp -av /home/(username)/efi/* /home/(username)/localefi (* is needed this time
around as that copies every file inside the efi folder, which is the mount point of the
EFI-SYSTEM partition on the USB)

Now that you copied the EFI-SYSTEM, we need to copy over the root:
“sudo mount /dev/sdb3 /home/(username)/root”
“sudo mount /dev/sda* /home/(username)/localroot” (* being the number for your
ROOT-A partition)
“sudo cp -av /home/(username)/root/*” /home/(username)/localroot” (Again, this time * is
needed as it copies every file inside the root folder)

And now, we just need to copy over the userdata partition.

“sudo mount /dev/sdb1 /home/(username)/state”


“sudo mount /dev/sda* /home/(username)/localstate (You get the point of the asterisk
for this already. Remember, you actually need it for when you copy over the partition)

“sudo cp -av /home/(username)/state/* /home/(username)/localstate”

All done, we installed Chromium. Now we just need to make it bootable

Grab a text editor of your choosing (I chose sublime as it is my favorite, however gedit
or mousepad should work with this just fine)

And type:
“sudo subl /home/(username)/localroot/usr/sbin/write_gpt.sh”
In my case subl opens sublime text, if you want to use kate do sudo kate, gedit do sudo
gedit, etc. Just find the right command to open your text editor of choice, and open that
file.
Remove all the unnecessary partitions in both base_vars and partition_vars, only
leaving the State, Root-A, and EFI behind. Change the partition number values for each
of them to match what you have on your hard drive. Chromium is now bootable, you just
need to add in the boot entry.

Saving your partition layout  

Copy the partition file:


“cp -av /home/(username)/localroot/usr/sbin/write_gpt.sh /home/(username)
You now have a copy of your partition layout, and after each ChromeOS/Chromium
update you can copy that back instead of redoing it every time.

Using Grub Customizer to Configure/Theme grub to 


your liking 

Install Grub-Customizer to your Linux distribution and make sure that your ROOT-A
partition is mounted. Open Grub-Customizer and it should make a boot entry for
“Unknown Linux Distribution on /dev/sda#”

If not, you may need to chainload. See the last section of this guide for information on
that.

In grub-customizer there is an appearance tab, in there you have several options to


make the boot entries really suit you. You can change the background, the highlight
color, the font (Note that some fonts break grub) and also add icons to your boot
entries. Just fiddle around with it and see what you like

Chainloading to Chromium:

This is sometimes needed when os-prober doesn’t see that you have your root partition
mounted, and as such grub-customizer doesn’t make a boot entry. In this scenario you need to
open grub customizer and create a boot entry, with the type being “chainloader”
Select your EFI-SYSTEM partition.

In the boot sequence, remove the +1 from the chainloader command. In its place add in
“(hd0,gpt#)/path/to/grub/efi/bootloader/on/efi/system/bootx64.efi” (# being the partition number
for your EFI-SYSTEM partition)
Then, just add in a line beneath this:
“configfile /path/to/grub/efi/bootloader/on/efi/system/grub.cfg”

Save your new boot entry in grub customizer, and once it’s saved reboot and see if you can
boot Chromium.

NOTE: You may need to press e on local image a and change root to = your ROOT-A
.partition (eg, /dev/sda4)

You might also like