I have installed Ubuntu in my chromebook but it only boots into chrome OS. My goal is to have my Chromebook booting into Ubuntu.
-
1How did you install Ubuntu? – Seth Jan 18 '14 at 02:57
-
Seth I followed instructions on 'YouTube' I saw everything downloading (about20min) but I can not get into Ubuntu – Brian Jan 18 '14 at 14:59
-
1This question is pretty clear, without needing any edits, the user is trying to run Ubuntu on his chromebook. Ubuntu is already installed but it will only boot into Chrome OS not into Ubuntu. – Hans Jan 18 '14 at 16:20
-
@Hans ok, but how he installed Ubuntu? Used an script? He says followed instructions on YT, but which and who's instructions? – Braiam Jan 18 '14 at 18:25
-
Stu has pointed out that this question may be related to Chromebook install Ubuntu but I can not to start Ubuntu. Acer C7 and perhaps information there could be helpful here (or vice versa). – Eliah Kagan Jan 18 '14 at 20:09
-
@Amolith The answers in the duplicate question that you linked to are out of date. – karel Jun 30 '17 at 07:44
-
@karel What do you mean? – Amolith Jun 30 '17 at 11:17
-
@Amolith It's explained in this link: https://askubuntu.com/questions/866590/is-it-possible-to-dual-boot-chrome-os-and-ubuntu-16-10/866637#866637 – karel Jun 30 '17 at 11:32
-
@karel Would you VTC it to this one as duplicate? I realized yesterday that there was a much better one to link to. – Amolith Jun 30 '17 at 11:34
-
@Amolith Thanks for posting. I agree that your second link is a much better one to link to. – karel Jun 30 '17 at 12:01
-
@karel Even though the first, most upvoted answer, is how to install Chrubuntu? – Amolith Jun 30 '17 at 12:03
-
Let us continue this discussion in chat. – karel Jun 30 '17 at 12:04
2 Answers
Once you have installed Ubuntu, if you reboot your Chromebook, by default it will continue to boot into Chrome OS, which lives on in its own dedicated partition.
If you'd like ChrUbuntu to be the default, open up the Terminal in ChrUbuntu (or the Developer Console command prompt in Chrome OS) and enter sudo cgpt add -i 6 -P 5 -S 1 /dev/sda to change the default boot partition. Changing it back to Chrome OS is as easy as disabling developer mode when you boot the Chromebook, or entering sudo cgpt add -i 6 -P 0 -S 1 /dev/sda at the terminal.
EDIT I:
Set boot priority
At this point we should have the following situation:
- Image-A is an official Google Chrome OS which can boot either in normal mode or dev-mode.
- Image-B is (or will be after the first autoupdate) another official Google Chrome OS which can boot either in normal mode or dev-mode.
- Image-C is Chrome OS kernel with a modified command line and an Ubuntu rootfs, which can only boot in dev-mode.
Next, we adjust the priority among the images so we can try out our Ubuntu image. The image priority is an attribute of its kernel partition. Run cgpt show /dev/sda
, to see the kernel priorities:
localhost ~ # cgpt show /dev/sda
...
4096 32768 2 Label: "KERN-A" Type: ChromeOS kernel UUID: D176DC60-81F1-654E-8953-E3D28019738C Attr: priority=3 tries=0 successful=1
...
36864 32768 4 Label: "KERN-B" Type: ChromeOS kernel UUID: F1A2C65C-CC22-FF4A-A8BC-67BA233F3D40 Attr: priority=0 tries=15 successful=0
...
12369920 32768 6 Label: "KERN-C" Type: ChromeOS kernel UUID: B6954485-4295-9749-956A-C315B01FB684 Attr: priority=0 tries=15 successful=0
The priority determines the order in which the BIOS tries to find a valid kernel (bigger is higher, zero means don't even try). The tries field is decremented each time the BIOS tries to boot it, and if it's zero, the kernel is considered invalid (this lets us boot new images without looping forever if they don't work). The successful field overrides the tries field, but is only set by the OS once it's up and running.
Let's change the priority of KERN-C to 5:
cgpt add -i 6 -P 5 -T 1 -S 0 /dev/sda
This makes KERN-C the highest priority, but only gives us one chance to boot it. That way if it doesn't work, we're not completely stuck.
If you reboot now, you should come up in Ubuntu! Note that Computer Science Standard Answer #1 applies: It Works For Me™
If something went wrong and Ubuntu crashes or you powered off, the tries field for KERN-C will have been decremented to 0 and you'll fall back to booting Chrome OS.
Assuming that Ubuntu booted and you could log in, go to Applications->Accessories->Terminal to get a shell, and run
sudo cgpt add -i 6 -P 5 -S 1 /dev/sda
This will mark the Ubuntu kernel as valid, so it will continue to boot next time.
Now you can switch back and forth between the official Chrome OS release and Ubuntu just by flipping the dev-mode switch. Going from dev-mode to normal mode erases STATE (/dev/sda1), but much more quickly. Going from normal to dev-mode again would normally do a slow erase of /dev/sda1, but since we're booting Ubuntu that doesn't happen.
This works because although KERN-C has the highest priority, it isn't signed by Google. In dev-mode that's okay, but in normal mode it will be rejected by the BIOS. Since we've set the successful flag to 1, the BIOS won't mark it invalid but will just skip it each time. This makes the normal-mode boot time slightly longer, but only by a second or two.
Of course you could also switch between images from within dev-mode just by manually setting the priorities with cgpt before rebooting.
Note that if the normal image autoupdates, it will probably change the kernel priorities so that Image-C is no longer the highest and the next time you switch to dev mode, you will a) have a long wait, b) still be running Chrome OS, and c) have to use cgpt to raise the KERN-C priority again.
But, because autoupdate only switches between Image-A and Image-B, the Ubuntu kernel and rootfs shouldn't be affected.

