How to Install balenaEtcher on Ubuntu 26.04, 24.04 and 22.04

Install balenaEtcher on Ubuntu 26.04, 24.04 and 22.04 with the official .deb. Covers updates, safe flashing and removal.

Last updatedAuthorJoshua JamesRead time6 minGuide typeUbuntu

Writing install media with dd works until one mistyped device path wipes the wrong drive. That risk is exactly why many people install balenaEtcher on Ubuntu: its guided three-step workflow and post-write validation make USB and SD card jobs much harder to botch.

The current upstream .deb installs cleanly on Ubuntu 26.04, 24.04, and 22.04. The package comes from balena’s GitHub releases rather than Ubuntu’s default repositories, and the application still needs an active graphical desktop session to open.

Install balenaEtcher on Ubuntu

balenaEtcher is not in Ubuntu’s default repositories, and current Flathub appstream metadata and Snapcraft search do not list a balenaEtcher app. The upstream project points Debian and Ubuntu users to the official GitHub releases page and its current amd64 .deb package.

Current balenaEtcher releases, starting with 2.1.5, install on Ubuntu 26.04, 24.04, and 22.04. They accept both the older libgdk-pixbuf2.0-0 dependency name and Ubuntu 26.04’s renamed libgdk-pixbuf-2.0-0 package, so older dependency errors usually mean you are installing a stale .deb.

Update Ubuntu before installing balenaEtcher on Ubuntu

Refresh package metadata first so APT resolves the local .deb against current Ubuntu libraries.

sudo apt update && sudo apt upgrade

These commands use sudo for tasks that need root privileges. If your account is not set up for sudo yet, follow the guide to add a new user to sudoers on Ubuntu.

Install curl and jq on Ubuntu if they are missing

The download command uses curl to fetch release metadata and jq to parse GitHub’s JSON response. Install both tools before you resolve the latest package URL.

sudo apt install -y curl jq

Download the latest balenaEtcher .deb package on Ubuntu

Resolve the newest balenaEtcher release from GitHub, download the amd64 .deb, and verify it against the Linux checksum file published with the same release.

