sudo dd if=distro.iso of=/dev/sdX bs=4M status=progress

dd Bootable USB Builder

dd will happily overwrite your system disk if you name the wrong device. This builds the command and, more usefully, the checks to run before it.

The whole disk, not a partition. /dev/sdb, never /dev/sdb1.

Why dd earned the nickname

dd does exactly what you tell it, immediately, with no confirmation and no undo. Typing /dev/sda when you meant /dev/sdb overwrites the start of your system disk, and the first thing you lose is the partition table. Device letters are assigned in the order the kernel sees devices, so they are not stable across reboots. Run lsblk before and after plugging the drive in and use the entry that appeared, check the size matches, and check TRAN says usb. Read the command back once before pressing enter.

Write a bootable USB with dd, safely

This dd command builder generates the command to write a Linux ISO to a USB drive, along with the checks that matter more than the command itself: identifying the correct device with lsblk, unmounting without ejecting, and verifying the ISO checksum and signature before writing rather than after. Modern hybrid ISOs are written to the whole device rather than a partition, and cp works identically if you prefer it.

Bootable USB FAQ

Should I write to /dev/sdb or /dev/sdb1?

The whole device, /dev/sdb. Modern distribution ISOs are hybrid images containing their own partition table, so writing to a partition overwrites the contents of that partition and produces a drive that will not boot.

Do I need a special tool like Rufus or balenaEtcher?

On Linux, no. dd or cp writes a hybrid ISO correctly. Tools like Ventoy are worth it for a different reason: Ventoy formats the drive once and then you copy ISO files onto it normally, so you can keep several distributions on one stick and add more without rewriting.

Why is the drive the wrong size afterwards?

The ISO is smaller than the drive, so the rest of the space is unallocated and your file manager reports only the ISO partition. This is expected. Reclaim the drive later with a fresh partition table: sudo wipefs -a /dev/sdX then repartition.

The write finished instantly. Did it work?

Probably not yet. Writes are buffered, so dd can return while data is still in memory. That is what conv=fsync and the trailing sync are for. Pulling the drive before the flush completes gives you a corrupt image that fails to boot.