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
- Ensure you are on ChromeOS 81.X
- 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
- 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.
- 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.
Worked great, thanks!
I had to update the command to sudo ./upgrade_container for it to run
Not sure how I missed that, fixed
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
Make sure you put a space between sudo and ./opt/ (Note the period). It is best to just copy and paste the following 2 lines
cd /opt/google/cros-containers/bin/
sudo ./upgrade_container
Worked thanks
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
Strange, try doing the following
sudo nano /etc/apt/sources.list.d/cros.list
::Replace:::
deb https://storage.googleapis.com/cros-packages/83 stretch main
::With::
deb [trusted=yes] https://storage.googleapis.com/cros-packages/83 stretch main
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: 91.189.95.83 80]
E: Some index files failed to download. They have been ignored, or old ones used instead.
Are you running Ubuntu on your container?
I’m getting the same error on my Pixelbook, and I am not running Ubuntu, as far as I know.
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
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
Can you paste the output of sudo /usr/bin/appstreamcli refresh-cache –force –verbose