Files
danos/iso-to-usb
2025-11-21 12:34:11 +01:00

51 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
# Script to write an ISO to a USB drive using dd
# Check if input and output are provided
if [ -z "$1" ] || [ -z "$2" ]; then
echo "Usage: $0 <iso_file> <usb_drive>"
echo " <iso_file>: Path to the ISO file you want to write."
echo " <usb_drive>: Device NAME of the USB drive (e.g., sda, sdb)."
echo " **WARNING:** This will erase all data on the USB drive!"
lsblk
ls -lh
exit 1
fi
# Check if the ISO file exists
if [ ! -f "$1" ]; then
echo "Error: ISO file '$1' not found."
ls -lh
exit 1
fi
# Check if the USB drive exists
if [ ! -b "/dev/$2" ]; then
echo "Error: USB drive '$2' not found or is not a block device."
echo "Make sure you're using the correct device NAME (e.g., sda, sdb)."
lsblk
exit 1
fi
# Confirm with the user before proceeding
read -p "Are you sure you want to write '$1' to '$2'? This will erase all data on the USB drive. (y/n): " confirm
if [[ "$confirm" != "y" ]]; then
echo "Aborted."
exit 0
fi
# Execute the dd command
echo "Writing '$1' to '$2'..."
time sudo dd bs=8M status=progress conv=fsync oflag=direct if="$1" of="/dev/$2"
# Check the exit code of the dd command
if [ $? -eq 0 ]; then
echo "ISO to USB Write complete."
else
echo "Write failed. Check for errors."
fi
#exit 0