How to Install balenaEtcher on Fedora Linux

Last updated Saturday, February 28, 2026 1:40 pm Joshua James 11 min read

Writing bootable media is one of those jobs where one wrong click can waste half an hour or wipe the wrong removable drive. balenaEtcher earns its keep by making the target device obvious and checking the write afterward, which is why many people prefer it over a raw dd command.

To install balenaEtcher on Fedora, the practical route is the upstream RPM. As of February 28, 2026, Fedora does not ship a balena-etcher package in its default repositories, and flatpak search etcher on Fedora 43 returns no current Etcher package either. This guide uses the x86_64 RPM from the balenaEtcher GitHub releases page, verifies the checksum first, installs it with DNF, and then walks through launch, troubleshooting, updates, and cleanup.

Install balenaEtcher on Fedora

balenaEtcher currently publishes an x86_64 RPM for Fedora. If you use an ARM-based Fedora system, this package will not install.

Update Fedora Before Installing balenaEtcher

Refresh Fedora first so DNF has current dependency metadata before it handles the upstream RPM.

sudo dnf upgrade --refresh

This guide uses sudo for commands that need root privileges. If your account is not set up for sudo yet, follow the guide to add a user to sudoers on Fedora.

Download the Latest balenaEtcher RPM on Fedora

Fedora Workstation already includes curl, so you can pull the latest RPM and checksum file directly from GitHub. Keep the same terminal window open because the commands below store the RPM filename and version in shell variables used again in the next steps.

If a minimal Fedora install returns curl: command not found, install it first with sudo dnf install curl and then rerun the download commands.

