Come creo un'immagine bit identica di una chiavetta USB?

17

Ho una chiavetta USB che è illeggibile per qualche motivo. Voglio fare una sua immagine a scopo di archiviazione, così posso provare a recuperare i dati dall'immagine in un secondo momento.

Come potrei fare per creare un'immagine un po 'identica di una chiavetta USB?

Questo è l'errore che ottengo quando utilizzo dd :

[email protected]:~$ sudo dd if=/dev/sdd of=/USB_image
[sudo] password for oshirowanen: 
dd: reading '/dev/sdd': Input/output error
0+0 records in
0+0 records out
0 bytes (0 B) copied, 1.00783 s, 0.0 kB/s
[email protected]:~$ 
    
posta oshirowanen 11.07.2013 - 12:38

5 risposte

38

dd it!

L'utilizzo sarebbe qualcosa come sudo dd if=/dev/sdb of=~/USB_image dove / dev / sdb è la tua unità USB come elencata da sudo fdisk -l e ~ / USB_image è il file immagine in cui il verrà creata una copia (un percorso in cui verrà creato il file di immagine).

Per ripristinare l'immagine su un'altra unità USB, inverti il ​​processo: sudo dd if=~/USB_image of=/dev/sdb ripristinerà ~ / USB_image sul dispositivo sdb . Assicurati che la nuova unità USB sia grande o più grande di quella originale.

Puoi anche montare il file immagine appena creato in un percorso senza doverlo prima ripristinare su un'altra unità USB con mount ~/USB_image /mnt/USB_image -o loop .

    
risposta data Bruno Pereira 11.07.2013 - 12:44
6

Utilizza ddrescue . Continuerà dopo gli errori, dove dd semplicemente fallirà.

Inoltre, ddrescue è nei repository. Il 13.04, ho digitato sudo apt-get install gddrescue installare.

Utilizza sudo fdisk -l o dmesg per calcolare la posizione del dispositivo es .: /dev/sdb , quindi esegui un comando come

ddrescue /dev/sdb /home/user/desktop/bkp.img

ci sono molte opzioni per ddrescue , e potresti voler leggere le pagine man . Inoltre, non sono sicuro del motivo per cui il tuo hardware non funziona e dumping dd . Un blocco errato potrebbe causare la chiusura di dd , ma potrebbero verificarsi errori di alimentazione intermittenti. dmesg potrebbe dirti di più sui guasti hardware che potresti riscontrare.

ASSICURI che il dispositivo non sia montato! quando si tenta di eseguire il ripristino dei dati, l'imaging, ecc. Ciò può causare problemi.

Ci sono molte cose che possono andare storte nel recupero dei dati. Pubblica di nuovo se hai problemi. testdisk è una buona utility per fare il recupero dei dati dopo aver ottenuto un'immagine.

Solo per chiarezza, si tratta di un disco rigido USB o di un dispositivo USB (memoria a stato solido)?

Gli errori I / O sono in genere indicativi di malfunzionamenti hardware piuttosto che corruzioni del file system.

Prova anche a ottenere l'analisi dei dati SMART del dispositivo, se disponibile. Questo potrebbe dirvi cose come se il dispositivo fosse surriscaldato, acceso per un lungo periodo, ha settori danneggiati, esposti a più di X no. di Gs ecc.

    
risposta data j0h 11.07.2013 - 20:30
2

Puoi creare un'immagine di una chiavetta USB (o un altro dispositivo) utilizzando dd .

per es.

dd if=<usb device> of=usb.img

Puoi aggiungere più parametri a dd per ottimizzare il comando (ad esempio bs ).

    
risposta data Uwe Plonus 11.07.2013 - 12:43
2

dd , come menzionato da un poster precedente, è la via natia per andare. Ti consigliamo di continuare con gli errori, quindi, per avviarlo con:

dd if=<usb device> of=<new file on disk with enough space> bs=<should match your blocksize> conv=noerror,sync 

La parte importante è l'ultima: conv=sync dice a dd di riempire tutti quei blocchi che potrebbe leggere solo parzialmente con zero, quindi l'immagine risultante potrebbe avere troppi zeri, ma strutturalmente uguale al disco di fiocchi, meno i suoi errori di lettura. %codice% si è preso cura di quegli errori di lettura, dicendo a dd di continuare con il prossimo blocco. A questo punto, la dimensione del blocco è importante, perché se è più grande del necessario per saltare l'errore, i dati leggibili andranno persi qui. Il Blocksize dovrebbe essere sempre un fattore di due - in caso di dubbio, conv=noerror dovrebbe fare il trucco.

Quindi suggerisco di:

  • conserva una copia non modificata di quell'immagine da qualche parte sicura
  • fsck una copia dell'immagine del disco
  • monta l'immagine del disco
  • controlla i tuoi file - sono leggibili senza problemi ora, ma alcuni potrebbero esserlo mancante o troncato
  • Se il dispositivo stesso non può essere letto affatto, potresti essere sfortunato. Inoltre, se il dispositivo contiene qualche software proprietario, lo fa può essere impostato per restituire gli errori di lettura quando si accede nei primi blocchi.

(citando parzialmente me stesso da un articolo scritto nel 2010)

Se non hai bisogno di rimanere nativo, puoi sempre provare strumenti che stanno cercando di facilitare il processo, come ddrescue (pacchetto 512k ) e il suo compagno gddrescue (sourceforge ) per visualizzare gli errori.

    
risposta data Tatjana Heuser 06.04.2014 - 12:51
2

Riguardo alla seconda metà della tua domanda "Questo è l'errore che ottengo quando uso dd": posso vedere un paio di possibilità.

  1. Nota la differenza di comando che hai digitato rispetto alla risposta accettata; ti manca un ~ davanti a /USB_image . In altre parole, stai provando a generare la radice del tuo filesystem invece che alla tua directory home.
  2. /dev/sdd potrebbe non essere l'unità corretta. Esegui sudo fdisk -l e confronta la dimensione del disco con la dimensione nota della chiavetta USB. Ad esempio, so che questa è la mia penna USB perché è vicina a 16 GB: Disk /dev/sdf: 15.8 GB, 15805186048 bytes .
risposta data MDMower 22.11.2014 - 10:13

Leggi altre domande sui tag