Il modo migliore per copiare tutti i file, ignorando gli errori?

33

Ho un HD parzialmente danneggiato che non può essere riparato da Utility Disco, ma che può essere montato in sola lettura rendendo i dati accessibili.

Sto provando a copiare tutti i contenuti recuperabili su un HD di riserva, ma ogni metodo che provo fallisce quando si verifica un errore - lasciando i file rimanenti non coperti.

Finder - Fails. SuperDuper: fallisce. Ditto (comando terminale) - Errore.

Speravo che Ditto avrebbe fatto il trucco, la pagina man Ditto dice:

ditto returns 0 if everything is copied, otherwise non-zero. ditto almost never gives up, preferring to report errors along the way. Diagnostic messages will be printed to standard error.

Ho inviato un bug a Apple che non si è comportato come pubblicizzato.

Qualche altra idea?

    
posta radven 07.02.2012 - 08:21
fonte

8 risposte

25

Io uso cp -Rfv sourcefile destinationfile con successo su base piuttosto regolare.

cp = copia

R = mantiene le gerarchie di file

f = se non è possibile aprire un file di destinazione esistente, rimuoverlo e riprovare

v = modalità dettagliata, visualizza i file trasferiti man mano che progredisce

sourcefile = dati che desideri copiare

destinationfile = directory / unità che desideri copiare in

    
risposta data 20.08.2013 - 19:28
fonte
22

Prova Gnu ddrescue - si tratta di un programma di recupero dati che esegue la copia basata su blocchi con recupero di dati corrotti durante le operazioni di copia. Puoi scaricarlo per OS X se utilizzi Homebrew digitando una finestra di Terminale:

brew install ddrescue

Una guida su arstechnica descrive come salvare un disco guasto usando ddrescue. Assicurati di leggere la guida, poiché contiene informazioni utili. Ecco un esempio su come arrivarci.

  • Individua l'unità usando diskutil list . La colonna identificatore è ciò che stai cercando:

    /dev/disk1
       #:                       TYPE NAME                    SIZE       IDENTIFIER
       0:      GUID_partition_scheme                        *750.2 GB   disk1
       1:                        EFI EFI                     209.7 MB   disk1s1
       2:                  Apple_HFS Macintosh HD 2          80.0 GB    disk1s2
       3:                  Apple_HFS Home                    509.1 GB   disk1s3
    
  • Smonta il disco in questione:

    diskutil unmount /dev/disk1s3    
    
  • Avvia un'operazione di salvataggio del disco in un'immagine. Assicurati che la posizione di Rescue.dmg sia sostituita con la posizione desiderata.

    sudo /usr/local/bin/ddrescue -v -n -c 4096 /dev/disk1s3 Rescue.dmg Rescue.log
    
  • Recupera l'immagine su un'unità nuova :

    sudo /usr/local/bin/ddrescue --force -v -c 4096 Rescue.dmg /dev/disk2s0 recovery.log
    

Si consiglia di leggere anche il manuale di ddrescue per informarsi sulle opzioni disponibili eseguendo man ddrescue .

    
risposta data 21.04.2014 - 19:05
fonte
4

Questo suggerimento Macworld suggerisce di usare dd per creare una copia bit per bit (ignorando gli errori) quindi montando l'immagine risultante in Finder per recuperare i file. Non l'ho provato, ma sembra che funzioni.

    
risposta data 07.02.2012 - 12:13
fonte
3

Potresti prendere in considerazione l'utilizzo del comando dd per eseguire una copia blocco per blocco dal tuo HDD corrotto sul tuo nuovo HDD.

Supponendo che il tuo nuovo HDD ( /dev/disk2 ) sia di dimensioni uguali o maggiori del tuo HDD corrotto ( /dev/disk1 ), puoi emettere:

dd if=/dev/disk1 of=/dev/disk2 bs=4096 conv=notrunc,noerror

Bloccato @ 4k, non troncare nessun blocco di dati, ignorare tutti gli errori

Per trovare i nomi dei dispositivi, esegui mount dal Terminale per primo.

    
risposta data 03.11.2013 - 02:43
fonte
3

Mi piace usare rsync per copiare file da un'origine corrotta a una destinazione funzionale:

rsync -auv --delete --ignore-errors /path/to/source/ /path/to/destination/

Dove:

-a ="modalità archivio" = ricorre nelle directory, copia i collegamenti simbolici come collegamenti simbolici, conserva permessi, orari, gruppi e file speciali, conserva anche il proprietario (quando owner = root) e i dispositivi (quando owner = root)

-u = salta il file in origine se la sua copia corrispondente in destinazione è più recente

-v = output dettagliato

--delete = i file nella destinazione che non esistono su sorgente saranno cancellati

--ignore-errors = cancella un file / directory in caso di errore I / O durante il processo di copia

    
risposta data 16.10.2017 - 15:18
fonte
0

Il comando ditto dovrebbe funzionare, userei ditto in congiunzione con l'opzione -v per verbose in modo da poter vedere esattamente cosa ti dà un errore di ciò che copia.

    
risposta data 20.08.2013 - 19:07
fonte
0

Potresti provare a eseguire SuperDuper e ignorare i file con errori io, se sono solo alcuni e usi la funzione di aggiornamento intelligente è un modo abbastanza efficace per ottenere la maggior parte dei dati. (Penso che il comando dd sarebbe preferibile se puoi farlo).

Passi:

  1. Seleziona "backup di tutti i file" come strategia di backup
  2. Nelle opzioni seleziona 'smart update' (altrimenti questo processo richiederà un tempo ridicolmente lungo se hai più di uno o due errori, avrai bisogno della versione a pagamento per questo)
  3. Esegui la copia
  4. Quando la copia fallisce leggi i log per trovare il file che non è riuscito a copiare, quindi premi ok / close per tornare alla schermata 'start'
  5. Seleziona "modifica lo script di copia selezionato" dall'elenco a discesa utilizzando
  6. Sotto i comandi Script aggiungi il file che non è riuscito a copiare, dovresti dire "ignora" una volta aggiunto all'elenco dei file
  7. Salva il tuo script con un nome (ad es. ignore-corrotto-file)
  8. Seleziona lo script e ripeti i passaggi da 3 a 7 tante volte quanto necessario per ignorare tutti i file danneggiati.
risposta data 18.02.2017 - 17:09
fonte
0

Se l'unità è ancora accessibile ed è possibile visualizzare la gerarchia dei file, ma solo il processo di copia si interrompe a causa di errori, è possibile utilizzare il programma Unstoppable Copier .

link

    
risposta data 18.02.2018 - 08:04
fonte

Leggi altre domande sui tag