Boot Arch Linux on enrolled Chromebooks
ArchBoot is a fork of Shimboot that focuses on Arch Linux (with optional Debian/Ubuntu/Alpine builds). It patches a ChromeOS RMA shim into a multi-distro bootloader without touching your internal firmware.
Works on enterprise-enrolled devices No firmware flashing Arch-first, multi-distro builder
ChromeOS shim → Linux
Uses the RMA shim + recovery image, then pivots into your own Arch/Debian/Ubuntu/Alpine rootfs.
Arch by default
`sudo ./build_complete.sh <board>` builds an Arch + XFCE image. Other distros via simple arguments.
Shimboot lineage
Based on the original Shimboot project by ading2210, keeping GPLv3 and full upstream credit.

How it works

ChromeOS RMA shims are special images that boot even on enrolled devices. Due to the SH1MMER flaw, the shim rootfs isn't verified, so ArchBoot swaps it with a small bootloader environment.

ArchBoot's bootloader:

  • Boots inside the shim environment.
  • Finds rootfs partitions (e.g. shimboot_rootfs:arch).
  • Copies firmware/modules from recovery + shim into your rootfs.
  • Uses pivot_root to enter your Linux rootfs.
  • Hands off to the init system (systemd/OpenRC, depending on distro).

Systemd + ChromeOS kernel

The ChromeOS kernel can hang on unpatched systemd mounts. Shimboot solved this with a patched systemd build (chromeos-systemd) served from its own repo.

ArchBoot follows the same idea:

  • You can include a patched systemd package inside the rootfs.
  • The build scripts detect and pacman -U (Arch) or install the patched build.
  • If you skip this, vanilla systemd may still work, but it's less guaranteed.

Distro options

ArchBoot can build different rootfs images via distro=<name>:

  • Arch (default) – rolling, Arch packages, pacman.
  • Debian – stable base, APT, good upstream docs.
  • Ubuntu – similar to Debian with Ubuntu repos.
  • Alpine – very small, musl-based, OpenRC.

Desktop selection:

  • desktop=xfce|kde|gnome|... – quick presets.
  • de="..." – advanced mode: give an explicit package list for your DE/WM.

Images

The original Shimboot project still provides prebuilt images for some boards (GitHub releases).

ArchBoot is mainly source-built so you can choose:

  • Arch + your favorite DE (default ArchBoot path).
  • Alternative distros for experimentation or compatibility.

Build ArchBoot (typical flow)

  1. On a Linux machine (Ubuntu/Debian works), clone the ArchBoot repo and cd into it.
  2. Find your Chromebook board name on cros.download.
  3. Run:
    sudo ./build_complete.sh <board_name>
    This downloads the shim + recovery image and builds an Arch + XFCE image by default.
  4. Optional arguments:
    • distro=arch|debian|ubuntu|alpine
    • desktop=xfce|kde|gnome|...
    • de="<explicit package list>" for full control.

First boot & expand_rootfs

  1. Flash the built archboot_<board>.bin to a USB or SD card using the Chromebook Recovery Utility or dd.
  2. Enable developer mode on the Chromebook (or follow SH1MMER instructions for enrolled devices).
  3. Boot from the USB/SD; the ArchBoot OS selector will appear.
  4. Select your ArchBoot rootfs entry and boot into the desktop (default user/pass is usually user/user).
  5. Once logged in, run sudo expand_rootfs to grow the root partition to fill the drive.
  6. Change the password with passwd user.