A Definitive Arch Linux Install Guide for the Chromebook C720


Tags: arch linux

After the many, many times I’ve struggled to install and reinstall Arch Linux on a device, I’ve decided enough is enough. It’s time to write a complete guide for installing Arch on a Chromebook C720.

I don’t really know how I ended up owning three of these laptops, but it is what it is. The official Arch install guide is a bit vague about setting up grub and partitions, so I’m going to document an example setup here.

The basic procedure is as follows:

  1. Connect to wi-fi.
  2. Update the system clock.
  3. Partition the hard drive.
  4. Mount partitions.
  5. Install everything.
  6. fstab.
  7. GRUB.
  8. Final touches.

Connect to wi-fi.

# wifi-menu

You’ll need wi-fi to install packages.

Update the system clock.

# timedatectl set-ntp true

Partition the hard drive.

We’ll be using a GPT partition table. Additionally, we’ll be using GRUB as our bootloader, so there needs to be a partition for booting as well.

(parted) mklabel gpt
(parted) mkpart primary 1MiB 3MiB
(parted) name 1 grub
(parted) set 1 bios_grub on
(parted) mkpart primary 3MiB 131MiB
(parted) name 2 boot
(parted) mkpart primary 131MiB 2GiB
(parted) name 3 swap
(parted) mkpart primary 2GiB 100%
(parted) name 4 rootfs

This makes a BIOS partition for GRUB, a boot partition, a swap partition, and disk space.

Mount partitions.

First, format the partitions with the appropriate filesystem:

# mkfs.ext4 /dev/sda2
# mkfs.ext4 /dev/sda4

Then, mount the hard drive to an accessible path we can chroot into later.

mount /dev/sda4 /mnt
mkdir /mnt/boot
mount /dev/sda2 /mnt/boot

Install everything.

The base and base-devel packages contain most things needed to get up and running. Use pacstrap to install:

# pacstrap \mnt base base-devel

If you run into problems about keys not being found, update the archlinux keyring:

# pacman -Sy archlinux-keyring

Then, update your USB install with pacman -Syu.


Generate the fstab afterwards:

# genfstab -U /mnt >> /mnt/etc/fstab


We’ll now start customizing the newly installed Arch copy. First chroot:

# arch-chroot /mnt

Let’s set up booting to the new OS.

# pacman -Syu grub
# grub-install /dev/sda
# grub-mkconfig -o /boot/grub/grub.cfg

If there’s an error, either this guide is bad or you messed up somewhere.

Final Touches

Link the timezone:

# ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime

Run hwclock to generate /etc/adjtime:

# hwclock --systohc

Set your locale by uncommenting your desired locale (en_US.UTF-8 UTF-8):

# nano /etc/locale.gen

Make your edits and run:

# locale-gen

And set the LANG variable in locale.conf:


Set the LANG variable as well:

echo LANG=en_US.UTF-8 >> /etc/locale.conf

Set your hostname. This is the “name” of your computer:

echo myhostname >> /etc/hostname

Add a matching entry to your hosts file:	localhost.localdomain	localhost
::1		localhost.localdomain	localhost	myhostname.localdomain	myhostname

Set a password for root:

# passwd


Alright, good job, ctrl-D to exit chroot, unmount the OS:

unmount -R /mnt

Restart, and pray that you boot into Arch Linux the next time around.







Recent Posts

Previous: C4D: Fire Room BTS | Next: Welcome to my Miscellaneous Blog!