(
  set -e
  API_URL="https://api.github.com/repos/balena-io/etcher/releases/latest"
  rm -f balena-etcher_*_amd64.deb SHA256SUMS.Linux.x64.txt
  RELEASE_JSON=$(curl -fsSL "$API_URL")
  DEB_URL=$(printf '%s\n' "$RELEASE_JSON" | jq -r '[.assets[].browser_download_url | select(test("balena-etcher_[0-9.]+_amd64\\.deb$"))][0] // empty')
  SUMS_URL=$(printf '%s\n' "$RELEASE_JSON" | jq -r '[.assets[].browser_download_url | select(test("SHA256SUMS\\.Linux\\.x64\\.txt$"))][0] // empty')

  if [ -z "$DEB_URL" ] || [ -z "$SUMS_URL" ]; then
    echo "Could not find the balenaEtcher amd64 .deb or Linux checksum file."
    exit 1
  fi

  DEB_FILE=${DEB_URL##*/}
  SUMS_FILE=${SUMS_URL##*/}

  curl -fLO --progress-bar "$DEB_URL"
  curl -fLO --progress-bar "$SUMS_URL"
  grep "  $DEB_FILE$" "$SUMS_FILE" | sha256sum -c -
)

The checksum check should return an OK line for the downloaded package.

balena-etcher_2.1.x_amd64.deb: OK

Confirm that the package landed in your current directory before you install it.

ls -1 balena-etcher_*_amd64.deb
balena-etcher_2.1.x_amd64.deb

Install the balenaEtcher package on Ubuntu

APT can install the local file directly and resolve any release-specific desktop libraries that are not already present.

DEB_FILE=$(find . -maxdepth 1 -type f -name 'balena-etcher_*_amd64.deb' -printf '%f\n' | sort -V | tail -n 1)
test -n "$DEB_FILE" || { echo "No balenaEtcher .deb file found in this directory."; false; }
sudo apt install -y "./$DEB_FILE"

The exact dependency list varies by release, but relevant output includes the package setup line and the harmless chrome-sandbox warning.

The following NEW packages will be installed:
  balena-etcher ...
Setting up balena-etcher (2.1.x) ...
chmod: cannot access '/opt/balenaEtcher/chrome-sandbox': No such file or directory

Verify the balenaEtcher install on Ubuntu

Check the installed version, command path, and desktop launcher before you switch to the graphical app.

apt-cache policy balena-etcher
command -v balena-etcher
grep -E '^(Name|Exec)=' /usr/share/applications/balena-etcher.desktop
balena-etcher:
  Installed: 2.1.x
  Candidate: 2.1.x
  Version table:
 *** 2.1.x 100
        100 /var/lib/dpkg/status
/usr/bin/balena-etcher
Name=balenaEtcher
Exec=balena-etcher %U

The /var/lib/dpkg/status entry is expected here because balenaEtcher was installed from a local .deb, not from a persistent APT repository.

Open balenaEtcher on Ubuntu

The package installs from the terminal, but the balenaEtcher window opens from an active graphical session such as GNOME, KDE Plasma, or Xfce.

Open balenaEtcher from the applications menu on Ubuntu

Use your desktop launcher if you prefer to stay out of the terminal after the package is installed.

  1. Open Activities or your desktop environment’s main applications menu.
  2. Search for balenaEtcher.
  3. Select the balenaEtcher icon to open the application.
balenaEtcher application icon shown in Ubuntu app search results before launch.
balenaEtcher listed in Ubuntu app search and ready to launch.

Open balenaEtcher from a terminal on Ubuntu

If you are already inside the desktop session, the same launcher is available from a terminal.

balena-etcher

The window should open with the usual three steps: Flash from file, Select target, and Flash. If no window appears, start it from the applications menu inside your desktop session.

balenaEtcher open on Ubuntu with flash controls visible and ready to use.
balenaEtcher open on Ubuntu and ready to flash an image.

Flash images safely with balenaEtcher on Ubuntu

balenaEtcher is simple once the image file is ready. Most mistakes come from choosing the wrong target drive or using Windows installation media that needs a different tool.

Confirm the target drive before flashing with balenaEtcher on Ubuntu

Check removable devices in a terminal before you click Flash. The TRAN column should show usb for a typical USB stick.

lsblk -o NAME,SIZE,TYPE,MODEL,TRAN
NAME     SIZE TYPE MODEL         TRAN
loop0      4K loop
loop1     74M loop
loop2  251.7M loop
loop3   16.4M loop
loop4   91.7M loop
loop5   10.8M loop
loop6  531.4M loop
loop7   18.5M loop
loop8   48.1M loop
loop9    576K loop
loop10 254.9M loop
sda      125G disk VBOX HARDDISK sata
sda1       1M part
sda2     125G part
sr0     1024M rom  VBOX CD-ROM   ata

When your USB stick is attached, you should see one more disk entry with TRAN set to usb. Stop immediately if the size does not match the drive you intend to erase.

Use WoeUSB instead of balenaEtcher for Windows installer media on Ubuntu

balenaEtcher writes images byte-for-byte, which works well for Linux ISOs and appliance images, but many Windows ISOs need extra boot-media handling. If your goal is a Windows installer USB, install WoeUSB on Ubuntu instead.

Troubleshoot balenaEtcher on Ubuntu

The common Ubuntu failures are stale .deb files, the cosmetic chrome-sandbox warning during installation, and launching the GUI outside a desktop session.

Fix old balenaEtcher dependency errors on Ubuntu

If APT still says libgdk-pixbuf2.0-0 is not installable, check the version and dependency line in the .deb you downloaded.

DEB_FILE=$(find . -maxdepth 1 -type f -name 'balena-etcher_*_amd64.deb' -printf '%f\n' | sort -V | tail -n 1)
test -n "$DEB_FILE" || { echo "No balenaEtcher .deb file found in this directory."; false; }
dpkg-deb -f "$DEB_FILE" Version
dpkg-deb -f "$DEB_FILE" Depends | grep -o 'libgdk-pixbuf[^,]*'
2.1.5
libgdk-pixbuf2.0-0 | libgdk-pixbuf-2.0-0

Version 2.1.5 or newer includes the Ubuntu 26.04-compatible dependency alternative. If your output shows only libgdk-pixbuf2.0-0, remove the stale download and rerun the latest-release download block.

rm -f balena-etcher_*_amd64.deb SHA256SUMS.Linux.x64.txt

Understand the chrome-sandbox warning when installing balenaEtcher on Ubuntu

APT currently prints this warning during the package setup stage.

chmod: cannot access '/opt/balenaEtcher/chrome-sandbox': No such file or directory

The package still installs chrome-sandbox under /usr/lib/balena-etcher/ and registers the normal /usr/bin/balena-etcher launcher. This warning comes from a stale post-install path reference, not from a failed installation.

Fix a missing balenaEtcher window on Ubuntu

If the command returns without opening a window, start balenaEtcher from the applications menu inside your desktop session. Do not run the whole application with sudo just to make the window appear; balenaEtcher can request elevated write access when it needs to flash a target drive.

Update balenaEtcher on Ubuntu

balenaEtcher no longer publishes an Ubuntu repository, so updates mean replacing the local .deb with the newest release. If you do not want to repeat the download command by hand each time, add a reusable updater to /usr/local/bin.

Create a balenaEtcher update script on Ubuntu

This script checks the installed version against the latest GitHub release, verifies the downloaded package against the matching checksum file, and only installs when there is something new. It works in a temporary directory and cleans up after itself.

Write the script to /usr/local/bin/update-balena-etcher.

sudo tee /usr/local/bin/update-balena-etcher > /dev/null <<'SCRIPT_EOF'
#!/usr/bin/env bash
set -euo pipefail

API_URL="https://api.github.com/repos/balena-io/etcher/releases/latest"
WORK_DIR=$(mktemp -d "${TMPDIR:-/tmp}/balena-etcher-update.XXXXXX")
trap 'rm -rf "$WORK_DIR"' EXIT

for cmd in curl jq grep sed sha256sum apt-get sudo mktemp dpkg-query; do
  if ! command -v "$cmd" >/dev/null 2>&1; then
    echo "Missing required command: $cmd"
    exit 1
  fi
done

CURRENT_VERSION=$(dpkg-query -W -f='${Version}\n' balena-etcher 2>/dev/null || echo none)
RELEASE_JSON=$(curl -fsSL "$API_URL")
DEB_URL=$(printf '%s\n' "$RELEASE_JSON" | jq -r '[.assets[].browser_download_url | select(test("balena-etcher_[0-9.]+_amd64\\.deb$"))][0] // empty')
SUMS_URL=$(printf '%s\n' "$RELEASE_JSON" | jq -r '[.assets[].browser_download_url | select(test("SHA256SUMS\\.Linux\\.x64\\.txt$"))][0] // empty')

if [ -z "$DEB_URL" ] || [ -z "$SUMS_URL" ]; then
  echo "Could not find the latest balenaEtcher amd64 .deb and Linux checksum file."
  exit 1
fi

DEB_FILE=${DEB_URL##*/}
SUMS_FILE=${SUMS_URL##*/}
LATEST_VERSION=$(printf '%s\n' "$DEB_FILE" | sed -E 's/^balena-etcher_([0-9.]+)_amd64\.deb$/\1/')

if [ -z "$LATEST_VERSION" ] || [ "$LATEST_VERSION" = "$DEB_FILE" ]; then
  echo "Could not parse the latest balenaEtcher version."
  exit 1
fi

echo "Installed version: $CURRENT_VERSION"
echo "Latest version: $LATEST_VERSION"

if [ "$CURRENT_VERSION" = "$LATEST_VERSION" ]; then
  echo "balenaEtcher is already up to date."
  exit 0
fi

cd "$WORK_DIR"
echo "Downloading $DEB_FILE..."
curl -fsSLO "$DEB_URL"
curl -fsSLO "$SUMS_URL"
grep "  $DEB_FILE$" "$SUMS_FILE" | sha256sum -c -

echo "Installing $DEB_FILE..."
sudo apt-get install -y "./$DEB_FILE"

NEW_VERSION=$(dpkg-query -W -f='${Version}\n' balena-etcher)
echo "balenaEtcher is now at version $NEW_VERSION."
SCRIPT_EOF

Make it executable so you can call it by name.

sudo chmod +x /usr/local/bin/update-balena-etcher

Run this script manually whenever you want to check for a newer balenaEtcher release. Do not schedule it with cron or a systemd timer, because unattended package installs can interrupt desktop sessions or conflict with other APT operations.

Verify the balenaEtcher update command on Ubuntu

Because the updater lives in /usr/local/bin, you can run it from any directory once the shell can see that path.

command -v update-balena-etcher
/usr/local/bin/update-balena-etcher

Run update-balena-etcher as your regular user. The script only uses sudo for the final APT install step when a newer package is available.

update-balena-etcher
Installed version: 2.1.x
Latest version: 2.1.x
balenaEtcher is already up to date.

Remove balenaEtcher from Ubuntu

Remove the package first. If you created the reusable update command, remove that helper at the same time.

sudo apt remove -y balena-etcher
sudo rm -f /usr/local/bin/update-balena-etcher

APT may mark a small dependency such as libxss1 as no longer required, but reused systems can also have unrelated autoremovable packages. Preview the list before you accept the cleanup.

sudo apt autoremove --dry-run

If the preview only lists packages you no longer need, run the cleanup without --dry-run and review APT’s confirmation prompt.

sudo apt autoremove

Find balenaEtcher user data on Ubuntu before deleting it

Package removal does not delete per-user preferences. Search your own account first instead of deleting guessed paths.

find "$HOME/.config" "$HOME/.cache" "$HOME/.local/share" -maxdepth 1 -iname '*balena*' 2>/dev/null

Delete only the exact paths that the find command prints. If it prints nothing, balenaEtcher has not created per-user data for that account and there is nothing else to remove.

Verify balenaEtcher is removed from Ubuntu

Check that the package no longer has an installed ii state after removal.

if dpkg-query -W -f='${db:Status-Abbrev} ${binary:Package}\n' balena-etcher 2>/dev/null | grep -q '^ii'; then
  echo "balena-etcher is still installed"
else
  echo "balena-etcher is not installed"
fi
balena-etcher is not installed

Conclusion

balenaEtcher on Ubuntu 26.04, 24.04, and 22.04 gives you a safer USB-writing workflow for Linux ISOs and IMG files, with validation built in after each flash. Keep WoeUSB on Ubuntu around for Windows installer media, and install GParted on Ubuntu if you also want to inspect or resize partitions after you write the drive.

Share this guide

Help another Linux user troubleshoot faster

Share this guide with someone troubleshooting Linux systems or saving it for later.

Follow LinuxCapable

Want more LinuxCapable guides in Google?

Add LinuxCapable as a preferred source so Google can show more of our fresh Linux tutorials in Top Stories and From your sources when relevant.

Add LinuxCapable as a preferred source on Google
Search LinuxCapable

Need another guide?

Search LinuxCapable for package installs, commands, troubleshooting, and follow-up guides related to what you just read.

Found this guide useful?

Support LinuxCapable to keep tutorials free and up to date.

Buy me a coffeeBuy me a coffee
Before commenting, please review our Comments Policy.
Formatting tips for your comment

You can use basic HTML to format your comment. Useful tags currently allowed in published comments:

You type Result
<code>command</code> command
<strong>bold</strong> bold
<em>italic</em> italic
<blockquote>quote</blockquote> quote block

Got a Question or Feedback?

We read and reply to every comment - let us know how we can help or improve this guide.

Verify before posting: