# Install Ubuntu on ChromeOS Crostini as an LXC container

## In this learning path

- [Introduction](https://learn.arm.com/learning-paths/laptops-and-desktops/chrome-os-lxc/)
- [Create an Ubuntu 24.04 container on ChromeOS](https://learn.arm.com/learning-paths/laptops-and-desktops/chrome-os-lxc/page-1/)
- [Integrate ChromeOS with Linux containers](https://learn.arm.com/learning-paths/laptops-and-desktops/chrome-os-lxc/page-2/)
- [Enable desktop applications](https://learn.arm.com/learning-paths/laptops-and-desktops/chrome-os-lxc/page-3/)
- [Manage Linux containers with additional commands](https://learn.arm.com/learning-paths/laptops-and-desktops/chrome-os-lxc/page-4/)
- [Next Steps](https://learn.arm.com/learning-paths/laptops-and-desktops/chrome-os-lxc/_next-steps/)

## About this Learning Path

| Skill level:        | Introductory           |
|---------------------|-----------------------|
| Reading time:       | 1 hr                  |
| Last updated:       | 28 Jul 2026           |

| Author:             | Jason Andrews, Arm [GitHub](https://github.com/jasonrandrews) [LinkedIn](https://linkedin.com/in/jason-andrews-7b05a8) |
|---------------------|-----------------------|
| Arm IP:             | [Cortex-A](https://support.arm.com/?tab=compute-ip&Product%20Type=Application%20Processors) |
| Tags:               | [Containers and Virtualization](https://learn.arm.com/tag/containers-and-virtualization), [ChromeOS](https://learn.arm.com/tag/chromeos), [Ubuntu](https://learn.arm.com/tag/ubuntu) |

### Who is this for?
This Learning Path is for software developers who want to install Ubuntu and other Linux distributions on their Arm-based Chromebook with ChromeOS file sharing and GUI support.

### What will you learn?
Upon completion of this Learning Path, you will be able to:
- Create and run an Ubuntu 24.04 container on ChromeOS Crostini using LXC and Termina shell
- Set up ChromeOS integration for file sharing and GUI applications
- Manage LXC containers on ChromeOS
- Enable file sharing between ChromeOS and Ubuntu containers
- Run Linux GUI applications on your Chromebook with Sommelier integration

### Prerequisites
Before starting, you will need the following:
- A ChromeOS device with the Linux development environment enabled. The Lenovo Chromebook Plus 14 is recommended.
- Basic knowledge of the Linux command line.

### Summary
You’ll set up an Ubuntu 24.04 container on an Arm-based Chromebook with ChromeOS Crostini and LXC from the Termina shell. You’ll create and manage the container, share ChromeOS folders with Linux, configure Sommelier, and install a minimal desktop stack. You’ll then launch a GUI test app and use `lxc` commands to inspect, stop, and remove the container.

### Frequently asked questions

#### [How do I know the Ubuntu container started correctly?](https://learn.arm.com/learning-paths/laptops-and-desktops/chrome-os-lxc/)
Run `lxc list` to confirm the container appears with `Status` set to `RUNNING`. Use `lxc info` for details such as Architecture, PID, and creation time that match the example output.

#### [How do I share a ChromeOS folder with the Ubuntu container?](https://learn.arm.com/learning-paths/laptops-and-desktops/chrome-os-lxc/)
In the ChromeOS Files app, right-click a folder and choose **Share with Linux**. The folder becomes available to Linux apps and the command line inside the container. If the folder doesn’t appear, ensure the container is running.

#### [How do I launch and verify a Linux GUI app from the container?](https://learn.arm.com/learning-paths/laptops-and-desktops/chrome-os-lxc/)
After enabling Sommelier and installing the minimal desktop packages, start a test application such as `terminator` from the container shell. A window should open on the ChromeOS desktop. If a window doesn’t open, revisit the display configuration steps.

#### [Which command opens a shell inside the container for installs and configuration?](https://learn.arm.com/learning-paths/laptops-and-desktops/chrome-os-lxc/)
From the Termina shell, run `lxc exec <container> -- bash` (for example, `lxc exec u1 -- bash`). This places you in the container’s shell to install packages and run commands.

#### [How do I stop and remove the container when I am done?](https://learn.arm.com/learning-paths/laptops-and-desktops/chrome-os-lxc/)
Use `lxc stop <container>` to stop the container, then `lxc delete <container>` to remove it. Deletion is permanent, so run the delete command only when you no longer need the container.
