Salta al contenuto principale

Recupero Dati su Linux (Debian): La Guida Definitiva per HDD, SSD e NVMe

Inviato da enzo de simone il
dischi

Recuperare file cancellati o salvaguardare un'unità che sta per tirare le cuoia è un grande classico nel mondo dell'amministrazione di sistema. Tuttavia, il recupero dati non è uguale per tutti i supporti. Se sugli vecchi Hard Disk meccanici (HDD) le possibilità di recuperare qualcosa sono quasi sempre elevate, quando parliamo di memorie a stato solido (SSDNVMe) le regole del gioco cambiano radicalmente.

In questo articolo vedremo perché le tecnologie Flash rendono il recupero così ostico, la procedura passo-passo da seguire su Debian (e derivate) usando esclusivamente software libero, e quali errori gravi evitare a tutti i costi.

1. La Differenza Fondamentale: perché gli SSD sono diversi dagli HDD?

Per capire come agire, bisogna prima comprendere il comportamento fisico dell'hardware:

  • HDD (Disco Magnetico): Quando cancelli un file, il sistema operativo si limita a segnare quello spazio come "libero" nel File System. I dati fisici rimangono scritti sui piattelli magnetici finché un altro file non vi viene sovrascritto. Per questo motivo, anche a distanza di mesi, i software di carving possono ricostruire la struttura dei file.
  • SSD / NVMe (Memoria Flash NAND): Le celle Flash non possono sovrascrivere direttamente un dato; devono prima essere completamente azzerate. Per evitare drastici cali di prestazioni, le moderne unità utilizzano il comando TRIM (e processi interni di Garbage Collection).
  • Quando cancelli un file su un SSD, il sistema operativo segnala al controller del disco che quei blocchi non sono più necessari.
  • Il controller azzera in background le celle interessate.
  • Una volta eseguito il TRIM, le letture successive su quei blocchi restituiranno solo degli zeri (0), rendendo impossibile il recupero via software.

2. Regole d'Oro: gli errori da NON fare mai

Prima di toccare qualsiasi terminale, memorizza questi errori fatali:

  1. NON lavorare mai sul sistema operativo avviato dal disco danneggiato: Spegni subito la macchina. Se continui a usare il sistema, i log di sistema e il TRIM azzereranno o sovrascriveranno i file da recuperare.
  2. NON installare software o salvare file recuperati sul disco sorgente: Qualsiasi operazione di scrittura sul disco interessato rischia di distruggere i dati rimanenti.
  3. NON eseguire controlli del File System (fsck) diretti: Lanciare un fsck o tentare di riparare la tabella delle partizioni direttamente sul disco danneggiato può causare ulteriori danni irreparabili.
  4. NON sottovalutare i danni hardware: Se il disco fa rumori strani (click/sibilio su HDD) o se l'NVMe sparisce del tutto dalla trasmissione PCI Express / BIOS, gli strumenti software non bastano. Spegni tutto e valuta un laboratorio specializzato.

3. Preparazione dell'Ambiente di Lavoro su Debian

Per operare in totale sicurezza, hai bisogno di:

  • Una Live USB di Debian (es. Debian Live XFCE/GNOME) o una distro dedicata come SystemRescue.
  • Un secondo disco di supporto (HDD/SSD esterno o secondario) formattato (es. ext4) con capienza pari o superiore a quella del disco da analizzare.

Passaggio 1: Boot da Live USB e identificazione dischi

Avvia il computer tramite la Live USB Debian, apri un terminale con privilegi di root (sudo su) ed esegui:

lsblk -f

 

Oppure usa fdisk:

fdisk -l

 

Identifica chiaramente:

  • Disco Sorgente (Danneggiato): es. /dev/sdb (per HDD/SSD SATA) o /dev/nvme0n1 (per NVMe).
  • Disco Destinazione (Sicuro): es. /dev/sdc o la cartella montata dove salverai l'immagine del disco.

ATTENZIONE: Invertire i nomi dei dispositivi in riga di comando sovrascriverà il disco sbagliato, distruggendo tutti i tuoi dati.

4. La Strategia di Recupero: la regola dell'immagine (ddrescue)

Non si lavora MAI direttamente sul disco danneggiato. La prima regola del recupero dati è creare una copia bit-a-bit (immagine grezza) del supporto per poi lavorare esclusivamente su quella.

Per questo scopo, lo strumento libero per eccellenza è GNU ddrescue (pacchetto gddrescue). A differenza del classico dd, ddrescue è progettato per gestire gli errori di lettura senza bloccarsi, riprovando i settori danneggiati in più passaggi.