RPM_URL=$(curl -fsSL https://api.github.com/repos/balena-io/etcher/releases/latest | grep 'browser_download_url' | grep 'x86_64' | grep '\.rpm' | head -n1 | cut -d '"' -f4)
RPM_FILE=${RPM_URL##*/}
VERSION=$(curl -fsSL https://api.github.com/repos/balena-io/etcher/releases/latest | grep '"tag_name"' | head -n1 | cut -d '"' -f4 | sed 's/^v//')
curl -fLO --progress-bar "$RPM_URL"
curl -fLO --progress-bar "https://github.com/balena-io/etcher/releases/download/v${VERSION}/SHA256SUMS.Linux.x64.txt"

The API lookups grab the latest release metadata, while curl -fLO follows GitHub’s redirect chain and stops on HTTP errors instead of quietly saving a broken response. Confirm that both files landed in your current directory before you continue.

ls -lh "$RPM_FILE" SHA256SUMS.Linux.x64.txt
-rw-r--r--. 1 joshua joshua 122M Jul 29 12:05 balena-etcher-2.1.4-1.x86_64.rpm
-rw-r--r--. 1 joshua joshua  294 Jul 29 12:05 SHA256SUMS.Linux.x64.txt

Verify the balenaEtcher RPM Checksum

Checksum verification confirms that the RPM you downloaded matches the release metadata published upstream.

grep "$RPM_FILE$" SHA256SUMS.Linux.x64.txt | sha256sum -c -
balena-etcher-2.1.4-1.x86_64.rpm: OK

Install the balenaEtcher RPM with DNF on Fedora

Install the verified file with DNF. The ./ prefix matters because it tells DNF to use the local RPM in your current directory instead of searching Fedora repositories.

sudo dnf install "./$RPM_FILE"
Package        Arch   Version Repository        Size
Installing:
 balena-etcher x86_64 2.1.4-1 @commandline 410.0 MiB

Warning: skipped OpenPGP checks for 1 package from repository: @commandline
Complete!

The @commandline warning is expected for local RPM installs. You already handled integrity by verifying the upstream checksum before installation.

Verify the balenaEtcher Install on Fedora

Check both the installed package entry and the launcher path so you know Fedora registered the app correctly.

dnf list installed balena-etcher
command -v balena-etcher
Installed packages
balena-etcher.x86_64 2.1.4-1 @commandline
/usr/bin/balena-etcher

Launch balenaEtcher on Fedora

The RPM installs both the terminal launcher and the desktop entry, so you can open balenaEtcher from either the shell or Fedora GNOME’s application search.

Launch balenaEtcher from the Terminal on Fedora

If you are already in GNOME or another desktop session, launch Etcher from the terminal with:

balena-etcher

balenaEtcher opens with the usual three-step flow: choose an image, pick the target drive, and start the write.

Open balenaEtcher from Fedora Activities

  1. Open Activities.
  2. Search for balenaEtcher.
  3. Select the balenaEtcher entry to launch the application.

Flash Images Safely with balenaEtcher on Fedora

Etcher itself is straightforward. Most mistakes happen before the write starts: a damaged image, the wrong target drive, or a Windows ISO that needs more than a raw write.

Confirm the Target Drive Before Flashing

Check the removable drive in a terminal before you click Flash. Matching both the size and the TRAN column makes it much harder to overwrite the wrong disk.

lsblk -o NAME,SIZE,TYPE,MODEL,TRAN

Look for your USB stick in the TRAN column as usb, and stop immediately if the size does not match the device you intend to erase.

balenaEtcher vs Fedora Media Writer

Both tools write installer media, but they fit different workflows on Fedora desktops.

TaskbalenaEtcherFedora Media Writer
Write an ISO or IMG you already downloadedStrong fitLimited
Download Fedora editions and write them in one appNo built-in downloaderBest fit
Flash Raspberry Pi or other generic SD card imagesStrong fitFedora-focused
Use the same writer across many Linux imagesStrong fitNarrower scope

Use Fedora Media Writer when your goal is specifically Fedora installation media. Use balenaEtcher when you already have an image file and want one writer for many Linux or embedded-device workflows.

Does balenaEtcher Work with Windows ISOs on Fedora?

Not reliably. balenaEtcher writes images byte-for-byte, which works well for most Linux ISOs and SD card images, but Windows installer ISOs usually need extra bootable-media handling. If your goal is a Windows installer USB, Etcher is not the default tool to reach for.

Troubleshoot balenaEtcher on Fedora

Most Etcher trouble on Fedora comes from three places: the expected local RPM warning, removable drives that never show up cleanly, or desktop-session pieces missing on stripped-down installs. Work through those in that order before you assume the RPM itself is broken.

DNF Warns About Skipped OpenPGP Checks

Local RPM installs show the source as @commandline, so DNF cannot validate the package against a configured repository key.

Warning: skipped OpenPGP checks for 1 package from repository: @commandline

This warning is expected for the balenaEtcher RPM. Treat the sha256sum -c step as your integrity check and only install the RPM after it returns OK.

balenaEtcher Does Not See the USB Drive

First make sure Fedora can see the removable drive at all.

lsblk -o NAME,SIZE,TYPE,MODEL,TRAN

If the drive does not appear there, Etcher cannot use it either. Try another USB port or cable, then recheck. If the drive appears in lsblk but not in Etcher, close and reopen the app inside your normal user session. Do not treat the disk group as a quick fix unless you fully understand the risk, because that grants broad raw-disk access you usually do not need.

balenaEtcher Does Not Launch on Fedora

Start it from a terminal inside the desktop session so you can read any error output directly.

balena-etcher

On a standard Fedora Workstation install, XWayland and a Polkit agent are already present. On trimmed desktops or custom window managers, missing session components are a more common cause. If you never see an authorization prompt when Etcher needs elevated access, install the Polkit agent that matches your desktop environment and log out and back in. If XWayland was removed from a minimal setup, reinstall it with sudo dnf install xorg-x11-server-Xwayland.

Flash Verification Fails or the Writer Process Ends Unexpectedly

These failures usually point to a bad image download, a failing USB drive, or a flaky cable or port rather than the Etcher package itself. Recheck the image checksum from the publisher, then try another drive. If the write appeared to finish anyway, inspect the target device with sudo fdisk -l /dev/sdX before you assume the media is unusable.

Update or Remove balenaEtcher on Fedora

Update balenaEtcher with a New RPM

balenaEtcher does not add a Fedora repository, so a manual update uses the same upstream RPM workflow as the first install. If you only refresh it once in a while, that is still the cleanest route.

  1. Download the newest RPM and SHA256SUMS.Linux.x64.txt using the same commands from the installation section.
  2. Verify the checksum again before you upgrade the package.
  3. Run the install command below to replace the older build in place.
sudo dnf install "./$RPM_FILE"

If you would rather not repeat those steps by hand each time, the next section turns the same workflow into a reusable updater.

Create a balenaEtcher Update Script on Fedora

The script below checks the installed version first, queries the latest GitHub release, downloads the matching RPM and checksum file into a temporary directory, verifies the checksum, and then updates balenaEtcher with DNF. It keeps a simple history log in ~/balena-etcher-update.log, so you can see what it last installed.

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

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

if [ "$(id -u)" -eq 0 ]; then
  echo "Run this script as a regular user. It uses sudo only for the DNF install step."
  exit 1
fi

for cmd in curl grep head cut sha256sum dnf sudo rpm mktemp; do
  if ! command -v "$cmd" >/dev/null; then
    echo "Error: required command not found: $cmd"
    echo "Install the missing package with DNF, then rerun the script."
    exit 1
  fi
done

if rpm -q balena-etcher >/dev/null 2>&1; then
  CURRENT_VERSION=$(rpm -q --queryformat '%{VERSION}\n' balena-etcher)
else
  CURRENT_VERSION="none"
fi

echo "Checking the latest balenaEtcher release..."
RELEASE_JSON=$(curl -fsSL "$API_URL")
LATEST_TAG=$(printf '%s\n' "$RELEASE_JSON" | grep -oE '"tag_name": "v[^"]+"' | head -n1 | cut -d '"' -f4)
RPM_URL=$(printf '%s\n' "$RELEASE_JSON" | grep -oE '"browser_download_url": "[^"]+x86_64[^"]*\.rpm"' | head -n1 | cut -d '"' -f4)
SUMS_URL=$(printf '%s\n' "$RELEASE_JSON" | grep -oE '"browser_download_url": "[^"]+SHA256SUMS\.Linux\.x64\.txt"' | head -n1 | cut -d '"' -f4)

[ -z "$LATEST_TAG" ] && { echo "Error: could not detect the latest balenaEtcher release tag."; exit 1; }
[ -z "$RPM_URL" ] && { echo "Error: could not find the x86_64 RPM asset."; exit 1; }
[ -z "$SUMS_URL" ] && { echo "Error: could not find the SHA256 checksum file."; exit 1; }

LATEST_VERSION=${LATEST_TAG#v}

echo "Current installed version: $CURRENT_VERSION"
echo "Latest available version: $LATEST_VERSION"

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

printf 'Continue with the balenaEtcher download and install? [y/N] '
read -r REPLY
case "$REPLY" in
  y|Y|yes|YES)
    ;;
  *)
    echo "Canceled."
    exit 0
    ;;
esac

cd "$WORK_DIR"
RPM_FILE=${RPM_URL##*/}

echo "Downloading $RPM_FILE..."
curl -fLO --progress-bar "$RPM_URL"

echo "Downloading SHA256SUMS.Linux.x64.txt..."
curl -fLO --progress-bar "$SUMS_URL"

echo "Verifying the checksum..."
CHECKSUM_LINE=$(grep "$RPM_FILE$" SHA256SUMS.Linux.x64.txt || true)
[ -z "$CHECKSUM_LINE" ] && { echo "Error: checksum entry for $RPM_FILE was not found."; exit 1; }
printf '%s\n' "$CHECKSUM_LINE" | sha256sum -c -

echo "Installing or updating balenaEtcher with DNF..."
sudo dnf install -y "$WORK_DIR/$RPM_FILE"

NEW_VERSION=$(rpm -q --queryformat '%{VERSION}\n' balena-etcher)
echo "Installed version after update: $NEW_VERSION"
printf '%s | %s -> %s\n' "$(date '+%Y-%m-%d %H:%M:%S')" "$CURRENT_VERSION" "$NEW_VERSION" >> "$LOG_FILE"
echo "Update complete. Temporary files will be removed automatically when the script exits."
SCRIPT_EOF
sudo chmod +x /usr/local/bin/update-balenaetcher.sh

Because the script lives in /usr/local/bin, you can run it from any directory in your terminal:

update-balenaetcher.sh

The example output below shows balenaEtcher 2.1.4 because that was the latest release when this guide was updated. Your output will show whatever version GitHub currently marks as latest.

When balenaEtcher is already current, the script exits before downloading anything:

Checking the latest balenaEtcher release...
Current installed version: 2.1.4
Latest available version: 2.1.4
balenaEtcher is already up to date.

If balenaEtcher is missing or behind, the script downloads the new RPM, checks it, and installs it for you:

Checking the latest balenaEtcher release...
Current installed version: none
Latest available version: 2.1.4
Continue with the balenaEtcher download and install? [y/N] y
Downloading balena-etcher-2.1.4-1.x86_64.rpm...
Downloading SHA256SUMS.Linux.x64.txt...
Verifying the checksum...
balena-etcher-2.1.4-1.x86_64.rpm: OK
Installing or updating balenaEtcher with DNF...
Installed version after update: 2.1.4
Update complete. Temporary files will be removed automatically when the script exits.

Avoid cron automation for this script. If GitHub rate-limits the API, upstream changes the release assets, or DNF needs your attention, you want to see the failure immediately instead of finding out later that the update never happened.

Remove balenaEtcher from Fedora

When you no longer need the application, remove the package first and then confirm it is gone from the RPM database.

sudo dnf remove balena-etcher

Verify that Fedora no longer lists the package.

dnf list installed balena-etcher
No matching packages to list

The next command permanently deletes balenaEtcher user settings and Crashpad data from ~/.config/balenaEtcher. Skip it if you want to keep your preferences for a later reinstall.

rm -rf ~/.config/balenaEtcher

Frequently Asked Questions About balenaEtcher on Fedora

Can you install balenaEtcher with DNF on Fedora?

Yes, but DNF installs balenaEtcher as a local RPM rather than from Fedora repositories. On Fedora 43, dnf info balena-etcher returns no package, so the working path is to download the upstream RPM first and then run sudo dnf install ./balena-etcher-*.rpm.

Is balenaEtcher available on Flathub for Fedora?

No. On February 28, 2026, flatpak search etcher returned no Etcher package on Fedora 43, so Fedora users currently rely on the upstream RPM instead.

Why does DNF show skipped OpenPGP checks for balenaEtcher?

That warning appears because balenaEtcher is being installed from a local RPM marked as @commandline instead of from a configured Fedora repository. It is expected behavior for this workflow, which is why verifying the SHA256 checksum before installation matters.

Does balenaEtcher work with Windows ISOs on Fedora?

Usually not well enough to recommend as the default method. balenaEtcher writes the image directly, while Windows installer media often needs extra bootable-media handling that tools built specifically for Windows installers manage better.

Conclusion

balenaEtcher is in place on Fedora without any extra repository clutter, and the same checksum-verified RPM workflow now scales from a one-off install to a reusable update script. If you want to get more comfortable with local RPM work and sudo setup on Fedora, read DNF5 install examples on Fedora and add a user to sudoers on Fedora.

Found this guide useful?

Support LinuxCapable to keep tutorials free and up to date.

Buy me a coffee Buy 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:

You type Result
<code>command</code> command
<strong>bold</strong> bold
<em>italic</em> italic
<a href="URL">link</a> link
<blockquote>quote</blockquote> quote block

Leave a Comment

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

Let us know you are human: