Graphical tools like balenaEtcher and Rufus are great, but every Linux machine already ships with the tool that writes bootable USB drives: dd. One command, no downloads, works over SSH on a headless box.

It also has a well-earned nickname — "disk destroyer" — because pointing it at the wrong device erases that device without asking. So we do this carefully, in order.

Step 1: Identify your USB drive (the critical step)

Plug in the USB stick and list block devices:

lsblk 

You'll see something like:

sda 232.9G ├─sda1 512M /boot/efi └─sda2 232.4G / sdb 14.6G └─sdb1 14.6G 

Here sda is your system disk and sdb is the 16 GB USB stick. Note the letter. If you're unsure, run lsblk before and after plugging the stick in — the new device is your USB. Size is your sanity check.

Step 2: Unmount it

Writing to a mounted device corrupts the result:

sudo umount /dev/sdb1 

Use the partition (sdb1) for unmounting, but the whole device (sdb) for writing in the next step.

Step 3: Write the ISO

sudo dd if=~/Downloads/ubuntu-24.04-desktop-amd64.iso of=/dev/sdb bs=4M status=progress && sync 
  • if= — the input file (your ISO)
  • of= — the output device (the whole USB drive, no partition number)
  • bs=4M — 4 MB blocks; faster and smoother than the tiny default
  • status=progress — shows live progress instead of sitting in silence
  • sync — flushes remaining buffers so it's safe to unplug

It takes a few minutes depending on ISO size and USB speed. When it finishes, the stick is bootable — boot from it via your machine's boot menu (usually F12, F11, or Esc).

The mistakes that actually happen

  • of=/dev/sda instead of sdb — this overwrites your system disk. There is no undo. Read the lsblk output twice.
  • Writing to a partition (of=/dev/sdb1) — produces a stick that won't boot. Always use the whole device.
  • Unplugging immediately — without sync, data may still be in memory. Wait for the command to finish and the shell prompt to return.
  • Using a non-hybrid ISO — dd works for hybrid ISOs (Ubuntu, Debian, Fedora, Arch — basically all mainstream distro images). Some specialized images need their own writer; check the distro docs if a stick won't boot.

Prefer a graphical tool?

Nothing wrong with that: balenaEtcher on Linux/macOS/Windows, Rufus on Windows, or Ventoy if you want a stick that boots multiple ISOs from one drive (our multiboot USB guide covers that setup). dd is simply the option that's always there — including the day you're on a server with no GUI and need rescue media fast.