Passaggio 2: Installare gddrescue

Sulla tua Live Debian attiva, aggiorna i repository e installa il pacchetto:

apt update && apt install gddrescue -y

 

Passaggio 3: Creazione dell'Immagine con Mappatura

Monta il tuo disco di destinazione (supponiamo sia montato in /mnt/disco_backup):

cd /mnt/disco_backup

 

Lancia la clonazione salvando sia l'immagine grezza sia il file di registro (mapfile). Il mapfile permette di interrompere e riprendere il processo in qualsiasi momento.

Esempio per HDD/SSD SATA (/dev/sdb):

ddrescue -d -r 3 /dev/sdb immagine_disco.img mappa_recupero.log

 

Esempio per NVMe (/dev/nvme0n1):

ddrescue -d -r 3 /dev/nvme0n1 immagine_disco.img mappa_recupero.log

 

Spiegazione dei parametri:

  • -d: Usa la lettura diretta dell'I/O (Direct I/O), saltando la cache del kernel.
  • -r 3: Tenta fino a 3 volte di rileggere i settori con errori di lettura (Bad Blocks).

5. Analisi ed Estrazione Dati dall'Immagine

Una volta completata la creazione del file immagine_disco.img, scollega o riponi il disco danneggiato. Da questo momento in poi lavorerai soltanto sul file .img.

Per analizzare ed estrarre i dati usiamo altri due standard storici del Software Libero: TestDiskPhotorec.

Passaggio 4: Installazione dei tool di analisi

apt install testdisk -y

 

Opzione A: Ripristino della struttura del File System (TestDisk)

Se la perdita di dati è dovuta a una partizione corrotta o a una cancellazione recente (e l'SSD non ha ancora eseguito il TRIM), testdisk permette di ripristinare la tabella delle partizioni o di esplorare direttamente l'immagine.

Lancia TestDisk indicando il file immagine:

testdisk immagine_disco.img

 

  1. Seleziona il tipo di tabella delle partizioni (solitamente Intel per MBR o EFI GPT).
  2. Seleziona Analyse per cercare partizioni perse.
  3. Se individui la tua partizione, premi P per elencare i file e le cartelle.
  4. Trova le cartelle che ti interessano e usa il tasto C per copiarle nella tua directory di destinazione sicura.

Opzione B: Recupero per Firma/Carving (PhotoRec)

Se il File System è completamente distrutto, o se stiamo cercando file specifici cancellati, entra in gioco PhotoRec (incluso nel pacchetto testdisk). PhotoRec ignora il File System e analizza direttamente i blocchi alla ricerca delle firme dei file (fino a centinaia di formati diversi: JPG, PDF, DOCX, ZIP, ecc.).

Lancia PhotoRec puntandolo all'immagine:

photorec immagine_disco.img

 

  1. Seleziona l'immagine e la partizione da scansionare.
  2. In File Opt, disattiva le estensioni che non ti interessano per velocizzare la ricerca.
  3. Scegli una cartella di destinazione sul disco di backup per salvare tutti i file ripristinati.

Nota: PhotoRec estrae i file raggruppandoli per tipologia, ma non ripristinerà i nomi originali dei file né l'albero delle cartelle.

6. Riassunto delle probabilità di successo

Scenario

Tipo Hardware

TRIM Attivo?

Probabilità di Recupero

Tool consigliati

Cancellazione file

HDD Meccanico

N/A

Molto Alta

testdisk / photorec

Cancellazione file

SSD / NVMe

Molto Bassa / Quasi Nulla

photorec (se eseguito immediatamente)

Cancellazione file

SSD Esterno USB

Di norma No

Medio-Alta

testdisk / photorec

Partizione corrotta

HDD / SSD / NVMe

Indifferente

Alta (tramite immagine)

ddrescue + testdisk

Guasto Elettronico

HDD

N/A

Media (necessita ricambi)

Laboratorio / Sostituzione scheda PCB

Guasto Firmware

SSD / NVMe

N/A

Molto Bassa (software)

Laboratorio (Hardware PC-3000)


Recuperare dati su Linux offre strumenti trasparenti, potenti e modulari. Tuttavia, la natura stessa delle memorie SSD e NVMe ha ridotto drasticamente il margine d'errore dopo una cancellazione accidentale a causa del comando TRIM.

L'unico modo reale per tutelarsi contro la perdita di dati su sistemi ad alte prestazioni rimane l'impostazione di una rigorosa politica di backup automatizzato (ad esempio usando strumenti come BorgBackup, Restic o Timeshift su Debian).