[GUIDE]Dual boot ChromeOS with Linux or Windows on almost any device

Search This thread

Ragedpixel

Senior Member
Dec 27, 2019
199
70
14
Faridabad, Haryana
Dual Boot ChromeOS with Linux or Windows!

Update1: This thread has been fully rewritten for Windows too!
This guide will tell you how you can dual boot ChromeOS with Linux or Windows! This guide is based on the official GitHub page!

Update2: Added troubleshoot section: Added ChromeOS not detecting fix


INDEX

• About

• Requierments

• Downloads

• Intel CPUs
• Types of recoveries
• AMD CPUs


• Linux Installation
• Preparing environment
• Installation

◦ Gparted
◦ Secureboot

• Windows Installation
• Preparing Linux Environment
◦ Preparing Environment
◦ Installation
◦ Secureboot

Troubleshoot
• Fix ChromeOS not detecing

• Credits






About
ChromeOS, is an Operating system based on Gentoo Linux and designed by Google based on the ChromiumOS an open source project but unlike that ChromeOS is not open source, ChromeOS uses Google API and has intergrated Google Apps and Google Chrome as its interface! It also supports android apps!

Why chromeOS ? ChromeOS is a very smooth OS unlike other Android-x86 projects it is a fully functional and powerful OS, though it is not an ideal choice for gaming because it does not support the keymapping function. But if it ever gets Key Mapping there is no better option for running android for your PC other than chromeOS

Brunch, To keep it short and simple brunch is a framework which can help you to run ChromeOS on your Device even if its not a chromebook!


Requierments


• qs-x86_64 based computer with UEFI boot support (you can check that just search on google if you don’t know)
◦ With MBR patch your MBR/Legacy device might be supported

• Administrator Permissions

• Should have an Intel CPU (check conditions for that too)

◦ Intel 1st gen Core are supported only till ChromeOS 81 (This release may not be available anymore)
◦ Atom, Celeron and Pentium processors are supported since Baytrail and later versions!

• AMD Ryzen and AMD Stoney Ridge are supported, but it is limited

• Nvidia GPUs are not supported (if you have one then its ok, but ChromeOS won’t detect it)

• No Virtual Machines (VMs) are supported

