Upgrading Crostini to Debian Buster (10)

The Chromium team is hard at work with bringing new features to Chromebooks, recently a change was made to set Debian 10 (Buster) as the default operating system for the Crostini “Penguin” container. Unfortunately this change does not upgrade existing installations of from Debian 9 (Stretch) to Debian 10. You are in luck though as upgrading your existing container is pretty easy, here are the steps.

Note : This process may take 2-3 hours to complete

  1. Ensure you are on ChromeOS 81.X
  2. Upgrade Termina by entering “chrome://components” into the address bar of a Chrome window, select “Check for Update” on “cros-termina”, if a upgrade is needed, it may take a few minutes
  3. Backup your existing Crostini Container by launching the ChromeOS Settings Application and selecting “Linux (Beta)”. Click on “Linux” followed by “Backup and Restore”. Create a backup and save it to a external hard drive. This can be used to restore the container if anything goes wrong. The backup could take several hours to complete.
  4. Once the backup has been completed, it is time to start the actual upgrade, Launch the Terminal and enter the following commands
cd /opt/google/cros-containers/bin/
sudo ./upgrade_container

This process will take between 30 minutes and 2 hours depending on your internet speeds. It will download around 500 MB of files. Simply reboot your Chromebook to finish the upgrade. If all went well, you will be running Debian 10

Also published on Medium.

16 thoughts on “Upgrading Crostini to Debian Buster (10)”

  1. I ran this script and I got verbose error codes. I ran sudo/opt/google/cros-containers/bin/upgrade_container.
    Errors were
    E: Problem executing scripts APT::Update::Post-Invoke-Success ‘if /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli; then appstreamcli refresh-cache > /dev/null; fi’
    E: Sub-process returned an error code

  2. I’m on v83 and I get this error:

    WARNING: The following packages cannot be authenticated!
    cros-apt-config cros-garcon cros-gpu cros-pulse-config cros-sommelier cros-sudo-config libdrm-common libdrm2 libdrm-intel1 libdrm-nouveau2 libdrm-radeon1
    libegl1-mesa libgl1-mesa-glx libwayland-egl1-mesa
    E: There were unauthenticated packages and -y was used without –allow-unauthenticated

  3. I got some strange error messages, I just copied and pasted your code. How would I get around this?

    W: The repository ‘http://ppa.launchpad.net/alexlarsson/flatpak/ubuntu groovy Release’ does not have a Release file.
    N: Data from such a repository can’t be authenticated and is therefore potentially dangerous to use.
    N: See apt-secure(8) manpage for repository creation and user configuration details.
    E: Failed to fetch http://ppa.launchpad.net/alexlarsson/flatpak/ubuntu/dists/groovy/main/binary-amd64/Packages 404 Not Found [IP: 80]
    E: Some index files failed to download. They have been ignored, or old ones used instead.

        • You may need to disable some of the PPAs.
          Run the following

          mkdir aptbackup
          sudo mv /etc/apt/sources.list.d/* aptbackup
          sudo apt update

          Then run the update tool again

          • Thanks! I figured it out… Yes, I had to remove the Atom PPAs (I had installed Atom). But it only worked after I removed the relevant files from /etc/apt/sources.list.d

  4. I’m getting this error message:

    The AppStream system cache was updated, but some errors were detected, which might lead to missing metadata. Refer to the verbose log for more information.
    Reading package lists… Done
    E: Problem executing scripts APT::Update::Post-Invoke-Success ‘if /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli; then appstreamcli refresh-cache > /dev/null; fi’
    E: Sub-process returned an error code


Leave a Comment

%d bloggers like this: