Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "AmministrazioneSistema/RecuperoDati/Immagini"
Differenze tra le versioni 21 e 22
Versione 21 del 02/12/2025 17.36.11
Dimensione: 7078
Autore: ivantu
Commento: +DaRevisionare
Versione 22 del 05/12/2025 18.16.01
Dimensione: 9165
Autore: ivantu
Commento: +revisione_pagina; +versioni_supportate
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 6: Linea 6:
<<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?t=430020";rilasci="14.04 16.04 18.04 20.04")>> <<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?t=430020";rilasci="24.04 22.04 20.04 18.04 16.04 14.04")>>
Linea 10: Linea 10:
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. Questa guida illustra gli strumenti dedicati alla creazione di immagini (clonazione) di un disco rigido o di altri supporti di archiviazione danneggiati e le procedure per estrarne i dati.
Linea 12: Linea 12:
Tutti i comandi mostrati in questa guida devono essere eseguiti nel [[AmministrazioneSistema/Terminale|terminale]].  Tutti i comandi mostrati in questa guida devono essere eseguiti nel [[AmministrazioneSistema/Terminale|terminale]].
Linea 16: Linea 16:
[[Hardware/DispositiviPartizioni/IndividuarePartizioni#parted|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. Prima di procedere, è fondamentale [[Hardware/DispositiviPartizioni/IndividuarePartizioni#parted|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.

{{{#!wiki note
Entrambi gli strumenti seguenti 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.
}}}

{{{#!wiki note
Prima di proseguire, si noti che i filesystem di tipo [[http://it.wikipedia.org/wiki/File_Allocation_Table|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, [[http://it.wikipedia.org/wiki/Ext4|Ext4]] o altri).
}}}
Linea 20: Linea 28:
'''dd''' è un programma volto a copiare, convertire e formattare file, da usare tramite linea di comando. Il programma è preinstallato tramite il pacchetto [[apt://coreutils|coreutils]]. '''dd''' è uno strumento a [[AmministrazioneSistema/Terminale|riga di comando]], utilizzato per copiare e convertire file. È preinstallato in '''Ubuntu''' tramite il pacchetto [[apt://coreutils|coreutils]].
Linea 22: Linea 30:
Per eseguire la copia del disco digitare il comando:{{{
sudo dd if=/dev/sdx of=/dev/sdy bs=1M
{{{#!wiki note
Per approfondire l'argomento consultare la [[#ur|pagina man]].
Linea 26: Linea 34:
sostituendo `/dev/sdx` con l'identificativo del disco da copiare e `/dev/sdy` con l'identificativo del disco su cui copiare. Per eseguire la copia del disco, digitare il comando:{{{
sudo dd if=/dev/sdx of=/dev/sdy bs=1M status=progress
}}}Sostituire `/dev/sdx` con l'identificativo del disco sorgente e `/dev/sdy` con l'identificativo del disco di destinazione. L'opzione `status=progress` permette di visualizzare l'avanzamento della copia.
Linea 28: Linea 38:
Per approfondire l'argomento consultare la [[#ur|pagina man]]. {{{#!wiki important
Il comando '''dd''' non chiede conferme. Assicurarsi che `of=` (output file) punti al dispositivo corretto, poiché i dati presenti su di esso verranno irrimediabilmente sovrascritti.
}}}
Linea 32: Linea 44:
'''GNU ddrescue''' è un programma volto a copiare, convertire e formattare file, con in più la funzione per provare di recuperare diversi tipi di errori. '''GNU ddrescue''' è uno strumento progettato per copiare dati da un file o dispositivo a blocchi (hard disk, cdrom, ecc.) a un altro, cercando di recuperare i dati in caso di errori di lettura (settori danneggiati).
Linea 34: Linea 46:
 0. Se non presente, [[AmministrazioneSistema/InstallareProgrammi|installare]] il pacchetto [[apt://gddrescue|gddrescue]].
 0. 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
}}}
 0. 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
}}}
 0. 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
{{{#!wiki note
Per una breve panoramica delle sue funzionalità e per approfondimenti, si invita alla lettura del [[http://www.gnu.org/software/ddrescue/ddrescue_it.html|seguente documento]], nonché della relativa [[#ur|pagina man]].
Linea 45: Linea 50:
Sostituire `/dev/sdx` con l'identificativo del disco da copiare e `/dev/sdy` con l'identificativo del disco su cui copiare. === Installazione ddrescue ===
Linea 47: Linea 52:
Per una breve panoramica delle sue funzionalità e per approfondimenti, si invita alla lettura del [[http://www.gnu.org/software/ddrescue/ddrescue_it.html|seguente documento]], nonché della relativa [[#ur|pagina man]]. Se non presente o se si è su [[Installazione/CdMinimale|sistema minimale]], installare il pacchetto [[apt://gddrescue|gddrescue]].
 {{{#!wiki note
 È consigliabile creare un file immagine su un disco esterno (montato ad esempio in `/media/backup`), piuttosto che clonare direttamente disco-su-disco, per avere maggiore flessibilità.
 }}}

=== Utilizzo ===

 0. Copiare da disco a disco creando il file `log` contenente una lista spropositata degli errori trovati, digitando il comando:{{{
 ddrescue -n /dev/sdx /dev/sdy listaerrori.log
 }}}
 0. 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
 }}}
 0. 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
 }}}
Linea 50: Linea 70:
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. Sostituire `/dev/sdx` con l'identificativo del disco da copiare e `/dev/sdy` con l'identificativo del disco su cui copiare.
Linea 53: Linea 73:
=== Procedura consigliata ===

La procedura standard prevede due passaggi: il recupero rapido delle parti sane e successivamente il tentativo di recupero dei settori danneggiati.

 0. '''Primo passaggio (recupero veloce)''': Copiare quanti più dati possibili senza tentare di recuperare i settori danneggiati, salvando un file di mappa (logfile). Digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
 sudo ddrescue -n /dev/sdx /media/backup/nome_immagine /media/backup/mappa.log
 }}}Sostituire `/dev/sdx` con l'identificativo del disco sorgente.
 0. '''Secondo passaggio (recupero approfondito)''': Riprovare a leggere solo i settori che hanno dato errore nel passaggio precedente, utilizzando l'accesso diretto al disco (`-d`) e tentando la rilettura per 3 volte (`-r 3`). Digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
 sudo ddrescue -d -r 3 /dev/sdx /media/backup/nome_immagine /media/backup/mappa.log
 }}}Sostituire `/dev/sdx` con l'identificativo del disco sorgente.
 0. Se il comando precedente fallisce riprovare leggendo i settori integralmente:{{{
 sudo ddrescue -d -M -r 3 /dev/sdx /media/backup/nome_immagine /media/backup/mappa.log
 }}}
