MuntashirAkon / Chrome-OS-Multiboot

My approach to multiboot Chrome/Chromium OS on regular PCs
GNU General Public License v3.0
45 stars 7 forks source link
chromeos chromiumos dualboot multiboot

Chrome OS Multiboot

My approach to multiboot Chrome OS or Chromium OS on regular machines.

If you're looking for updating your Chrome OS installation, the project is move here.

Index - [Multiboot guide](#multiboot-guide) * [Prerequisites](#prerequisites) * [Process](#process) - [Creating partitions](#creating-partitions) - [Converting Chromium OS to Chrome OS](#converting-chromium-os-to-chrome-os) - [Installing on HDD](#installing-on-hdd) - [Updating Chrome OS](#updating-chrome-os) - [Want to update natively?](#want-to-update-natively) - [Mounting internal partitions](#mounting-internal-partitions) - [References](#references)

Multiboot guide

Prerequisites

  1. A Linux distro e.g. Ubuntu, Mint, etc. (may need installing since the files to be downloaded need a lot of space)
  2. chromefy.h
  3. swtpm.tar - To solve TPM related problem on modern PCs
  4. @arnoldthebat's Chromium OS Special build (R74 or later)
  5. Eve or similar recovery file matching your hardware specifications (check here for more info)
  6. install_chromium.sh

If you're going to install Chromium OS (not Chrome OS), you don't need 2, 3, and 5 prerequisites.

Process

Creating partitions

You'll need to create 3/4 partitions in GPT mode:

  1. EFI-SYSTEM: Type FAT16 (32 MB) [assume, the device id is sda4]
  2. ROOT-A: Type EXT2 (at least 4 GB) [assume sda5]
  3. ROOT-B: Type EXT2 (at least 4 GB) [assume sda7] (Optional if you don't want to update Chrome OS natively)
  4. STATE: Type EXT4 (this is where user files will be kept, so the size of the partition depends on you; 20 GB recommended) [assume sda6]

Converting Chromium OS to Chrome OS

[Skip this step if you are not going to install Chrome OS, just Chromium OS]

Installing on HDD

Now you can safely boot into the newly installed OS.

Updating Chrome OS

[Applied for Chrome OS only, if you're looking for updating @ArnoldTheBat's Chromium build, contact him instead]

! Warning ! This process is experimental, be sure to issue a report if you stumble upon something.

You can use the update_chromium.sh script located in this repo to update Chrome OS to the latest version (should work with regular installation as well). To do this you'll need to download the latest recovery update for your platform (e.g. eve) which can be downloaded from here. If you needed swtpm.tar, download the latest file from here.

Currently, update_chromium.sh takes three arguments (last is optional): the first argument is the recovery.bin file, the second argument is the device id of the ROOT-A partition (sda5 if you're following this guide and sda3 for regular installation) and the third argument is the optional swtpm.tar. For example:

update_chromium.sh ~/Downloads/chromeos_11647.104.3_eve_recovery_stable-channel_mp.bin sda5 swtpm.tar

You can use Ubuntu Live (ie. without installing a Linux distro) to update Chrome OS.

Want to update natively?

Move to another repo as the project appears to be more complex than I imagined. Refer here.

Mounting internal partitions

As you may have noticed, internal partitions are not mounted by default (since Chrome OS is never meant to be used this way). So, in order to mount the internal partitions, you'll need to edit /etc/fstab after you have created an user account in the Chrome OS. The idea is to mount them inside the ~/Downloads folder so that you can access these partitions from there.

Considering the fact that we may frequently need to change the partitions in the fstab, instead of editing /etc/fstab, we will be creating /usr/local/fstab which can be edited in Chrome OS later on.

Editing /usr/local/fstab

Copying startup script

NOTE: Mounted partitions don't show up on Android, further study needed.

References

  1. https://github.com/imperador/chromefy
  2. https://docs.google.com/document/d/1uBU4IObDI8IFhSjeCMvKw46O4vKCnfeZTGF7Jx8Brno/edit
  3. https://wiki.debian.org/fstab
  4. https://www.chromium.org/chromium-os/chromiumos-design-docs/disk-format