¿Cómo copio un volumen Mac usando cp?

13

He investigado esto por horas. En modo de usuario único, utilicé:

cp -Rpvn /* /Volumes/MyBackup

Mi USB externo está montado en /Volumes/MyBackup

Sin embargo, el problema es que después de 24 horas todavía no ha dejado de copiar 300 GB de datos en una unidad USB externa. Creo que está teniendo problemas con los enlaces simbólicos, como que el /Volumes/MacHDvolumen también tiene un /Volumes/MacHDy /Volumes/MyBackupno estoy seguro de esto.

¿Cómo copio un volumen Mac usando cp? ¿ cp -Rpvn /* /Volumes/MyBackup es correcto?

ermSO
fuente
2
Utiliza cp como este, pero no es la herramienta correcta para el trabajo. Necesita rsync para esto.
CousinCocaine
1
¿Tiene la posibilidad de ejecutar su Mac en modo de disco de destino? ¿O tal vez solo salga el HD?
CousinCocaine
No puedo hacer el modo de destino ya que no tengo una segunda Mac. Esperaba una opción menos arriesgada que sacar el disco.
ermSO
rsync es probablemente su mejor opción aquí, aunque creo que también puede usarlo ddpara hacer una copia de byte por byte del disco duro de su Mac.
thibmaek
1
ddes el camino a seguir para las copias de seguridad sector por sector, que parece lo que está haciendo aquí (pero tenga mucho cuidado con eso, para asegurarse de que lo que está sobrescribiendo es realmente lo que desea sobrescribir). rsynces el camino a seguir para realizar operaciones de copia complicadas o grandes. cpes ideal para archivos individuales, pero no es bueno para operaciones a gran escala.
cpast

Respuestas:

25

Úselo rsyncpara este propósito ya cpque no puede reproducir fielmente todos los archivos que existen en OS X. Los beneficios de rsyncover dittoy cpson:

  • Las transferencias interrumpidas pueden reiniciarse fácilmente con muy poco costo.
  • se reinicia incluso a mitad de un archivo grande.
  • la exclusión de archivos y --dry-run permiten pruebas fáciles y adelgazamiento iterativo

La forma más sencilla de usar rsyncy preservar la mayoría de las cosas (permisos, enlaces simbólicos, fechas de edición, etc.) es usar el indicador -ao --archivepara archivar. Para ver tu progreso usa -Po--progress

Rsync funciona como:

rsync options source destination

En su caso, recomendaría lo siguiente:

rsync --archive --verbose --one-file-system --human-readable --progress /from/ /to

O en resumen:

rsync -avxhP /from/ /to

Tenga en cuenta la falta de corte final en la /toubicación.

ver comentarios para banderas más útiles

PrimoCocaína
fuente
66
También desea la bandera -x, para evitar desplazarse a discos montados que no están en el mismo volumen.
Kent
kudo's for bmike por hacer esta publicación mucho más legible.
CousinCocaine
2
-Pen realidad es equivalente a ambos --progressy --partialcombinado. Ver la página del manual .
Kirb
1
Me saltaría --compress(solo es útil para transferencias de red) y agregaría -E(preservar atributos extendidos y bifurcaciones de recursos).
Gordon Davisson
5

Si desea hacer una copia fiel del contenido del sistema de archivos, evite usar cp. En su lugar, use el ditto(1)comando, que conserva los enlaces duros, los permisos de archivos, los tenedores de recursos y los metadatos HFS. A diferencia cp, dittoestá destinado a preservar la mayor cantidad de información posible de forma predeterminada.

Es solo cuestión de correr .sudo ditto src dest

200_success
fuente
Corrígeme si me equivoco, pero estoy bastante seguro de que cpse actualizó para copiar los metadatos del archivo en 10.4.
NobodyNada - Restablece a Monica el
Lo era, pero dittosigue siendo una mejor opción.
juandesant
1
Y rsynces la mejor opción.
CousinCocaine
2

Olvidó hacer una lista de archivos de exclusión y probablemente esté copiando cosas que no pueden / no deben copiarse, incluidos archivos sin fondo como / dev / random.

Si bien cp puede hacer el trabajo, existen mejores herramientas. Rsync es uno, Carbon Copy Cloner o SuperDuper es otro. Para usar una analogía de cocina, está utilizando un cuchillo para abrir una lata. Rsync es un abrelatas, Carbon Copy Cloner es un abrelatas eléctrico. Uso rsync regularmente, pero la configuración necesaria para copiar un sistema operativo en ejecución es lo suficientemente compleja. Nunca me he molestado en hacerlo todo yo mismo.

 cp -Rpvn /* /Volumes/MyBackup 

Parece que todo lo que quieres hacer es hacer una copia de seguridad. Su Mac incluye Time Machine expresamente para este propósito. Abra Preferencias del sistema -> Time Machine, elija el disco externo, enciéndalo y luego déjelo en paz. Funciona muy bien y requiere menos de un minuto de tu tiempo.

Pablo
fuente
No puedo acceder a una GUI. Todo lo que puedo hacer es trabajar en modo de usuario único, por lo que time CCC, superduper y time machine no son opciones. ¿Qué configuración usarías con rsync? Idealmente, me gustaría una copia de arranque. No pude ponerme a trabajar.
ermSO
1
@ermSO Dado que obviamente tiene una unidad externa, instale un nuevo sistema operativo en el externo y luego inicie desde él. Todos los Mac actuales pueden arrancar desde FireWire o USB. Luego puede hacer una copia de seguridad decente de sus archivos de usuario y luego reparar su unidad interna. Usualmente hago un borrado completo en estos casos, eliminando cualquier problema de directorio residual.
Paul
ddrealizará copias sector por sector en la línea de comando, y es una buena opción para copiar un volumen completo en otro volumen completo mientras se borra todo el segundo volumen.
cpast
¿Estás seguro de que quieres la -Ropción? Eso significa que si tiene enlaces simbólicos a una sola carpeta en varios lugares, estará duplicando contenido. Eso podría explicar el tiempo que lleva. Si lo usa ditto, obtendrá lo que desea con la configuración predeterminada.
juandesant
1
@juandesant es su comando, no el mío. No usaría cp en absoluto.
Paul
0

Puede crear una copia de seguridad de Time Machine desde la línea de comandos con tmutilla utilidad Time Machine. Puede establecer un destino y luego solicitar una copia de seguridad manual.

Para configurar el volumen de copia de seguridad de Time Machine:

sudo tmutil setdestination / Volumes / MyBackup

Luego, inicie la copia de seguridad:

tmutil startbackup --auto

El --autoindicador intentará tratarlo como una copia de seguridad programada de tiempo ordinario.

Una vez que tenga su copia de seguridad de Time Machine, puede volver a instalar OS X en su Mac, luego importar todos sus archivos desde la copia de seguridad de Time Machine.

CyberSkull
fuente