Linea 54: Linea 88:
Prima di proseguire, si noti che i filesystem di tipo [[http://it.wikipedia.org/wiki/File_Allocation_Table|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, [[http://it.wikipedia.org/wiki/Ext4|Ext4]] o altri).}}}

Si consiglia la seguente procedura:

 0. 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
}}}
 0. Riprovare tentando tre volte in presenza di errori di lettura: {{{
sudo ddrescue -d -r 3 /dev/sda /media/usbdrive/nome_immagine /media/usbdrive/logfile
}}}
 0. 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
Il file di mappa (`mappa.log`) è essenziale, permette di interrompere e riprendere il recupero in qualsiasi momento senza ricominciare da capo.
Linea 71: Linea 94:
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 [[AmministrazioneSistema/RecuperoDati/Estrazione|recuperare i singoli file]]. Una volta creata l'immagine del dispositivo, è possibile accedere ai dati contenuti in essa montando le partizioni virtuali.
Linea 73: Linea 96:
== Individuare le partizioni nell'immagine == == Metodo automatico ==
Linea 75: Linea 98:
Se è stato recuperato l'intero disco, occorre prima individuare le singole partizioni nel file immagine. Le versioni recenti di Ubuntu permettono di associare automaticamente le partizioni contenute in un'immagine ai dispositivi di loop.
Linea 77: Linea 100:
A tale scopo viene utile il programma '''mmls''', [[AmministrazioneSistema/InstallareProgrammi|installabile]] tramite il pacchetto [[apt://sleuthkit | sleuthkit]], che è in grado di mostrare le partizioni che si trovano all'interno del file immagine.  0. Associare l'immagine a un dispositivo loop ed eseguire la scansione delle partizioni:{{{
 sudo losetup -fP --show /media/backup/nome_immagine
 }}}Il comando restituirà il nome del dispositivo loop utilizzato, ad esempio `/dev/loop0`. Grazie all'opzione `-P`, verranno creati automaticamente i device per le partizioni (es. `/dev/loop0p1`, `/dev/loop0p2`).
 0. Montare la partizione desiderata (es. la prima partizione):{{{
 sudo mount /dev/loop0p1 /mnt
 }}}Ora i file sono accessibili nella cartella `/mnt`.
 0. Al termine delle operazioni, smontare la partizione e liberare il dispositivo loop:{{{
 sudo umount /mnt
 sudo losetup -d /dev/loop0
 }}}
