Crostini is the code name Google uses for the Linux application support for Chrome OS. On Chrome OS, Linux applications run in an LXC container that runs in a virtual machine. The VM isolates the Linux processes and applications from Chrome OS to provide security and stability.
See the Crostini sub reddit .
More information about managing LXD/LXC images is available on the Ubuntu blog. webpage
Here is an outline of information I've compiled about Crostini.
USB support is coming with Chrome OS 72 that is currently in the developer channel.
Instructions for adjusting application level scaling.
I am using Crostini on my Google Pixelbook.
Newbie thread on reddit
I made a backup of my crostini container on 2018-12-20 following the instructions on r/Crostini webpage I transfered the backup file to the /sda1/crostini directory on my NAS.
How to run multiple containers
To access the termina vm press ctl-alt-t and enter:
vmc start termina
To see what containers are running enter:
To start a container that has stopped enter:
run_container.sh --container_name mycontainername --shell --user myuser
Alternately, you can enter the following at crosh page :
vmc container [vm name] [container name]
Be careful to enter the container name correctly, otherwise a new container will be created. You might see an error stating that it "Failed to launch vschd for..." which is likely a timing issue due to the container not yet running. At this point to shell in to the container enter:
vsh [vm name] [container name]
I've installed gnome-terminal in the fjmdocker container. However, I haven't found a way to add it to the ChromeOS launcher. I have to first shell in to fjmdocker using the run_container.sh script and then start the terminal. After it is running I can then exist out of crosh.
The Crostini container does not automatically start after a reboot. In fact, I don't think the virtual machine starts automatically after boot. To test, I shutdown and started the Google Pixelbook, pressed ctrl-alt-t to enter crosh and ran top. I observe no instances of crosvm, which is the Chromium virtul machine monitor.
Next, I enter the following to start the virtual machine, termina, and then list the containers that are running. I observe all containers are stopped, which to me means that any processes that normally run in these containers are not taking any of the resources of the Pixelbook.
crosh> vmc start termina (termina) chronos@localhost> lxc list
Further, I run top in termina and observe 5GB of RAM is allocated and all of it is free. I also observe little to no CPU utilization.
Next I start the Terminal app from the Chrome OS launcher, do another lxc list in terminal and observe that the container named penguin is now started and has an IP address assigned. Top shows 123 MB of RAM consumed but little CPU utlization. Running top within the Terminal as below corresponds what I see in top running in termina.