These instructions cover offline upgrading to Endless OS 6. For older vesions, please refer to these instructions.
We sometimes encounter the situation where users with limited or no Internet connectivity need to update Endless OS or install or update an app. It's possible to do so by copying updates or apps from one computer to another using a USB drive.
If you are upgrading a computer offline to Endless OS 4 or older, please refer to these instructions, instead.
Note that this functionality is fairly technical, as it is intended for advanced technicians in rare circumstances.
To prepare you will need to use:
A computer that already has the latest version of Endless OS installed
An Internet connection to prepare app installs/updates
Ideally, the same language as the computers that you will update
A USB drive a drive with enough free space for the OS update, apps, and their dependencies—likely at least 8 GB.
We recommend you use the fastest USB 3 drive you can find and ensure you’re inserting it into a USB 3 port, e.g. a blue-colored port or one with an “SS” or “SuperSpeed” logo, if available.
For best performance, ensure that the drive uses either the ext4
or exFAT
filesystem.
In the Terminal app, type the following command, replacing the path at the end with the actual path to the USB mount:
pkexec /usr/bin/eos-updater-prepare-volume /path/to/usb
Note: This command can take a long time to complete! While it's working, you'll see a status like, "Writing objects: 12345"
Use the flatpak create-usb
command-line from the Terminal app to copy apps.
See the above link for the full documentation, but for example, you could copy apps new to Endless OS 6 like Decibels, Image Viewer (codenamed Loupe), Music, and Text Editor with the following command (replacing /run/media/user/FLATPAKS
with the actual mount point of your drive, as covered in the above link):
flatpak create-usb /run/media/user/FLATPAKS org.gnome.Decibels org.gnome.Loupe org.gnome.Music org.gnome.TextEditor
Once it's complete, you'll see a message like:
Copied 36/36 refs successfully from ‘/var/lib/flatpak/repo’ to ‘.ostree/repo’ repository in ‘/run/media/user/FLATPAKS’.
3 metadata, 1 content objects imported; 97 bytes content written
You can now safely eject the drive using the Files app, then unplug it from your computer once prompted.
Once you've copied apps and/or OS updates to a USB drive as detailed above, it can be used to update an offline machine.
Updating from Endless OS 5 to Endless OS 6 can be done from the Terminal. Note this first step will not install any Flatpak apps newly-included in the new OS version; to do so, you will need to continue to the next section after updating the OS.
Insert the USB drive containing the OS update you want to apply
Open the Terminal app
Stop the updater for running until you restart the computer by typing:
sudo systemctl mask --runtime --now eos-updater.service
Pull the Endless OS 6 ref from the USB drive to the system repo by typing:
sudo ostree find-remotes --finders=mount --pull com.endlessm.Os os/eos/amd64/latest3
Deploy the Endless OS 6 ref by typing:
sudo ostree admin deploy eos:os/eos/amd64/latest3
Restart the computer
This process bypasses
eos-updater
's pre-update checks and the autoinstall of any apps. So in particular if your device usesnvme-remap
(unlikely, but possible), it won't boot after updating.If this is the case—or in the case of any other catastrophic failures—you will need to roll the OS back to the previous version.
Some apps installed as Flatpaks will be missing after you upgrade the OS using this method. For example, Endless OS 6 included Flatpaks for Decibels, Image Viewer (codenamed Loupe), Music, and Text Editor. Continue to the next step to install them from the USB drive.
Use the flatpak
command-line's USB drive support from the Terminal app to install and update apps.
For example, to install Decibels, Image Viewer (codenamed Loupe), Music, and Text Editor, type the following command:
flatpak install flathub org.gnome.Decibels org.gnome.Loupe org.gnome.Music org.gnome.TextEditor
You should receive an "Installation complete" message, at which point, you're all done!