wiper.sh 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. #!/usr/bin/bash
  2. lsscsi
  3. echo "- - -"
  4. read -p 'Disk to wipe: ' disk
  5. if [ -z $disk ]; then
  6. echo "YOU HAVE TO INPUT THE DISK. like: sda"
  7. exit
  8. else
  9. echo "wiping $1"
  10. fi
  11. system_serial=$(dmidecode -s system-serial-number)
  12. disk_model=$(smartctl -i /dev/$disk | grep "Model" | sed -e 's/Device Model://g' | sed -e 's/Model Number://g' | xargs)
  13. disk_serial=$(smartctl -i /dev/$disk | grep "Serial Number:" | sed -e 's/Serial Number://g' | xargs)
  14. #disk_info=$(hdparm -i /dev/$disk | grep Model | sed -e 's/ Model=//g')
  15. #disk_model=$(echo $disk_info | cut -d ',' -f 1)
  16. #disk_serial=$(echo $disk_info | cut -d ',' -f 3 | tr -d " SerialNo=")
  17. start_date=$(date)
  18. if [[ ${disk} != *"nvme"* ]];then
  19. #disk is not NVME
  20. disk_rot=$(cat /sys/block/$disk/queue/rotational)
  21. if [[ "$disk_rot" == 1 ]]; then
  22. disk_type="HDD"
  23. #DEBUG:
  24. echo "shred -v -n 1 -z /dev/$disk"
  25. elif [[ "$disk_rot" == 0 ]]; then
  26. disk_type="SSD"
  27. echo "shred -v -n 1 -z /dev/$disk"
  28. else
  29. disk_type="unknown"
  30. exit
  31. fi
  32. else
  33. disk_type="Nvme (SSD)"
  34. nvme_disk=$(echo $disk | sed -e 's/n1//g')
  35. #DEBUG:
  36. echo "nvme sanitize /dev/$nvme_disk -a 2"
  37. fi
  38. echo ""
  39. echo ""
  40. echo ""
  41. echo ""
  42. sleep 3
  43. #test sanitization:
  44. disk_test=$(dd if=/dev/$disk bs=1k count=1024 status=none skip=10240 iflag=skip_bytes | tr --squeeze-repeats "\000" | tr -d '\0')
  45. if [ -z "$disk_test" ]; then
  46. #echo "empty disk"
  47. disk_status="Zeroed-Empty"
  48. else
  49. #echo "NOT EMPTY"
  50. disk_status="NON-Zeroed-StillContainsData"
  51. echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
  52. echo "!!!!!! WARNING !!!!!!"
  53. echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
  54. echo "!!! disk still contains data !!!"
  55. echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
  56. echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
  57. read -p "Are you sure? " -n 1 -r
  58. echo # (optional) move to a new line
  59. if [[ $REPLY =~ ^[Yy]$ ]]
  60. then
  61. echo "continuing"
  62. else
  63. exit
  64. fi
  65. fi
  66. end_date=$(date)
  67. echo "- - -"
  68. echo "System serial: "$system_serial
  69. echo "Disk model: "$disk_model
  70. echo "Disk serial: "$disk_serial
  71. echo "Disk type: "$disk_type
  72. echo "Disk status: "$disk_status
  73. echo "Disk has been wiped with 1 random pass and one last zeroing"
  74. echo "Started on: "$start_date
  75. echo "Ended on: "$end_date
  76. sign=$(echo "$start_date"_"$end_date"_"$system_serial"_"$disk_model"_"$disk_serial" | sha1sum | tr -d " -")
  77. echo "- - -"
  78. echo "Operation signature: "$sign
  79. echo "- - -"
  80. echo "Validation: $start_date"_"$end_date"_"$system_serial"_"$disk_model"_"$disk_serial"_"$disk_type"_"$disk_status"_"$sign"
  81. echo "start-date _ end-date _ system-serial _ disk-model _ disk-serial _ disk-type _ disk-status _ sign"
  82. qr "$start_date"_"$end_date"_"$system_serial"_"$disk_model"_"$disk_serial"_"$disk_type"_"$disk_status"_"$sign"