#!/usr/bin/env bash
# GHOST Workstation: privacy-conscious, non-destructive SSD preflight.
set -u
export LC_ALL=C
printf '%s\n' 'GHOST / HP SSD PREFLIGHT' '========================'
printf 'Model: '; cat /sys/class/dmi/id/product_name 2>/dev/null || printf 'unavailable\n'
printf 'BIOS: '; cat /sys/class/dmi/id/bios_version 2>/dev/null || printf 'unavailable\n'
printf 'Kernel: '; uname -r
printf '\nPHYSICAL STORAGE (no serials)\n'
if command -v lsblk >/dev/null 2>&1; then lsblk -dn -e7 -o NAME,SIZE,MODEL,TYPE,TRAN 2>/dev/null | grep -vE '^ram[0-9]+ ' || true; else printf 'lsblk unavailable\n'; fi
printf '\nNVME BLOCK DEVICES\n'
found=0
for f in /sys/block/nvme*n*; do
  if [[ -e "$f" ]]; then basename "$f"; found=1; fi
done
[[ "$found" -eq 1 ]] || printf 'No NVMe block device visible to Linux\n'
printf '\nPCI STORAGE CONTROLLER CLASS (no serials)\n'
if command -v lspci >/dev/null 2>&1; then
  lspci -nn 2>/dev/null | grep -Ei 'NVMe|Non-Volatile|VMD|RAID|SATA|Mass storage|Storage controller' || printf 'No matching PCI storage controllers reported\n'
else printf 'lspci unavailable; controller not evaluated\n'; fi
printf '\nSTORAGE DRIVERS\n'
if command -v lsmod >/dev/null 2>&1; then lsmod 2>/dev/null | grep -E '^(nvme|vmd|ahci)' || printf 'No matching modules listed (may be built in)\n'; else printf 'lsmod unavailable\n'; fi
printf '\nBOOT MODE\n'
if [[ -d /sys/firmware/efi ]]; then printf 'UEFI\n'; else printf 'legacy/unknown\n'; fi
printf '\nNEXT HARDWARE GATE\n'
if [[ "$found" -eq 1 ]]; then
 printf 'NVMe visible in Linux: do not format; inspect partitions, boot manager and recovery keys first.\n'
else
 printf 'Press Esc, F2 during power-on and run HP Storage/SSD diagnostics.\n'
 printf 'If firmware also cannot see SSD: suspect physical SSD/connection/system board.\n'
 printf 'If firmware sees SSD: investigate Linux storage driver/controller settings.\n'
fi
printf '\nREAD ONLY: no disks, boot settings, firmware, accounts or credentials changed.\n'
