72 lines
1.3 KiB
Bash
Raw Normal View History

2021-03-02 16:44:24 -05:00
#! /bin/bash
2021-03-06 14:39:16 -05:00
rounds=3
2021-03-02 16:44:24 -05:00
positional=()
while [[ $# -gt 0 ]]; do
argument="$1"
case $argument in
-h|--help)
printf "%s\n" \
"Usage: secure-erase.sh [options]" \
"" \
"Options:" \
2021-03-06 14:39:16 -05:00
" --rounds <rounds> overwrite n times (defauls to 3)" \
" --zero overwrite with zeros obfuscating secure erase" \
" -h, --help display help for command"
2021-03-02 16:44:24 -05:00
exit 0
;;
2021-03-06 14:39:16 -05:00
--rounds)
rounds=$2
2021-03-02 16:44:24 -05:00
shift
shift
;;
--zero)
zero=true
shift
;;
*)
positional+=("$1")
shift
;;
esac
done
set -- "${positional[@]}"
bold=$(tput bold)
2021-03-02 16:44:24 -05:00
red=$(tput setaf 1)
normal=$(tput sgr0)
dev="/dev/sda1"
tput reset
waitForUsbThumbDrive () {
if [ ! -e $dev ]; then
"$bold%s$normal" "Insert USB flash drive and press enter"
2021-03-02 16:44:24 -05:00
read -r confirmation
waitForUsbThumbDrive
fi
}
waitForUsbThumbDrive
2021-04-15 19:41:12 -04:00
printf "$bold$red%s$normal\n" "Secure erase USB flash drive (y or n)?"
2021-03-02 16:44:24 -05:00
read -r answer
if [ "$answer" = "y" ]; then
2021-03-06 14:39:16 -05:00
for round in $(seq 1 1 $rounds); do
printf "%s\n" "Overwriting with random data… (round $round of $rounds)"
2021-03-02 16:44:24 -05:00
sudo dd bs=1M if=/dev/urandom of=$dev
done
if [ "$zero" = true ]; then
2021-03-06 14:39:16 -05:00
printf "%s\n" "Overwriting with zeros…"
2021-03-02 16:44:24 -05:00
sudo dd bs=1M if=/dev/zero of=$dev
fi
else
exit 0
fi
printf "%s\n" "Done"