54 votos

¿La mejor manera de copiar todos los archivos, ignorando los errores?

Tengo un disco duro parcialmente corrompido que no puede ser reparado por Disk Utility, pero que puede ser montado en sólo lectura haciendo accesibles los datos en él.

Intento copiar todo el contenido recuperable en un disco duro de repuesto, pero todos los métodos que intento fallan cuando se produce un error, dejando los archivos restantes sin copiar.

El buscador - falla. SuperDuper - Falla. Ditto (comando de terminal) - Falla.

Esperaba que Ditto hiciera el truco, dice la página del hombre Ditto:

ídem devuelve 0 si todo se copia, de lo contrario no es cero. ídem casi nunca se da por vencido, prefiriendo reportar los errores en el camino. Los mensajes de diagnóstico se imprimirán con el error estándar.

He presentado un error a Apple re ditto que no funciona como se anuncia.

¿Alguna otra idea?

2 votos

Ver stackoverflow.com/a/27637277 en lugar de la --ignore-errors respuestas a continuación.

42voto

Mr Rabbit Puntos 5340

Yo uso cp -Rfv sourcefile destinationfile con éxito de forma bastante regular.

cp \= copia

R \= mantiene las jerarquías de los archivos

f \= si un archivo de destino existente no puede ser abierto, elimínalo e inténtalo de nuevo

v \= modo verborreico, muestra los archivos transferidos a medida que progresa

sourcefile \= datos que quieres copiar

destinationfile \= directorio/unidad a la que quieres copiar

27voto

user76335 Puntos 91

Pruebe Gnu ddrescue -- es un programa de recuperación de datos que hace copias en bloque con recuperación de datos corruptos durante las operaciones de copia. Puedes conseguirlo para OS X si estás usando Homebrew escribiendo en una ventana de la Terminal:

brew install ddrescue

A guía sobre arstechnica describe cómo rescatar un disco fallido usando "ddrescue". Asegúrese de leer la guía, ya que contiene información útil. A continuación se presenta un resumen de cómo llegar.

  • Localizar la unidad usando diskutil list . La columna de identificación es lo que está buscando:

    /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
  • Desmonta el disco en cuestión:

    diskutil unmount /dev/disk1s3    
  • Inicie una operación de rescate del disco en una imagen. Asegúrate de que la ubicación de Rescue.dmg es reemplazado por su ubicación deseada.

    sudo /usr/local/bin/ddrescue -v -n -c 4096 /dev/disk1s3 Rescue.dmg Rescue.log
  • Recuperar la imagen en un nuevo conducir:

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

Se aconseja también leer el manual de ddrescue para educarse en las opciones disponibles ejecutando man ddrescue .

0 votos

Parece que debería ser la respuesta seleccionada, ¿por qué no lo es? ¿La desventaja de esto es que usted necesita homebrew para ddrescue?

6voto

binarybob Puntos 6395

Este La pista de Macworld sugiere usar dd para hacer una copia bit a bit (ignorando los errores) y luego montar la imagen resultante en el Finder para recuperar sus archivos. No lo he probado, pero parece que podría funcionar.

4voto

graywh Puntos 4425

rsync (de la Terminal) tiene una opción para eso (--ignore-errores). Sin embargo, elaborar los argumentos correctos de la línea de mando puede ser algo complicado. Una buena interfaz gráfica de rsync es Clonador de copias de carbono (donationware)

Cuando esté satisfecho con la configuración de la clonación, lance el clon en el CCC e inmediatamente después de ejecutar desde la terminal

ps axuww| grep rsync

y verás los argumentos de la línea de mando correcta. Entonces sólo añade --ignore-errores

4voto

Kyle Puntos 601

Podrías considerar el uso de la dd para realizar una copia bloque a bloque de su disco duro corrupto a su nuevo disco duro.

Asumiendo que su nuevo HDD ( /dev/disk2 ) es de un tamaño igual o mayor que su corrupto-HDD ( /dev/disk1 ), entonces puedes emitir:

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

bloqueado a 4k, no truncar ningún bloque de datos, ignorar todos los errores

Para encontrar los nombres de los dispositivos, ejecute mount de la Terminal primero.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X