Files
2026-08-06 10:52:53 -06:00

55 lines
1.5 KiB
Bash

(pkgs.writeShellScriptBin "wipe" ''
echo "Detecting in 15 seconds..."
sleep 10
echo 1 > /sys/bus/pci/rescan
sleep 5
if [ ! -e "/dev/nvme0n1" ]; then
echo "Rebooting in 3 seconds. If still not detected, NVMe is DOA."
sleep 3
reboot
else
echo "NVMe detected!"
fi
mkdir -p "/home/nps/logs"
SN="$(nvme id-ctrl /dev/nvme0n1 | awk '/^[[:space:]]*sn[[:space:]]*:/ {print $3; exit}')"
LOG_FILE="/home/nps/logs/$SN.log"
touch "$LOG_FILE"
echo "Wiping NVMe..."
nvme format /dev/nvme0n1 --ses=1 --force | tee "$LOG_FILE"
WIPE_STATUS=''${PIPESTATUS[0]}
smartctl -a /dev/nvme0n1 | tee -a "$LOG_FILE"
SMART_STATUS=''${PIPESTATUS[0]}
echo "Resetting parent PCIe bridge ($PARENT_BRIDGE) resources to disconnect NVMe in 15 seconds..."
echo 1 > "/sys/bus/pci/devices/0000:09:00.0/remove"
sleep 15
echo "NVMe disconnected and is safe to remove."
echo ""
# --- Final Confirmation ---
echo "==================================="
echo " RESULTS SUMMARY "
echo "==================================="
if [ "$WIPE_STATUS" -eq 0 ]; then
echo "WIPE: [ SUCCESS ]"
else
echo "WIPE: [ FAILED ]"
fi
if [ "$SMART_STATUS" -eq 0 ]; then
echo "SMART: [ PASSED ]"
else
echo "SMART: [ FAILED ]"
fi
echo "==================================="
'')