explaingit

dnschneid/crouton

8,590ShellAudience · developerComplexity · 3/5Setup · hard

TLDR

A set of shell scripts that lets older Chromebooks run Ubuntu, Debian, or Kali Linux alongside Chrome OS using a chroot with no speed penalty. Now end-of-life and no longer maintained.

Mindmap

mindmap
  root((repo))
    What it does
      Linux on Chromebook
      Chroot no reboot
      Ubuntu Debian Kali
    Project status
      End of life
      Works on old devices
      Repo will be archived
    Requirements
      Developer mode
      Older Chrome OS
    Alternative
      Google Crostini
      Built-in Linux
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Revive an old end-of-life Chromebook by installing a full Ubuntu or Debian environment alongside Chrome OS.

USE CASE 2

Run Linux desktop applications on a Chromebook without replacing Chrome OS or rebooting into a separate OS.

USE CASE 3

Set up Kali Linux on an older Chromebook for security testing or learning using the crouton chroot.

Tech stack

Shell

Getting it running

Difficulty · hard Time to first run · 1h+

Requires enabling Chromebook developer mode, a hardware-level setting that disables some security protections.

No license information was provided in the explanation.

In plain English

Crouton is a set of shell scripts that let you run a full Linux environment alongside Chromium OS (the operating system on Chromebook devices) without replacing it. The technique it uses is called a chroot: instead of booting a second operating system, it runs Linux inside a sandboxed portion of the same running system. This means no speed penalty from virtualization, but also no hard isolation between the Linux environment and the rest of the device, since they share the same kernel and hardware. The project is now end-of-life. The author announced in the README that ongoing changes to Chromium OS (stricter security settings, removal of certain browser extension APIs, and Google's transition away from Chromium OS toward Android) have made further development pointless. The repository is locked and will eventually be archived. For older Chromebook devices that are no longer receiving updates, crouton still works and can give those machines a second life running Ubuntu, Debian, or Kali Linux. For devices running Chromium OS version 111 or newer, various features have stopped working in successive releases. To use it, a Chromebook must be put into developer mode (a hardware-level setting that disables some security checks). After that, you download the crouton installer script, open a terminal on the Chromebook, and run it. The installer sets up a Linux distribution in a chroot directory and provides commands to enter and exit the Linux environment. An optional Chrome browser extension offered better integration between the two environments, but that extension no longer functions on current devices due to the Manifest v2 removal. For people on current Chromebooks who want a Linux environment, Google's own Crostini project (Linux on Chromebooks, built into the operating system settings) is the maintained alternative. The README explicitly points readers there. The README is written with a jokey, conversational tone. The project itself is a serious technical tool, but the author's personality comes through clearly throughout the documentation.

Copy-paste prompts

Prompt 1
Walk me through enabling developer mode on a Chromebook and installing Ubuntu using crouton step by step.
Prompt 2
How do I enter and exit the crouton Linux chroot on a Chromebook, and how do I run a graphical app from it?
Prompt 3
What is the difference between crouton and Google's built-in Crostini Linux for Chromebooks, and which should I use on a 2023 device?
Open on GitHub → Explain another repo

← dnschneid on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.