Chromebook Pixel, Fedora 20 and Dualboot

My first update in a very long time. Please do not do this if you are unsure of any of the steps. Though as long as you have a ChromeOS recovery built, your Pixel will be fixable. Also, you will lose your current local data. I have written this from memory, so I take no responsibility for your broken notebook.

So I was lucky enough to get a Chromebook Pixel. I love the hardware, I even like Chromeos, but there are occasions when I want full linux.

You can install any OS you like on a Pixel using the legacy boot options, but this will usually make ChromeOS un-bootable, even if you don’t remove it.

If you google, you will find 2 main options for running another Linux distribution along side ChromeOS:

  1. crouton, running Debian/Ubuntu based distributions in a chroot
  2. chrubuntu, Running ubuntu in a dual-boot environment

But I wanted to dualboot with Fedora. This basic steps are simple.

  • Resize paritions, do not edit partition types or labels.
  • Install Linux on /dev/sda7.

Unfortunately the Fedora installer (Anaconda) will always alter the partition table and stop ChromeOS booting. So we need to install Fedora without using the Fedora Installer. Full Instructions below.

Preparation

  • Prepare a ChromeOS recovery drive on a USB flash from within ChromeOS. This hopefully won’t be necessary, but while working out this process I needed it (a lot).
  • Make a Fedora Live bootable usb on another flash drive.
  • Put your pixel into devloper mode. (This will wipe your computer)
    • Turn off your chromebook
    • Hold down “ESC+Reload” while powering on
  • Turn on legacy booting
    • ctrl+alt+t to open a terminal

      > shell
      $ sudo su -
      # crossystem dev_boot_legacy=1
      # crossystem dev_boot_usb=1

Make room

From within ChromeOS we will update the partition sizes. The easiest way to do this is to use the fantastic Chrubuntu script mentioned earlier. Follow the instructions here: http://chromeos-cr48.blogspot.com/2013/10/chrubuntu-for-new-chromebooks-now-with.html. Please check that blog for the most up to date instructions.

Once you have run the script once and your Pixel has rebooted and repaired your ChromeOS installation, do not run the script again, or Ubuntu will be installed.

Power off your chromebook.

Installing Fedora

  1. Insert your Fedora Live USB.
  2. Power on your Pixel, at the boot screen, hit ctrl+l
  3. At the boot screen for Fedora hit “Tab”, add “mem=4g” to the end of the kernel line
  4. Hit F10 (The Volume Up key)
  5. Do not install Fedora, instead open a terminal


    $ su -
    # mkfs.ext4 /dev/sda7
    # mount /dev/sda7 /mnt
    # yum --releasever=20 --installroot=/mnt/ groupinstall core
    # cp /etc/resolv.conf /mnt/etc/
    # mount -t sysfs none /mnt/sys
    # mount -t proc none /mnt/proc
    # mount -o bind /dev /mnt/dev
    # chroot /mnt /bin/bash

    Setup a /etc/fstab file:

    /dev/sda7 / ext4 defaults,noatime,nodiratime 0 1
    devpts /dev/pts devpts gid=5,mode=620 0 0
    tmpfs /dev/shm tmpfs defaults 0 0
    proc /proc proc defaults 0 0
    sysfs /sys sysfs defaults 0 0

    You have now installed a base Fedora image, though it is currently not bootable. You can also install anything else you like now. If you have a usb ethernet dongle I recommend waiting until you have booted into your new install though, as anything you install is going to have to have selinux re-label it on first boot. But if you like, you can go ahead and install gnome-desktop (or any other package):

    # yum groupinstall gnome-desktop

    Now we need to make it bootable. Ensure you have a kernel installed and the grub package. Then install grub to the mbr of sda. Grub will complain, that is why we need the force option.

    # yum install kernel grub2 grub2-tools
    # grub2-install /dev/sda --force
    # grub2-mkconfig -o /boot/grub2/grub.cfg

    This last step is important, or your install will fail to boot successfully.
    # touch /.autorelabel

    And that should be it.

10 thoughts on “Chromebook Pixel, Fedora 20 and Dualboot”

  1. Having been looking for a guide like this for months!
    However it fails at this step:
    # chroot /mnt/local /bin/bash
    should it instead be just chroot /mnt /bin/bash?
    I anyway went ahead with the rest of the steps, but on restart, I ended up in grub menu.

    Also, to “Setup a /etc/fstab file” do i simply do “nano /etc/fstab” and then copy-paste the bit you have provided?

    Thanks!

  2. Yes, good catch, I’ll change the doc

    Yep, use any editor you like as long as you have a correct /etc/fstab file.

    Sorry I wrote this up after I got it working, so a lot if from memory. But I am happy to give it another go to make sure it works if you get stuck anywhere.

    I should also write up a post about get power management to work and a useful resolution. Though that stuff is googleable.

    1. Hi Rob,
      Thanks for the revert. Got Fedora up and running! Incidentally, this took couple of tries. The mistake I made was to choose yum groupinstall “Cinnamon Desktop” rather than gnome-desktop. So instead of getting the first run screen, where I could set up a username and password, it took me straight to some “localhost login” screen. And adding a user from there lead to “token authentication error” and bunch of other issues.
      Yes, would be great if you could write a post about getting power management and suspend working. Will follow your instructions.
      Also, wondering if you can help out with steps for upgrading the kernel to 3.17rc5. Previously, I was on Chrubuntu (as also running eOS off a USB drive). Upgrading to 3.17 brought in native support for touchpad and suspend.
      Looking forward to reading more from you. Thanks.

      1. A quick hack around the user problem, while you are in the chroot doing the initial install:

        # useradd -c "Your Name" -d /home/ -m
        # passwd

  3. need a linux OS on my Pixel but want to know if using this meathod of dual booting would still allow me to use the Audio and Touchpad. i’ve used other Linux distros and each have broke the audio and touchpad (touchscreen too but i dont mind that) those were all full HD wipe with only one OS (linux) installed

    1. The method you use to dual-book will have no impact. But if you use the latest Fedora, or Ubuntu, you should have no driver issues. The only thing that doesn’t word without tweaking is suspend/resume.

  4. Rob,
    I was just looking at getting a pixel as my personal laptop, I have a Dell E7240 from work that runs Fedora 21 ATM and is driving it’s own native monitor and two external all at the same time. You wouldn’t know if it’s possible for the pixel to do that would you, under ChromeOS or Fedora 20/21/22?

  5. I am trying to dual boot Fedora 21 on the new 2015 Chromebook Pixel following this guide (after days of pulling my hair out trying to use the graphical Fedora installer…)

    I followed the guide without issue, but of course couldn’t log in once I had booted Fedora. I tried the useradd approach you mentioned in a comment, but when I try to set the password I get “authentication token manipulation error”. I get the same error when trying to set the root password.

    I tried setting the root password to null with passwd -d root but I get
    passwd: Libuser error at line: 198 – couldn’t open `/etc/passwd’: Permission denied.

    Any ideas?

    1. I am not sure exactly what is causing that error, if you are inside the chroot, as the root user no file should be off limits to you.

      From the live usb, open a terminal, become root, then chroot.

      If the useradd worked, you can make sure there is no password set on Fedora. Edit /etc/shadow. Make sure you are in the chroot, not the /etc/shadow of the live usb. Remove the second field something like:

      user::….

      I am not sure if gnome will will you login. But after boot you can ctrl+alt+f2, and hopefully login to the tiny fonted TTY and then run a “passwd”.

      Hope this helps.

Leave a Reply

Your email address will not be published. Required fields are marked *