Skip to content

Instantly share code, notes, and snippets.

@tgirke
Last active September 10, 2022 23:29
Show Gist options
  • Star 10 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
  • Save tgirke/be26f29b0b52ee621ec02f2bcbca0b93 to your computer and use it in GitHub Desktop.
Save tgirke/be26f29b0b52ee621ec02f2bcbca0b93 to your computer and use it in GitHub Desktop.
Crouton

Crouton Install and Management


Table of Content

  1. Manuals
  2. Installation
    1. Chrome OS Channel
    2. Developer Mode
    3. Chrome Extension
    4. Install Crouton
    5. Useful Helper Commands
  3. Usage
    1. Start Crouton
    2. Switch between Chroot and Chrome OS
    3. Shutdown Chroot
    4. Update Chroot
    5. Delete Options
    6. Backup Chroot
    7. Software Installs
  4. Troubleshooting
    1. Problem with apt (or apt-get)

1. Manuals

2. Installation

i. Check Chrome OS channel

What Chrome OS channel is running on a Chromebook is not essentail for the Crouton install. However, it can become important later since things may be less stable if the developer channel is running. The Chrome OS channel can be checked and changed as follows: go to settings under Chrome OS (bottom right corner of main screen) -> select menu in the top left corner -> about Chrome OS -> detailed build information -> change channel. The resulting change channel window shows which channel is currently active. For more details see here.

ii. Enable developer mode

Note this will erase all local data. So back things up first. Instructions for enabling developer mode are here, and the details for specific Chromebooks are given here.

iii. Install Chrome extension

For better integraton with Chrome OS install Crouton Integraton extension. It is needed to run crouton within a Chrome OS session rather than in parallel.

iv. Install Crouton

  1. Download latest Crouton release from here https://goo.gl/fd3zc which comes form developer's repository here. For simplicity leave downloaded crouton file in Downloads folder. Note, as of April 2019 there may be changes to this approach due to security updates in Chrome. Here are some updates.

  2. Open in Chrome browser crosh shell with CTRL + ALT + T and then type

    shell
  3. Now install crouton for the proper linux release specified under -r argument (xenial is the Ubuntu 16.04) along with proper targets. The latter are selected under the -t argument. The names and other details about Ubuntu releases can be looked up on this Ubuntu site. The chroot name can be specified with the -n option (default is name of chosen release, e.g. xenial). If the -e argument is added then the chroot will be encrypted.

    sudo sh ~/Downloads/crouton -r xenial -t x11,chrome,xorg,xiwi,keyboard,touch,unity,xfce -e # These are your most current targets; in the past you used unity,xfce,xiwi,keyboard,touch

v. Useful helper commands

Enter chroot from crosh shell

sudo enter-chroot

List targets installed in a chroot

sudo edit-chroot -al # Execute in Chrome OS after Ctrl+alt+t and then shell

List available linux releases

sh ~/Downloads/crouton -r list

List all available targets

sh ~/Downloads/crouton -t help

Add target to an existing chroot with -u option

sudo sh ~/Downloads/crouton -t xiwi -u -n xenial

Location of chroots

ls -al /usr/local/chroots/

3. Usage

i. Start Crouton

Run chroot in same Chrome OS session. This requires the Crouton Integraton extension (see above) along with the xiwi target.

sudo startxfce4 -X xiwi

or run in parallel mode

sudo startxfce4 or startunity # shortcuts for enter-chroot startxfce4

ii. Switch between Chroot and Chrome OS

To switch between chroot and ChromeOS use Ctrl+Alt+Shift+Back and Ctrl+Alt+Shift+Forward; or Alt+Tab when in same session.

iii. Shutdown Chroot

To shutdown choot, log out or shut down on the Ubuntu side as usual or issue Ctrl+c in crosh tab where you started chroot session.

iv. Update chroot

Check if there is a newer crouton version, run on Ubuntu side:

croutonversion -u -c # list installed and latest available version

Then shutdown Ubuntu and run in crosh shell the following command. This will update/upgrade all installed targets.

sudo sh ~/Downloads/crouton -u -n xenial 

v. Delete options

Currently, it is not easily possible to delete targets due to complicated interdendencies/histories of packages across targets!!!

To remove a chroot, one can use the following command(s).

sudo delete-chroot <my_chroot>
# sudo edit-chroot -d <my_choot> # Does the same; delete-chroot is just a shortcut 

vi. Backup chroot

Back up your chroot to a timestamped tarball in the current directory.

sudo edit-chroot -b xenial

Restore chroot from the most recent timestamped tarball. One can explicitly specify the tarball with -f.

sudo edit-chroot -r chrootname 

If your machine is new or powerwashed, one can use the crouton installer to restore a chroot and relevant scripts.

sudo sh ~/Downloads/crouton -f mybackup.tar.gz

vii. Install software within Chroot

Within a Chroot one should update and install software packages via apt or apt-get, see example below. Detailed instructions for using apt or apt-get are available on Ubuntu's AptGet/Howto. Installing software via Ubuntu's Software manager should be avoided since it creates often problems. The GDebi Package installer seems to work fine as an alternative.

sudo apt update && sudo apt install <my_software>

4. Troubleshooting

i. Problem with apt or apt-get

If apt update and/or apt install are not working then try the follwing troubleshooting steps. Additional help on this topic can be found here.

The autoclean command might fix the problem. Sometimes it may only work in a freshly started chroot session. So try restarting it if it fails, or start temporarily a chroot from crosh shell within a chrome browser tab with sudo enter-chroot, and then run update/install from there.

sudo apt clean && sudo apt autoclean # This might fix things
sudo apt update # or with && sudo apt upgrade

After running update also try this

sudo apt -f install 

Another reason could be a broken dpkg system. To fix this, run the following commands.

sudo dpkg --configure -a
sudo apt upgrade
sudo apt update

Reinstalling libcurl3-gnutls has also been reported to help.

sudo apt --reinstall install libcurl3-gnutls 

There are also reports that using more RAM on the Chrome OS side might help. For this just open a few data/process intensive tabs in Chrome. Also check if there are any broken PPAs in /etc/apt/sources.list.d.

@newtontriumphant
Copy link

Is there any way to do it without switching to developer mode 😩 ?

-Newton Triumphant

@tgirke
Copy link
Author

tgirke commented Dec 28, 2020 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment