making usb sticks with GNU Linux and dd: WARNING!

one single wrong drive letter and data could be irreversible destroyed!

(it has happened many times before!!!)

so this script (download it here) aim’s to double check if it is really the right drive letter:

echo "=== ==="
echo "copy 1:1 image.iso to (hopefully bootable) usb stick"
echo "(some usb sticks can not boot)"
echo "first parameter: the drive to write to in the format /dev/sdx"
echo "second parameter: the image.iso"

if [ -z "$1" ]
    echo "please pass device like this: /dev/sdx
          NOT A PARTITION! (sdb1)"

    echo ""
    echo "please read carefully, a mistake could overwrite critical data"
    echo "physically disconnect all critical data-drives before procedure"
    echo ""
    echo "========== do you want to copy the $2 image on device $1 ?"
    echo ""
    echo "=========== harddisk overview";
    echo "==== where is what";
    echo "==== harddisk usage";
    df -Th;
    echo ""
    echo "==== info about this specific harddisk:";
    hdparm -I $1 | grep Model
    echo ""

read -p "Continue (y/n)?" choice
case "$choice" in 
  y|Y ) echo "yes";;
  n|N ) echo "no";;
  * ) echo "invalid";;
    umount $1*;
    dd if=$2 of=$1 status=progress; sync;

    # if the image.iso.gz is compressed, unpack on the fly
    ## multi core
    ### pigz -dc /media/user/EXTERNALHARDDISK/software/iso/IdealLinux/IdealLinux2021.usb.stick.img.gz | pv | dd bs=1M of=$1; # write image to usb stick
    ## single core
    ### gunzip -c /run/media/user/SOFTWARE/LINUX/ideal-linux-stick/ideal-linux-usb_stick_image_full_16GByte_2017-04.img.gz | pv | dd of=$1; # write image to usb stick

    echo "the image $2 was written to stick $1. process finished. try booting it now :)"

graphical gui way?

yes there is such programs now too, which might help avoid mistakes (dd overwriting critical data)

apt show gnome-disk-utility
Package: gnome-disk-utility
Version: 3.30.2-3
Priority: optional
Section: admin
Maintainer: Debian GNOME Maintainers <>
Installed-Size: 6,660 kB
Depends: udisks2 (>= 2.7.6), dconf-gsettings-backend | gsettings-backend, libatk1.0-0 (>= 1.12.4), libc6 (>= 2.10), libcairo2 (>= 1.2.4), libcanberra-gtk3-0 (>= 0.25), libdvdread4 (>= 4.1.3), libgdk-pixbuf2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.43.2), libgtk-3-0 (>= 3.21.5), liblzma5 (>= 5.1.1alpha+20120614), libnotify4 (>= 0.7.0), libpango-1.0-0 (>= 1.18.0), libpangocairo-1.0-0 (>= 1.14.0), libpwquality1 (>= 1.1.0), libsecret-1-0 (>= 0.7), libsystemd0 (>= 209), libudisks2-0 (>= 2.7.6)
Breaks: gnome-settings-daemon (<< 3.24)
Tag: admin::filesystem, hardware::storage, hardware::storage:cd,
 hardware::storage:dvd, implemented-in::c, interface::graphical,
 interface::x11, role::program, uitoolkit::gtk
Download-Size: 967 kB
APT-Sources: buster/main amd64 Packages
Description: manage and configure disk drives and media
 GNOME Disks is a tool to manage disk drives and media:
  * Format and partition drives.
  * Mount and unmount partitions.
  * Query S.M.A.R.T. attributes.
 It utilizes udisks.

liked this article?

  • only together we can create a truly free world
  • plz support dwaves to keep it up & running!
  • (yes the info on the internet is (mostly) free but beer is still not free (still have to work on that))
  • really really hate advertisement
  • contribute: whenever a solution was found, blog about it for others to find!
  • talk about, recommend & link to this blog and articles
  • thanks to all who contribute!