• ARM CPUs are not supported at all, No luck guys :(

• Intel Core 2 Duo and older CPUs are not supported


Now if you are supported then Great! Lets move on!



DOWNLOADS

NOTE: you can even download the eve image which is the best as its the official Pixelbook recovery, but remember the boot chances are less with that so If you don't have time/data download from the below images

Intel CPUs



• If your CPU is 10th and 11th gen open this Link note the versions and proceed to download from HERE but before read below
◦ 11th gen and some 10th gen CPUs may need kernel 5.10


• If your CPU is 1st gen to 9th gen then after opening this Link, note the versions and proceed to download from HERE and before downloading read below,




Stable Builds

For daily and frequent use [Recommeneded for average users],
these builds are reliable and are pretty stable for day-to-day use and are recommended.



Beta Builds

Good for daily use and more Beta features [Recommended],
these builds are pretty stable and relaible with a few more Beta features and just a few bugs. These are recommended and also if the stable build is not availible.



Dev Builds

Buggy and more features [Power users only, Not Recommended],
these builds are not very stable and are buggy but have more features! Not recommended for daily use. These builds are ideal for developers who want to test out some features (Liveboot)



Canary Builds

Unstable! Experimental feaatures! [NOT Recommended][DEVs ONLY],
These builds have a lot of bugs but the most of the features! These builds are not intended for average users and are only for testing.



AMD CPUs



• For Stoney Ridge and Bristol Ridge Click Here but before read the above info carefully
and proceed to download from HERE

• For Ryzen Click here but read above before downloading then carefully
and proceed to download from HERE

• for Ryzen 4xxx devices you need kernel 5.10


As of I am writing this I have an Intel 10th gen CPU and the Stable builds are unavailable so I will be downloading the BETA Build which are quite stable too!

Now we have to also download Brunch, download the latest stable version from HERE




LINUX

Prerequisites,

• You should be on a Linux Distro (I recommend an Ubuntu/Ubuntu based distro) eg: I am using Kubuntu

• Root access

• Atleast 16gb storage you can give to the OS

• Your PC should support Brunch

• Some basics of linux terminal (if not I recommend to learn because this helps in troubleshooting problems)

• Grub2 Bootloader




Preparing the Environment





Now open Terminal by Ctrl+Alt+T

and run,

Lets enable super user permissions using the following command

Bash:
sudo su
Enter password if it asks and hit enter

Its a good thing to update and upgrade the packages by running this command,
Bash:
sudo apt update && upgrade

Lets install the required packages the command below will install pv, tar, unzip, cgpt and gparted,
Bash:
sudo apt install pv tar unzip cgpt gparted

Side Notes
____________________________________________________________________________________
pv,
Pipe Viewer, known as pv is a package which allows the user for the monitering of data being sent through pipe, it helps the user by giving them a visual display

Tar,
tape archive. Known as tar is used to create and extract archive files in the format of .tar, .tar.gz etc...

Cgpt,
Cgpt is a tool to manipulate GUID Partition Table from command line. It also supports ChromiumOS extentions

Gparted,
Gparted is an Advanced disk manager, its simple yet powerful UI makes it easier to create, delete or modify any partition!

Unzip
unzip command simply extracts zip files!
_____________________________________________________________________________________


Now lets go into Documents using the cd command cd simply means change directory
Bash:
cd Documents

Now lets create a new folder and open that to keep things clean and tidy
mkdir command means make directory (make folder) and cd is change to directory

Bash:
mkdir ChromeOS && cd ChromeOS

now cut/move the downloaded files to documents/ChromeOS from your file manager


Installation



Now we will extract the tar.gz archive using tar we previously downloaded! Tar calles the command to run tar and zxvf is to extract the file in format of tar.gz
Bash:
tar zxvf brunch_ filename.tar.gz
Replace the brunch_filename.tar.gz from your actual bruch file’s name

now we also want to extract the chromeos zip file this file can be extracted by using the unzip command!
Bash:
unzip chromeos_ filename.bin.zip
Replace the chromeos_filename.bin.zip from your actual chromeOS file’s name

once done
if you already have an empty disk and are deciding to use that for installation then just check these things:


the partition should be ext4 or ntfs (ext4 recommended)

if not or if you don’t know what partition is it then
1. open Gparted and if under the file system your partion shows ext4 then close Gparted and if not then
2. right click the patition then
3. select format to and
4. select ext4 after that
5. click the logo and proceed after that
6. close Gparted.

If you don’t have a free partition or you want to create a different partition then,
minimize terminal and open Gparted (if you ran the first command it is automatically installed).

1. Now open Gparted and
2. Resize your storage and free up 16-100 gb of storage, to do that right click the partition you want to give storage from,
3. Click on the resize/move and
4. In the Free space following (MiB) text box enter the amount of storage you want to give to chromeOS in MB and click resize,
5. now you will notice a new space created called unallocated right click on it then click on new.

6. Now select Create as Primary Partion and File System: ext4 and click add! Now again click the Icon and proceed.


Also in Gparted note the name of your ChromeOS partition below the “Partition” table

for eg: /dev/sda11, /dev/mmcblk0p5 or /dev/nvme0n1p4

now open terminal,
now we will create a new mountpoint for that we will create a new directory using mkdir. The ~ is a symbol of your home directory so ~/tmpmount actually means home/tmpmount!

Bash:
mkdir -p ~/tmpmount

Now its time to mount the partition at the mountpoint
now this command will mount your partition named dev/partion to tmpmount!

Bash:
sudo mount /dev/partition ~/tmpmount
here replace the ‘partition’ to your partition name you saw in Gparted

Now
as we did before replace the chromeos_filename.bin to your actual file’s name and also replace the size from the amount of storage you want to give to chromeOS, minimum 16gb maximum your choice.

This command runs the chromeos-install.sh file in bash this file runs the installer! With the source (-src) being chromeos.bin file and the destination (-dst) being ~/tmpmount/chromeos.img and the size (-s) is what you desire

Bash:
sudo bash chromeos-install.sh -src chromeos_filename.bin -dst ~/tmpmount/chromeos.img -s size
Now if it asks for confirmation then type yes in the prompt
Now after it is over you should see something like this:


**************************************************************
menuentry "ChromeOS" --class "brunch" {
rmmod tpm
search --no-floppy --set=root --file /chromeos.img
loopback loop /chromeos.img
source (loop,12)/efi/boot/settings.cfg
if [ -z $verbose ] -o [ $verbose -eq 0 ]; then
linux (loop,7)$kernel boot=local noresume noswap loglevel=7 options=$options chromeos_bootsplash=$chromeos_bootsplash $cmdline_params \
cros_secure cros_debug loop.max_part=16 img_uuid=8191adfb-ab27-4e4d-a12e-b9e49aa1b466 img_path=/chromeos.img \
console= vt.global_cursor_default=0 brunch_bootsplash=$brunch_bootsplash quiet
else
linux (loop,7)$kernel boot=local noresume noswap loglevel=7 options=$options chromeos_bootsplash=$chromeos_bootsplash $cmdline_params \
cros_secure cros_debug loop.max_part=16 img_uuid=8191adfb-ab27-4e4d-a12e-b9e49aa1b466 img_path=/chromeos.img
fi
initrd (loop,7)/lib/firmware/amd-ucode.img (loop,7)/lib/firmware/intel-ucode.img (loop,7)/initramfs.img
}

menuentry "ChromeOS (settings)" --class "brunch-settings" {
rmmod tpm
search --no-floppy --set=root --file /chromeos.img
loopback loop /chromeos.img
source (loop,12)/efi/boot/settings.cfg
linux (loop,7)/kernel boot=local noresume noswap loglevel=7 options= chromeos_bootsplash= edit_brunch_config=1 \
cros_secure cros_debug loop.max_part=16 img_uuid=8191adfb-ab27-4e4d-a12e-b9e49aa1b466 img_path=/chromeos.img
initrd (loop,7)/lib/firmware/amd-ucode.img (loop,7)/lib/firmware/intel-ucode.img (loop,7)/initramfs.img
*******************************************************************


Now copy the text similar to this from your terminal and paste it in a notes app or save it somewhere.
Now the end is near!

Now run this command which will copy the given

Bash:
sudo cp /etc/grub.d/40_custom /etc/grub.d/99_brunch


Running this command will open the nano text editor to edit these files,
Bash:
sudo nano /etc/grub.d/99_brunch

Now a file will open,
1. Now paste the text you copied before in a new line
2. then press Ctrl+X then type y to save it and hit enter


Now lastly run,

Bash:
sudo update-grub
and
Bash:
sudo update-grub2

this will update your grub configuration!

Now for those who have secure boot enabled you will have to follow some extra steps.

Now there are 2 ways:

Way 1 [run if Way 2 does not work]: Go to BIOS Setup and simply disable SecureBoot and boot into ChromeOS

Way 2 [Recomended]: Download the file from this link and paste the file in the ChromeOS folder

open terminal and run:
Bash:
cd Documents/ChromeOS
Bash:
sudo mokutil --import brunch.der
and thats it!




Windows

Prerequesites,

• Administrator access

• you have to give atleast 16gb to ChromeOS minimum, the disk should be
bitlocker disabled, and the format should be NTFS

• Windows Subsystem for Linux 2 (WSL2) or use Cygwin

• pv, tar, unzip and cgpt should be installed

• Basic Linux command knowledge






Preparing the Linux Environment



For windows 10 and 11 users

Open Powershell and run
Code:
wsl –install
thats it

NOTE: You must be running Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11.


for Windows 7 & 8/8.1 (works for windows 10 and 11 too)

Download and install Cygwin from HERE
after this run the CygWin terminal (for CygWin users) and for WSL2 users launch it!



Preparing Environment



And run this
Bash:
sudo apt update && sudo apt -y install pv cgpt tar unzip

If the process ends with errors then run this:
Bash:
sudo add-apt-repository universe

and run
Bash:
sudo apt update && sudo apt -y install pv cgpt tar unzip


Installation


Bash:
cd /mnt/c/Users/username/Downloads
Here replace the username by your actual username

Now run,
Bash:
tar zxvf brunch_filename.tar.gz
replace the brunch_filename.tar.gz from the real filename

Now run,

Bash:
unzip chromeos_filename.bin.zip
Here replace chromeos_filename.bin.zip from the actual filename (cmon you know the drill)

Now run,

Bash:
mkdir /mnt/c/Users/username/brunch
Again replace the username from the real username (if you want to install it in C disk)

Run,

Bash:
mkdir /mnt/d/brunch
(if you want to install in Disk D)

Now run,

Bash:
sudo bash chromeos-install.sh -src chromeos_filename.bin -dst /mnt/c/Users/username/brunch/chromeos.img -s size

Here replace chromeos_filename.bin from the real one, and replace size from the storage you want to provide (give atleast 16 gb)

Now Install Grub2Win from HERE
and run it

then click on the Manage Boot Menu and then add a new entry

Select the create user section from the type section.

Now open chromeos.grub.txt saved earlier, it will be in the same directory and copy the grub boot entries saved in that file and copy them to Grub2win

then click Ok and Apply to save the entries into Grub2win

To prevent windows from locking the NTFS partition I recommend you to switch off secureboot!




Troubleshoot

ChromeOS boot fix
this fix includes:
• Grub bootloader does not show up
• PC/Laptop directly boots into the MainOS
• the menu boot time is too short
• etc

Now there is a common issue where you have installed ChromeOS but the grub menu does not show up and your PC directly boots into the MainOS (Windows/Linux) these steps will help you fix it!

open terminal and run
Bash:
sudo apt install gedit

this will install Gedit


Gedit
is a simple text editor which is commonly used to edit system files

next run,
Bash:
sudo gedit /etc/default/grub

This will open a text document in gedit
If it asks for password then type it

Now the usual default format of the text document is like this:


# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0

GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"


Now you will see GRUB_TIMEOUT_STYLE=hidden
here replace the hidden from menu
next
in GRUB_TIMEOUT=0 change 0 from any number this is for how many seconds the grub menu should be visible, I recommend replacing 0 from 30.
thats it! save the file and run the command:

Bash:
sudo update-grub
and
Bash:
sudo update-grub2

Reboot now you should be able to see chromeOS in your menu!



Credits,

• Google
• Android
• ChromeOS Devs
• GitHub
• XDA
• Brunch
• Project Croissant
• Me

-Manav Harsana
 
Last edited:
  • Like
Reactions: amn1987

amn1987

Senior Member
Cygwin uses less data (and storage space) than the WSL route, right?
Also from what I understand there's no need to setup a dedicated partition for brunch? I had used Puppy Linux earlier where the file system could be located in a folder.
Edit: Cygwin does indeed use very little data no more than 30MB downloaded in the default config.
Edit2: Couldn't run the commands in Cygwin. Some error about sudo not being found. WSL2 was easy to install and didn't take more than 500MB data.
 
Last edited:

Ragedpixel

Senior Member
Dec 27, 2019
199
70
14
Faridabad, Haryana
Cygwin uses less data (and storage space) than the WSL route, right?
Also from what I understand there's no need to setup a dedicated partition for brunch? I had used Puppy Linux earlier where the file system could be located in a folder.
Edit: Cygwin does indeed use very little data no more than 30MB downloaded in the default config.
Edit2: Couldn't run the commands in Cygwin. Some error about sudo not being found. WSL2 was easy to install and didn't take more than 500MB data.
I mean we can install it but 1. Its better to keep it clean ig 2. I am lazy im not gonna add another method for sometime atleaset. For that Cygwin thing idk I use Arch btw so idk about cygwin and stuff
 

Top Liked Posts

  • There are no posts matching your filters.
  • 1
    Dual Boot ChromeOS with Linux or Windows!

    Update1: This thread has been fully rewritten for Windows too!
    This guide will tell you how you can dual boot ChromeOS with Linux or Windows! This guide is based on the official GitHub page!

    Update2: Added troubleshoot section: Added ChromeOS not detecting fix


    INDEX

    • About

    • Requierments

    • Downloads

    • Intel CPUs
    • Types of recoveries
    • AMD CPUs


    • Linux Installation
    • Preparing environment
    • Installation

    ◦ Gparted
    ◦ Secureboot

    • Windows Installation
    • Preparing Linux Environment
    ◦ Preparing Environment
    ◦ Installation
    ◦ Secureboot

    Troubleshoot
    • Fix ChromeOS not detecing

    • Credits






    About
    ChromeOS, is an Operating system based on Gentoo Linux and designed by Google based on the ChromiumOS an open source project but unlike that ChromeOS is not open source, ChromeOS uses Google API and has intergrated Google Apps and Google Chrome as its interface! It also supports android apps!

    Why chromeOS ? ChromeOS is a very smooth OS unlike other Android-x86 projects it is a fully functional and powerful OS, though it is not an ideal choice for gaming because it does not support the keymapping function. But if it ever gets Key Mapping there is no better option for running android for your PC other than chromeOS

    Brunch, To keep it short and simple brunch is a framework which can help you to run ChromeOS on your Device even if its not a chromebook!


    Requierments


    • qs-x86_64 based computer with UEFI boot support (you can check that just search on google if you don’t know)
    ◦ With MBR patch your MBR/Legacy device might be supported

    • Administrator Permissions

    • Should have an Intel CPU (check conditions for that too)

    ◦ Intel 1st gen Core are supported only till ChromeOS 81 (This release may not be available anymore)
    ◦ Atom, Celeron and Pentium processors are supported since Baytrail and later versions!

    • AMD Ryzen and AMD Stoney Ridge are supported, but it is limited

    • Nvidia GPUs are not supported (if you have one then its ok, but ChromeOS won’t detect it)

    • No Virtual Machines (VMs) are supported

    • ARM CPUs are not supported at all, No luck guys :(

    • Intel Core 2 Duo and older CPUs are not supported


    Now if you are supported then Great! Lets move on!



    DOWNLOADS

    NOTE: you can even download the eve image which is the best as its the official Pixelbook recovery, but remember the boot chances are less with that so If you don't have time/data download from the below images

    Intel CPUs



    • If your CPU is 10th and 11th gen open this Link note the versions and proceed to download from HERE but before read below
    ◦ 11th gen and some 10th gen CPUs may need kernel 5.10


    • If your CPU is 1st gen to 9th gen then after opening this Link, note the versions and proceed to download from HERE and before downloading read below,




    Stable Builds

    For daily and frequent use [Recommeneded for average users],
    these builds are reliable and are pretty stable for day-to-day use and are recommended.



    Beta Builds

    Good for daily use and more Beta features [Recommended],
    these builds are pretty stable and relaible with a few more Beta features and just a few bugs. These are recommended and also if the stable build is not availible.



    Dev Builds

    Buggy and more features [Power users only, Not Recommended],
    these builds are not very stable and are buggy but have more features! Not recommended for daily use. These builds are ideal for developers who want to test out some features (Liveboot)



    Canary Builds

    Unstable! Experimental feaatures! [NOT Recommended][DEVs ONLY],
    These builds have a lot of bugs but the most of the features! These builds are not intended for average users and are only for testing.



    AMD CPUs



    • For Stoney Ridge and Bristol Ridge Click Here but before read the above info carefully
    and proceed to download from HERE

    • For Ryzen Click here but read above before downloading then carefully
    and proceed to download from HERE

    • for Ryzen 4xxx devices you need kernel 5.10


    As of I am writing this I have an Intel 10th gen CPU and the Stable builds are unavailable so I will be downloading the BETA Build which are quite stable too!

    Now we have to also download Brunch, download the latest stable version from HERE




    LINUX

    Prerequisites,

    • You should be on a Linux Distro (I recommend an Ubuntu/Ubuntu based distro) eg: I am using Kubuntu

    • Root access

    • Atleast 16gb storage you can give to the OS

    • Your PC should support Brunch

    • Some basics of linux terminal (if not I recommend to learn because this helps in troubleshooting problems)

    • Grub2 Bootloader




    Preparing the Environment





    Now open Terminal by Ctrl+Alt+T

    and run,

    Lets enable super user permissions using the following command

    Bash:
    sudo su
    Enter password if it asks and hit enter

    Its a good thing to update and upgrade the packages by running this command,
    Bash:
    sudo apt update && upgrade

    Lets install the required packages the command below will install pv, tar, unzip, cgpt and gparted,
    Bash:
    sudo apt install pv tar unzip cgpt gparted

    Side Notes
    ____________________________________________________________________________________
    pv,
    Pipe Viewer, known as pv is a package which allows the user for the monitering of data being sent through pipe, it helps the user by giving them a visual display

    Tar,
    tape archive. Known as tar is used to create and extract archive files in the format of .tar, .tar.gz etc...

    Cgpt,
    Cgpt is a tool to manipulate GUID Partition Table from command line. It also supports ChromiumOS extentions

    Gparted,
    Gparted is an Advanced disk manager, its simple yet powerful UI makes it easier to create, delete or modify any partition!

    Unzip
    unzip command simply extracts zip files!
    _____________________________________________________________________________________


    Now lets go into Documents using the cd command cd simply means change directory
    Bash:
    cd Documents

    Now lets create a new folder and open that to keep things clean and tidy
    mkdir command means make directory (make folder) and cd is change to directory

    Bash:
    mkdir ChromeOS && cd ChromeOS

    now cut/move the downloaded files to documents/ChromeOS from your file manager


    Installation



    Now we will extract the tar.gz archive using tar we previously downloaded! Tar calles the command to run tar and zxvf is to extract the file in format of tar.gz
    Bash:
    tar zxvf brunch_ filename.tar.gz
    Replace the brunch_filename.tar.gz from your actual bruch file’s name

    now we also want to extract the chromeos zip file this file can be extracted by using the unzip command!
    Bash:
    unzip chromeos_ filename.bin.zip
    Replace the chromeos_filename.bin.zip from your actual chromeOS file’s name

    once done
    if you already have an empty disk and are deciding to use that for installation then just check these things:


    the partition should be ext4 or ntfs (ext4 recommended)

    if not or if you don’t know what partition is it then
    1. open Gparted and if under the file system your partion shows ext4 then close Gparted and if not then
    2. right click the patition then
    3. select format to and
    4. select ext4 after that
    5. click the logo and proceed after that
    6. close Gparted.

    If you don’t have a free partition or you want to create a different partition then,
    minimize terminal and open Gparted (if you ran the first command it is automatically installed).

    1. Now open Gparted and
    2. Resize your storage and free up 16-100 gb of storage, to do that right click the partition you want to give storage from,
    3. Click on the resize/move and
    4. In the Free space following (MiB) text box enter the amount of storage you want to give to chromeOS in MB and click resize,
    5. now you will notice a new space created called unallocated right click on it then click on new.

    6. Now select Create as Primary Partion and File System: ext4 and click add! Now again click the Icon and proceed.


    Also in Gparted note the name of your ChromeOS partition below the “Partition” table

    for eg: /dev/sda11, /dev/mmcblk0p5 or /dev/nvme0n1p4

    now open terminal,
    now we will create a new mountpoint for that we will create a new directory using mkdir. The ~ is a symbol of your home directory so ~/tmpmount actually means home/tmpmount!

    Bash:
    mkdir -p ~/tmpmount

    Now its time to mount the partition at the mountpoint
    now this command will mount your partition named dev/partion to tmpmount!

    Bash:
    sudo mount /dev/partition ~/tmpmount
    here replace the ‘partition’ to your partition name you saw in Gparted

    Now
    as we did before replace the chromeos_filename.bin to your actual file’s name and also replace the size from the amount of storage you want to give to chromeOS, minimum 16gb maximum your choice.

    This command runs the chromeos-install.sh file in bash this file runs the installer! With the source (-src) being chromeos.bin file and the destination (-dst) being ~/tmpmount/chromeos.img and the size (-s) is what you desire

    Bash:
    sudo bash chromeos-install.sh -src chromeos_filename.bin -dst ~/tmpmount/chromeos.img -s size
    Now if it asks for confirmation then type yes in the prompt
    Now after it is over you should see something like this:


    **************************************************************
    menuentry "ChromeOS" --class "brunch" {
    rmmod tpm
    search --no-floppy --set=root --file /chromeos.img
    loopback loop /chromeos.img
    source (loop,12)/efi/boot/settings.cfg
    if [ -z $verbose ] -o [ $verbose -eq 0 ]; then
    linux (loop,7)$kernel boot=local noresume noswap loglevel=7 options=$options chromeos_bootsplash=$chromeos_bootsplash $cmdline_params \
    cros_secure cros_debug loop.max_part=16 img_uuid=8191adfb-ab27-4e4d-a12e-b9e49aa1b466 img_path=/chromeos.img \
    console= vt.global_cursor_default=0 brunch_bootsplash=$brunch_bootsplash quiet
    else
    linux (loop,7)$kernel boot=local noresume noswap loglevel=7 options=$options chromeos_bootsplash=$chromeos_bootsplash $cmdline_params \
    cros_secure cros_debug loop.max_part=16 img_uuid=8191adfb-ab27-4e4d-a12e-b9e49aa1b466 img_path=/chromeos.img
    fi
    initrd (loop,7)/lib/firmware/amd-ucode.img (loop,7)/lib/firmware/intel-ucode.img (loop,7)/initramfs.img
    }

    menuentry "ChromeOS (settings)" --class "brunch-settings" {
    rmmod tpm
    search --no-floppy --set=root --file /chromeos.img
    loopback loop /chromeos.img
    source (loop,12)/efi/boot/settings.cfg
    linux (loop,7)/kernel boot=local noresume noswap loglevel=7 options= chromeos_bootsplash= edit_brunch_config=1 \
    cros_secure cros_debug loop.max_part=16 img_uuid=8191adfb-ab27-4e4d-a12e-b9e49aa1b466 img_path=/chromeos.img
    initrd (loop,7)/lib/firmware/amd-ucode.img (loop,7)/lib/firmware/intel-ucode.img (loop,7)/initramfs.img
    *******************************************************************


    Now copy the text similar to this from your terminal and paste it in a notes app or save it somewhere.
    Now the end is near!

    Now run this command which will copy the given

    Bash:
    sudo cp /etc/grub.d/40_custom /etc/grub.d/99_brunch


    Running this command will open the nano text editor to edit these files,
    Bash:
    sudo nano /etc/grub.d/99_brunch

    Now a file will open,
    1. Now paste the text you copied before in a new line
    2. then press Ctrl+X then type y to save it and hit enter


    Now lastly run,

    Bash:
    sudo update-grub
    and
    Bash:
    sudo update-grub2

    this will update your grub configuration!

    Now for those who have secure boot enabled you will have to follow some extra steps.

    Now there are 2 ways:

    Way 1 [run if Way 2 does not work]: Go to BIOS Setup and simply disable SecureBoot and boot into ChromeOS

    Way 2 [Recomended]: Download the file from this link and paste the file in the ChromeOS folder

    open terminal and run:
    Bash:
    cd Documents/ChromeOS
    Bash:
    sudo mokutil --import brunch.der
    and thats it!




    Windows

    Prerequesites,

    • Administrator access

    • you have to give atleast 16gb to ChromeOS minimum, the disk should be
    bitlocker disabled, and the format should be NTFS

    • Windows Subsystem for Linux 2 (WSL2) or use Cygwin

    • pv, tar, unzip and cgpt should be installed

    • Basic Linux command knowledge






    Preparing the Linux Environment



    For windows 10 and 11 users

    Open Powershell and run
    Code:
    wsl –install
    thats it

    NOTE: You must be running Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11.


    for Windows 7 & 8/8.1 (works for windows 10 and 11 too)

    Download and install Cygwin from HERE
    after this run the CygWin terminal (for CygWin users) and for WSL2 users launch it!



    Preparing Environment



    And run this
    Bash:
    sudo apt update && sudo apt -y install pv cgpt tar unzip

    If the process ends with errors then run this:
    Bash:
    sudo add-apt-repository universe

    and run
    Bash:
    sudo apt update && sudo apt -y install pv cgpt tar unzip


    Installation


    Bash:
    cd /mnt/c/Users/username/Downloads
    Here replace the username by your actual username

    Now run,
    Bash:
    tar zxvf brunch_filename.tar.gz
    replace the brunch_filename.tar.gz from the real filename

    Now run,

    Bash:
    unzip chromeos_filename.bin.zip
    Here replace chromeos_filename.bin.zip from the actual filename (cmon you know the drill)

    Now run,

    Bash:
    mkdir /mnt/c/Users/username/brunch
    Again replace the username from the real username (if you want to install it in C disk)

    Run,

    Bash:
    mkdir /mnt/d/brunch
    (if you want to install in Disk D)

    Now run,

    Bash:
    sudo bash chromeos-install.sh -src chromeos_filename.bin -dst /mnt/c/Users/username/brunch/chromeos.img -s size

    Here replace chromeos_filename.bin from the real one, and replace size from the storage you want to provide (give atleast 16 gb)

    Now Install Grub2Win from HERE
    and run it

    then click on the Manage Boot Menu and then add a new entry

    Select the create user section from the type section.

    Now open chromeos.grub.txt saved earlier, it will be in the same directory and copy the grub boot entries saved in that file and copy them to Grub2win

    then click Ok and Apply to save the entries into Grub2win

    To prevent windows from locking the NTFS partition I recommend you to switch off secureboot!




    Troubleshoot

    ChromeOS boot fix
    this fix includes:
    • Grub bootloader does not show up
    • PC/Laptop directly boots into the MainOS
    • the menu boot time is too short
    • etc

    Now there is a common issue where you have installed ChromeOS but the grub menu does not show up and your PC directly boots into the MainOS (Windows/Linux) these steps will help you fix it!

    open terminal and run
    Bash:
    sudo apt install gedit

    this will install Gedit


    Gedit
    is a simple text editor which is commonly used to edit system files

    next run,
    Bash:
    sudo gedit /etc/default/grub

    This will open a text document in gedit
    If it asks for password then type it

    Now the usual default format of the text document is like this:


    # If you change this file, run 'update-grub' afterwards to update
    # /boot/grub/grub.cfg.
    # For full documentation of the options in this file, see:
    # info -f grub -n 'Simple configuration'

    GRUB_DEFAULT=0
    GRUB_TIMEOUT_STYLE=hidden
    GRUB_TIMEOUT=0

    GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
    GRUB_CMDLINE_LINUX=""

    # Uncomment to enable BadRAM filtering, modify to suit your needs
    # This works with Linux (no patch required) and with any kernel that obtains
    # the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
    #GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

    # Uncomment to disable graphical terminal (grub-pc only)
    #GRUB_TERMINAL=console

    # The resolution used on graphical terminal
    # note that you can use only modes which your graphic card supports via VBE
    # you can see them in real GRUB with the command `vbeinfo'
    #GRUB_GFXMODE=640x480

    # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
    #GRUB_DISABLE_LINUX_UUID=true

    # Uncomment to disable generation of recovery mode menu entries
    #GRUB_DISABLE_RECOVERY="true"

    # Uncomment to get a beep at grub start
    #GRUB_INIT_TUNE="480 440 1"


    Now you will see GRUB_TIMEOUT_STYLE=hidden
    here replace the hidden from menu
    next
    in GRUB_TIMEOUT=0 change 0 from any number this is for how many seconds the grub menu should be visible, I recommend replacing 0 from 30.
    thats it! save the file and run the command:

    Bash:
    sudo update-grub
    and
    Bash:
    sudo update-grub2

    Reboot now you should be able to see chromeOS in your menu!



    Credits,

    • Google
    • Android
    • ChromeOS Devs
    • GitHub
    • XDA
    • Brunch
    • Project Croissant
    • Me

    -Manav Harsana