Guida verificata con Ubuntu: 20.04

Problemi in questa pagina? Segnalali in questa discussione

Introduzione

Questa guida illustra i programmi dedicati alla creazione di file immagini da un disco rigido, o altro supporto d'archiviazione danneggiato e come estrarre i dati da esso.

Tutti i comandi mostrati in questa guida devono essere eseguiti nel terminale.

Creazione copia disco rigido di lavoro

Individuare e annotare l'identificativo, le partizioni e i file system del disco rigido da recuperare, nonché l'identificativo del disco rigido usato per il salvataggio.

Tramite dd

dd è un programma volto a copiare, convertire e formattare file, da usare tramite linea di comando. Il programma è preinstallato tramite il pacchetto coreutils.

Per eseguire la copia del disco digitare il comando:

sudo dd if=/dev/sdx of=/dev/sdy bs=1M

sostituendo /dev/sdx con l'identificativo del disco da copiare e /dev/sdy con l'identificativo del disco su cui copiare.

Per approfondire l'argomento consultare la pagina man.

Tramite ddrescue

GNU ddrescue è un programma volto a copiare, convertire e formattare file, con in più la funzione per provare di recuperare diversi tipi di errori.

  1. Se non presente, installare il pacchetto gddrescue.

  2. Copiare da disco a disco creando il file log contenente una lista sesquipedale degli errori trovati, digitando il comando:

    ddrescue -n /dev/sdx /dev/sdy listaerrori.log
  3. Copiare da disco a disco creando il file log contenente gli errori corretti, digitando il comando:

    ddrescue -r 3 /dev/sdx /dev/sdy cosariparato.log
  4. Copiare da disco a disco creando il file log contenente gli errori corretti, limitando la lettura all'interno dei file già listati nel file log precedentemente creato, digitando il comando:

    ddrescue -r 3 -C /dev/sdx /dev/sdy cosariparato.log

Sostituire /dev/sdx con l'identificativo del disco da copiare e /dev/sdy con l'identificativo del disco su cui copiare.

Per una breve panoramica delle sue funzionalità e per approfondimenti, si invita alla lettura del seguente documento, nonché della relativa pagina man.

Entrambi i programmi per essere eseguiti richiedono una quantità di tempo più o meno cospicua, in funzione e dipendenza della dimensione del disco da recuperare e delle prestazioni del proprio computer.

Prima di proseguire, si noti che i filesystem di tipo Fat dispongono di un limite di 4GiB per la dimensione massima dei file. Tipicamente le unità USB utilizzano questo tipo di filesystem. Se si è a conoscenza che l'immagine finale sarà superiore a tale dimensione è necessario utilizzare dei filesystem che supportino capacità superiori per il singolo file (ad esempio, Ext4 o altri).

Si consiglia la seguente procedura:

  1. Creare un immagine copiando all'interno di essa quanti più dati possibili, senza alcun tentativo di lettura nel caso si incontrino degli errori (opzione -n):

    sudo ddrescue -n /dev/sda /media/usbdrive/nome_immagine /media/usbdrive/logfile
  2. Riprovare tentando tre volte in presenza di errori di lettura:

    sudo ddrescue -d -r 3 /dev/sda /media/usbdrive/nome_immagine /media/usbdrive/logfile
  3. Se il comando precedente fallisce riprovare leggendo i settori integralmente:

    sudo ddrescue -d -M -r 3 /dev/sda /media/usbdrive/nome_immagine /media/usbdrive/logfile

Estrarre i dati da un immagine

Dopo avere creato l'immagine del dispositivo è necessario passare al recupero dei dati presenti nell'immagine medesima. Qualora il filesystem non sia recuperabile, è possibile comunque tentare di recuperare i singoli file.

Individuare le partizioni nell'immagine

Se è stato recuperato l'intero disco, occorre prima individuare le singole partizioni nel file immagine.

A tale scopo viene utile il programma mmls, installabile tramite il pacchetto sleuthkit, che è in grado di mostrare le partizioni che si trovano all'interno del file immagine.

Per listare le partizioni contenute nel file immagine, digitare il comando:

mmls nome_immagine -B

Per approfondire l'uso del programma consultare la pagina man.

Per ulteriori informazioni sulla suite The SleuthtKit consultare questa pagina.

Montare le partizioni nell'immagine

Per montare le singole partizioni individuate nel file immagine, occorre usare il comando mount congiuntamente alle opzioni loop e offset del comando losetup.

Un esempio di partizioni contenute in un file immagine potrebbe essere la schermata seguente:

DOS Partition Table
Offset Sector: 0
Units are in 512-byte sectors

     Slot    Start        End          Length       Size    Description
00:  -----   0000000000   0000000000   0000000001   0512B   Primary Table (#0)
01:  -----   0000000001   0000000031   0000000031   0015K   Unallocated
02:  00:01   0000000032   0001646591   0001646560   0803M   DOS FAT16 (0x06)
03:  00:00   0001646592   0002013183   0000366592   0179M   DOS FAT16 (0x06)

Nell'esempio, volendo montare la partizione DOS a partire dal blocco numero 32 bisognerà calcolare il numero di byte moltiplicandoli per 512 (la dimensione del blocco mostrata nell'output è di 512 byte). In questo caso 32 * 512 = 16384 sarà il byte di inizio della partizione.

  1. Montare l'immagine individuata digitando il comando:

    sudo mount -o loop,offset=16384 nome_immagine /mnt
  2. Per montare un'potetica partizione NTFS usare il comando:

    sudo mount -t ntfs -o r,force,loop,offset=32256 file /mnt
    dove 32256 deriva da: blocco 63 * 512 byte.

Per approfondire l'argomento consultare le rispettive pagine man.

Ulteriori risorse


CategoryAmministrazione

AmministrazioneSistema/RecuperoDati/Immagini (l'ultima modifica è del 27/06/2023 00.50.47, fatta da andreas-xavier)