From 6dc6ca0e3f7ac680d072f81ae7bf4e4922d4052a Mon Sep 17 00:00:00 2001 From: the_4n0nym0u53 Date: Sun, 6 Mar 2022 16:50:10 +0100 Subject: [PATCH] erase-disk.sh: add --crypy-prep flag --- scripts/.local/bin/erase-disk.sh | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/scripts/.local/bin/erase-disk.sh b/scripts/.local/bin/erase-disk.sh index 855af34..bc68279 100755 --- a/scripts/.local/bin/erase-disk.sh +++ b/scripts/.local/bin/erase-disk.sh @@ -7,11 +7,12 @@ usage() { echo "Securely erase DEVICE with PASSES passes" echo echo "Flags:" - echo " -h, --help \tDisplay this help message" + echo " -h, --help \t\tDisplay this help message" + echo " -c, --crypt-prep \tPrepare DEVICE for encryption" echo - echo "Options:" - echo " DEVICE \tThe device to erase" - echo " PASSES \tHow many times to erase DEVICE" + echo "Options (must come after flags):" + echo " DEVICE \t\tThe device to erase" + echo " PASSES \t\tHow many times to erase DEVICE" echo echo "This script will securely erase a disk device with the specified amount" echo "of passes (rounds). It does so by overwriting the specified device with" @@ -22,36 +23,45 @@ usage() { echo "erase-disk.sh is licensed under The Unlicense." } +CRYPT=0 + [ "$1" = "-h" -o "$1" = "--help" ] && usage && exit 0 +[ "$1" = "-c" -o "$1" = "--crypt-prep" ] && CRYPT=1 && shift if [ $# -lt 2 ]; then - echo "ERROR: Not enough options!" + echo "=> ERROR: Not enough options!" echo usage exit 1 elif [ $# -gt 2 ]; then - echo "ERROR: Too many options!" + echo "=> ERROR: Too many options!" echo usage exit 1 elif [ $(id -u) -ne 0 ]; then - echo "ERROR: Must run as root!" + echo "=> ERROR: Must run as root!" echo usage exit 1 fi -echo "# Securely erasing the disk device $2" +echo "=> Securely erasing the disk device $2" i=1 while [ $i -le $1 ]; do [ $i -eq 1 ] && if="/dev/urandom" || if="/dev/zero" + [ $CRYPT -eq 1 -a $i -eq $1 ] && if="/dev/urandom" - echo "\n- Begin pass $i with $if" + echo "\n -> Begin pass $i with $if" dd if="$if" of="$2" status="progress" - echo "- Syncing I/O" + echo "\n -> Syncing I/O" sync i=$(( i + 1 )) done + +echo -n "\n=> Done! $2 securely erased" +[ $CRYPT -eq 1 ] && echo -n " and prepared for encryption" +echo "." +