At the time of writing, Debian 12.5 was the current release. Update the names where necessary.

Download the latest file as well as the checksum files

wget https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-12.5.0-amd64-netinst.iso
wget https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/SHA512SUM

Compare the checksums

sha512sum debian-12.5.0-amd64-netinst.iso
grep debian-12.11.0-amd64-netinst.iso SHA512SUMS

they should match.

Further, you can also download SHA512SUM.sign and check whether the SHA512SUM is legit using gpg. (I will expand on this later on)

Note: there is also a mini.iso image available, which is normally around 70M and used for once-off installations with high internet speeds.

Choose a USB imaging tool:

There are several tools available for this purpose. Two popular ones are:

Rufus (for Windows): It’s a lightweight tool that’s easy to use. You can download it from the Rufus website.

Etcher (for Windows, macOS, and Linux): It’s another user-friendly tool with a simple interface. You can download it from the Etcher website.

Using dd on a Linux machine is another common (and preferred by me) method to create a bootable USB drive from an ISO image. Here’s how you can do it:

  1. Insert your USB thumb drive: Ensure it’s connected to your Linux machine and note its device name (e.g., /dev/sdb). Be very careful with this step to select the correct device, as dd can overwrite data on any device you specify.

  2. Open a terminal: You’ll need to use the command line for this method.

  3. Unmount the USB drive: If the USB drive is automatically mounted by your system, unmount it using the umount command. For example:

    umount /dev/sdb1
    

    Replace /dev/sdb1 with the appropriate device name for your USB drive. If you are not sure about the device name use fdisk -l or lsblk.

  4. Write the ISO image to the USB drive: Use the dd command to copy the ISO image to the USB drive. The basic syntax is:

    sudo dd if=/path/to/debian-12.5.0-amd64-netinst.iso of=/dev/sdb bs=4M status=progress; sync
    
    • if= specifies the input file, which is the path to your Debian ISO image.
    • of= specifies the output file, which is the device name of your USB drive.
    • bs=4M sets the block size to 4 megabytes, which can help improve the copying speed.
    • status=progress shows the progress of the dd command.A
    • sync synchronize cached writes to persistent storage

    Replace /path/to/debian-10.10.0-amd64-netinst.iso with the actual path to your Debian ISO image, and /dev/sdb with the appropriate device name for your USB drive.

  5. Wait for the process to complete: dd doesn’t provide progress bars by default, but with status=progress, you’ll see the progress as it copies the ISO image to the USB drive. This process may take some time, depending on the size of the ISO image and the speed of your USB drive.

  6. Eject the USB drive: Once dd has finished writing the ISO image to the USB drive, you can safely eject the USB drive from your computer.