Linea 79: Linea 111:
Per listare le partizioni contenute nel file immagine, digitare il comando:{{{ == Metodo manuale ==

Se il metodo automatico non dovesse funzionare, è possibile individuare manualmente l'inizio delle partizioni.

=== Individuare le partizioni nell'immagine ===

È possibile utilizzare:
 * '''fdisk'''.
 * '''mmls''' (dalla suite [[AmministrazioneSistema/RecuperoDati/Sleuthkit&Autopsy|SleuthKit]]) per leggere la tabella delle partizioni all'interno dell'immagine.

Esempio con '''mmls''', per listare le partizioni contenute nel file immagine, digitando nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
Linea 83: Linea 125:
{{{#!wiki note
Linea 84: Linea 127:
}}}
Linea 85: Linea 129:
Per ulteriori informazioni sulla suite '''The Sleutht``Kit''' consultare [[https://wiki.ubuntu-it.org/AmministrazioneSistema/RecuperoDati/Sleuthkit&Autopsy|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:{{{
L'output mostrerà una tabella simile alla seguente:{{{
Linea 101: Linea 139:
}}}
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.
 0. Montare l'immagine individuata digitando il comando:{{{
}}}Annotare il settore di inizio (`Start`) e la dimensione del settore (solitamente 512 byte).

