Automatischer Disk Wipe Host
Wenn man viele Festplatten Wipen muss greift man normalerweise zu DBAN oder NWIPE oder SHREDOS und lässt das Booten und dann laufen.
Wenn man aber die Möglichkeit hat dafür einen Server mit einem HBA Controller und mehren Diskshelfs zu verwenden. Kann man sich eine schöne kleine Automatische Wipe Station bauen.
Dafür benötigt man ein kleines Installiertes Linux, in meinem Fall ein Ubuntu. Die oben genante Hardware und ein paar Scripte
Für das löschen der Disk verwende ich NWIPE und lasse dies durch ein Script starten.
nano /mnt/WIPE_DISK.sh
#!/bin/bash
SYSTEMDISK_ID="scsi-3600508b1001cb3434d3b27d41eb5ed44"
if [[ "$1" == "/dev/sd"* ]] || [[ "$1" == "sd"* ]]; then
if [[ "$1" == "/dev/"* ]]; then
DISK=$1
else
DISK="/dev/$1"
fi
if [ $(lsblk -OJ ${DISK} |grep id-link |head -1 |awk '{print $2}' |sed 's/"//g' |sed 's/,//g') != ${SYSTEMDISK_ID} ]; then
DISKNAME=${DISK//\//_}
if [ ! -f "/tmp/${DISKNAME}" ]; then
touch /tmp/${DISKNAME}
echo "WIPE DISK ${DISK}" | wall
#smartctl -a ${DISK} | wall
sleep 5
#/usr/bin/dd if=/dev/zero of=${DISK} &
/usr/sbin/nwipe --exclude=/dev/sda --method=dodshort --verify=last --nogui --logfile=/mnt/"$(date +"%Y_%m_%d-%H:%M")-$DISKNAME" --autonuke ${DISK}; dd if=/dev/zero of=${DISK}; rm /tmp/${DISKNAME}; &
else
echo "Have /tmp/${DISKNAME}" | wall
fi
else
echo "No Wipe ${1}" | wall
fi
else
echo "No Wipe ${1}" | wall
fi
Das Script prüft ob ich aus versehen die System Platte löschen würde und unterbindet das.
Des weiteren wird NWIPE im autonuke modus aufgerufen und ein logfile mit dem Datum und dem Diskpath angelegt.
In dem Logfile befinden sich dann alle nötigen Informationen. falls man die braucht.
[2024/08/08 18:37:40] warning: Command not found. Install smartmontools !
[2024/08/08 18:37:40] notice: Found /dev/sdb, UNK, HP DG0146BALVN, 146 GB, S/N=@�c �
[2024/08/08 18:37:40] notice: bios-version = P70
[2024/08/08 18:37:40] notice: bios-release-date = 05/24/2019
[2024/08/08 18:37:40] notice: system-manufacturer = HP
[2024/08/08 18:37:40] notice: system-product-name = ProLiant DL380p Gen8
[2024/08/08 18:37:40] notice: system-version = Not Specified
[2024/08/08 18:37:40] notice: system-serial-number = CZ234714YC
[2024/08/08 18:37:40] notice: system-uuid = 39393037-3334-5a43-3233-343731345943
[2024/08/08 18:37:40] notice: chassis-manufacturer = HP
[2024/08/08 18:37:40] notice: chassis-type = Rack Mount Chassis
[2024/08/08 18:37:40] notice: chassis-version = Not Specified
[2024/08/08 18:37:40] notice: chassis-serial-number = CZ234714YC
[2024/08/08 18:37:40] notice: chassis-asset-tag = .
[2024/08/08 18:37:40] notice: processor-family = Xeon
[2024/08/08 18:37:40] notice: processor-family = Xeon
[2024/08/08 18:37:40] notice: processor-manufacturer = Intel
[2024/08/08 18:37:40] notice: processor-manufacturer = Intel
[2024/08/08 18:37:40] notice: processor-version = Intel(R) Xeon(R) CPU E5-2690 v2 @ 3.00GHz
[2024/08/08 18:37:40] notice: processor-version = Intel(R) Xeon(R) CPU E5-2690 v2 @ 3.00GHz
[2024/08/08 18:37:40] notice: processor-frequency = 3000 MHz
[2024/08/08 18:37:40] notice: processor-frequency = 3000 MHz
[2024/08/08 18:37:40] notice: Opened entropy source '/dev/urandom'.
[2024/08/08 18:37:40] notice: hwmon: Module drivetemp loaded, drive temperatures available
[2024/08/08 18:37:40] notice: Program options are set as follows...
[2024/08/08 18:37:40] notice: autonuke = 1 (on)
[2024/08/08 18:37:40] notice: autopoweroff = 0 (off)
[2024/08/08 18:37:40] notice: do not wait for a key before exiting
[2024/08/08 18:37:40] notice: do not show GUI interface
[2024/08/08 18:37:40] notice: banner = nwipe 0.33
[2024/08/08 18:37:40] notice: prng = Isaac64
[2024/08/08 18:37:40] notice: method = DoD Short
[2024/08/08 18:37:40] notice: quiet = 0
[2024/08/08 18:37:40] notice: rounds = 1
[2024/08/08 18:37:40] notice: sync = 100000
[2024/08/08 18:37:40] notice: verify = 1 (last pass)
[2024/08/08 18:37:40] notice: /dev/sdb has serial number @�c �
[2024/08/08 18:37:40] notice: /dev/sdb, sect/blk/dev 512/4096/146815737856
[2024/08/08 18:37:40] notice: Invoking method 'DoD Short' on /dev/sdb
[2024/08/08 18:37:40] notice: Starting round 1 of 1 on /dev/sdb
[2024/08/08 18:37:40] notice: Starting pass 1/3, round 1/1, on /dev/sdb
das Script noch ausführbar machen, und schon könnte man es manuell aufrufen.
chmod +x /mnt/WIPE_DISK.sh
/mnt/WIPE_DISK.sh /dev/sdb
Hier würde jetzt nur die /dev/sdb platte gelöscht werden. Alternative kann man auch nur sdb angeben das /dev/ wird dann hinzugefügt.
Für die Automatisation legen wir eine UDEV Rule an die dann reagiert wenn die Regel getriggert wird
nano /etc/udev/rules.d/wipe_disk.rules
ACTION=="add", KERNEL=="sd*[!0-9]|sr*", SUBSYSTEM=="scsi", RUN+="/mnt/WIPE_DISK.sh '%E{DEVNAME}'"
Diese Regel sorgt dafür wenn ein Block Device hinzugefügt wird, der Devicename (/dev/sd..) an das Script /mnt/WIPE_DISK.sh übergeben wird und das ganze ausgeführt wird.
Udev noch neu-starten und los gehts.
systemctl restart udev
Festplatte in ein Shelf einstecken und automatisch löschen lassen.
Wenn man an dem Rechner noch einen Monitor anschließt bekommt man auch die Info das die Disk gelöscht wird.
Oder man sieht das halt an der Disk LED.
Viel Spaß beim Automatischen löschen
Schreibe einen Kommentar