- 1,281
- 1
- 20
- 44
-
-
2@Brian check out the edit that I made to my answer, tell us if it worked (if so, don't forget to mark the answer as accepted). If it doesn't please let us know as well. – Hans Jan 18 '14 at 16:14
-
Hans I am not a computer wiz I am not sure I really understand what you are talking about – Brian Jan 18 '14 at 17:31
-
2Ok, just access your Chromebook into the Chrome OS and open a console, then enter the codes I typed in above, and that's all. – Hans Jan 18 '14 at 17:52
-
-
2A console or command prompt is an application used to give the computer some orders. There is a command prompt or console within all OS (actually there are some OS that have only a command prompt, the don't have a graphic interface at all!) the Chrome OS command prompt is accessed by hitting
CTRL+ALT+T
directly within the system, then do as instructed.PS: The Ubuntu command prompt is the Terminal you will be working on it a lot, so get used to it.
– Hans Jan 18 '14 at 18:17 -
-
2
-
-
2@Brian we do our best, but we can't teach you how to use a computer. Read a bit about how to use the developer console, and find an answer about the cgpt command in chromebook in other forum. Then comeback and do as instructed before. – Hans Jan 18 '14 at 19:35
I don't have enough reputation to comment on the above post unfortunately, and my post is too long for a comment, so I'll clarify the problem with your console, Brian.
Your problem is that you're not even in the console. That's why you get "Unknown command: sudo" and "Unknown command: cgpt". You're not in a full Linux shell.
How to fix: After going into the console with ctrl+alt+T, type "shell" without quotation marks. Then you'll be able to execute the commands helpfully provided by Hans.
Thanks,
Num
P.S. I tried your method, Hans, and there's a slight problem. I don't have a kernel C. However, the console accepted the cgpt add -i 6 -P 5 -T 1 -S 0 /dev/sda
command without an error. When I rebooted, the screen turned on but stayed black, then off, then flashed black again, then gave me the "OS verification is OFF" message. I pressed ctrl+D, and, after a couple more flashes of black between quick power-offs of the monitor, it booted successfully... into ChromeOS. Do I need to apt-get headers or something? I know KERN-C is supposed to be on the cgpt show /dev/sda
list. My laptop is an Acer C710 if that helps. I realize this problem is mainly occurring on Acers.

- 3
- 4
-
I checked again just now, and Kern-C has been added to the list. Probably fixed itself with the flashes. – Numailia Jul 09 '14 at 15:19
-
I tried running
sudo cgpt add -i 6 -P 5 -T 1 -S 0 /dev/sda
, thencgpt show /dev/sda
to make sure the kernel C had the highest priorities, which it did, then rebooted. It had the flashes as before, then went into ChromeOS. I rancgpt show /dev/sda
in the terminal to see what was wrong, and sure enough, the values of KERN-C had all been reset to zeros. No priorities, no tries, no successes. What should I do? The terminal isn't saving my changes. – Numailia Jul 09 '14 at 15:34 -
I have the same problem. Eric Reyes reported a problem with the ChrUbuntu script which repacks the kernel with the wrong architecture option. (I noticed that my Acer C710 became 64 bits some time ago.) I locally fixed the script after download and redid the installation, but it did not work. Since this was an overwrite of an existing Ubuntu installation, I will retry the procedure from scratch with a restored Chromebook. – SylvainC Jul 21 '14 at 20:18