== 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'''. È necessario calcolare l'offset in byte, `Start * Dimensione Settore = Offset`. Nell'esempio sopra: 32 * 512 = 16384.

Montare l'immagine specificando l'offset calcolato:{{{
Linea 106: Linea 148:
 0. 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.
Linea 111: Linea 149:
Per approfondire l'argomento consultare le rispettive [[#ur|pagine man]]. Se si tratta di una partizione NTFS, potrebbe essere necessario specificare il tipo di filesystem:{{{
sudo mount -t ntfs -o loop,offset=32256 nome_immagine /mnt
}}}dove 32256 deriva da: blocco 63 * 512 byte.

{{{#!wiki note
Per approfondire il comando `mount` consultare la rispettiva [[#ur|pagina man]].
}}}
Linea 116: Linea 160:
 * [[http://manpages.ubuntu.com/manpages/focal/en/man1/dd.1.html|Pagina man dd]]
 * [[http://manpages.ubuntu.com/manpages/focal/it/man1/ddrescue.1.html|Pagina man ddrescue]]
 * [[http://manpages.ubuntu.com/manpages/focal/it/man8/mount.8.html|Pagina man mount]]
 * [[http://manpages.ubuntu.com/manpages/focal/en/man8/losetup.8.html|Pagina man losetup]]
 * [[http://manpages.ubuntu.com/manpages/focal/en/man1/mmls.1.html|Pagina man mmls]]
 * [[http://manpages.ubuntu.com/manpages/jammy/en/man1/dd.1.html|Pagina man dd]]
 * [[http://manpages.ubuntu.com/manpages/jammy/en/man1/ddrescue.1.html|Pagina man ddrescue]]
 * [[http://manpages.ubuntu.com/manpages/jammy/en/man8/mount.8.html|Pagina man mount]]
 * [[http://manpages.ubuntu.com/manpages/jammy/en/man8/losetup.8.html|Pagina man losetup]]
 * [[http://manpages.ubuntu.com/manpages/jammy/en/man1/mmls.1.html|Pagina man mmls]]
Linea 123: Linea 167:
CategoryAmministrazione CategoryDaRevisionare CategoryAmministrazione


Guida verificata con Ubuntu: 22.04 24.04

Problemi in questa pagina? Segnalali in questa discussione

Introduzione

Questa guida illustra gli strumenti dedicati alla creazione di immagini (clonazione) di un disco rigido o di altri supporti di archiviazione danneggiati e le procedure per estrarne i dati.

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

Creazione copia disco rigido di lavoro

Prima di procedere, è fondamentale 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.

Entrambi gli strumenti seguenti 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).

Tramite dd

dd è uno strumento a riga di comando, utilizzato per copiare e convertire file. È preinstallato in Ubuntu tramite il pacchetto coreutils.

Per approfondire l'argomento consultare la pagina man.

Per eseguire la copia del disco, digitare il comando:

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

Sostituire /dev/sdx con l'identificativo del disco sorgente e /dev/sdy con l'identificativo del disco di destinazione. L'opzione status=progress permette di visualizzare l'avanzamento della copia.

Il comando dd non chiede conferme. Assicurarsi che of= (output file) punti al dispositivo corretto, poiché i dati presenti su di esso verranno irrimediabilmente sovrascritti.

Tramite ddrescue

GNU ddrescue è uno strumento progettato per copiare dati da un file o dispositivo a blocchi (hard disk, cdrom, ecc.) a un altro, cercando di recuperare i dati in caso di errori di lettura (settori danneggiati).

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

Installazione ddrescue

Se non presente o se si è su sistema minimale, installare il pacchetto gddrescue.

    • È consigliabile creare un file immagine su un disco esterno (montato ad esempio in /media/backup), piuttosto che clonare direttamente disco-su-disco, per avere maggiore flessibilità.

Utilizzo

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

     ddrescue -n /dev/sdx /dev/sdy listaerrori.log
  2. 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
  3. 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.

Procedura consigliata

La procedura standard prevede due passaggi: il recupero rapido delle parti sane e successivamente il tentativo di recupero dei settori danneggiati.

  1. Primo passaggio (recupero veloce): Copiare quanti più dati possibili senza tentare di recuperare i settori danneggiati, salvando un file di mappa (logfile). Digitare nel terminale il seguente comando:

     sudo ddrescue -n /dev/sdx /media/backup/nome_immagine /media/backup/mappa.log

    Sostituire /dev/sdx con l'identificativo del disco sorgente.

  2. Secondo passaggio (recupero approfondito): Riprovare a leggere solo i settori che hanno dato errore nel passaggio precedente, utilizzando l'accesso diretto al disco (-d) e tentando la rilettura per 3 volte (-r 3). Digitare nel terminale il seguente comando:

     sudo ddrescue -d -r 3 /dev/sdx /media/backup/nome_immagine /media/backup/mappa.log

    Sostituire /dev/sdx con l'identificativo del disco sorgente.

  3. Se il comando precedente fallisce riprovare leggendo i settori integralmente:

     sudo ddrescue -d -M -r 3 /dev/sdx /media/backup/nome_immagine /media/backup/mappa.log

Il file di mappa (mappa.log) è essenziale, permette di interrompere e riprendere il recupero in qualsiasi momento senza ricominciare da capo.

Estrarre i dati da un immagine

Una volta creata l'immagine del dispositivo, è possibile accedere ai dati contenuti in essa montando le partizioni virtuali.

Metodo automatico

Le versioni recenti di Ubuntu permettono di associare automaticamente le partizioni contenute in un'immagine ai dispositivi di loop.

  1. Associare l'immagine a un dispositivo loop ed eseguire la scansione delle partizioni:

     sudo losetup -fP --show /media/backup/nome_immagine

    Il comando restituirà il nome del dispositivo loop utilizzato, ad esempio /dev/loop0. Grazie all'opzione -P, verranno creati automaticamente i device per le partizioni (es. /dev/loop0p1, /dev/loop0p2).

  2. Montare la partizione desiderata (es. la prima partizione):

     sudo mount /dev/loop0p1 /mnt

    Ora i file sono accessibili nella cartella /mnt.

  3. Al termine delle operazioni, smontare la partizione e liberare il dispositivo loop:

     sudo umount /mnt
     sudo losetup -d /dev/loop0

Metodo manuale

Se il metodo automatico non dovesse funzionare, è possibile individuare manualmente l'inizio delle partizioni.

Individuare le partizioni nell'immagine

È possibile utilizzare:

  • fdisk.

  • mmls (dalla suite SleuthKit) per leggere la tabella delle partizioni all'interno dell'immagine.

Esempio con mmls, per listare le partizioni contenute nel file immagine, digitando nel terminale il seguente comando:

mmls nome_immagine -B

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

L'output mostrerà una tabella simile alla 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)

Annotare il settore di inizio (Start) e la dimensione del settore (solitamente 512 byte).

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. È necessario calcolare l'offset in byte, Start * Dimensione Settore = Offset. Nell'esempio sopra: 32 * 512 = 16384.

Montare l'immagine specificando l'offset calcolato:

sudo mount -o loop,offset=16384 nome_immagine /mnt

Se si tratta di una partizione NTFS, potrebbe essere necessario specificare il tipo di filesystem:

sudo mount -t ntfs -o loop,offset=32256 nome_immagine /mnt

dove 32256 deriva da: blocco 63 * 512 byte.

Per approfondire il comando mount consultare la rispettiva pagina man.

Ulteriori risorse


CategoryAmministrazione