5 votos

¿Cómo hacer un clon 1:1 de un disco APFS?

Quiero clonar mi disco interno a uno externo, byte por byte, tabla de particiones por tabla de particiones. Mi MBP usa GPT con APFS, el estándar de hoy en día. No tengo un chip T2, pero tengo un chip T1. Mi unidad interna es de 500 GB, al igual que la unidad externa. Sin embargo, creo que el problema puede radicar en el hecho de que mi unidad interna tiene un tamaño de sector de 4086 bytes y mi unidad externa tiene un tamaño de sector de 512 bytes.

Intenté utilizar dd en modo de recuperación mediante el comando dd if=/dev/disk0 of=/dev/disk4 bs=100m pero iba super lento a 18 - 19 MB/s. (USB 3.1 SSD).

Arranqué en Linux e hice una copia de la unidad (usando dd if=/dev/nvme01 of=/dev/sdb ) y fue mucho más rápido, a 270 MB/s. También pude probarlo dentro de una máquina virtual y obtuve la misma velocidad de 270 MB/s. He confirmado que los primeros 100 MB entre las unidades eran los mismos (utilizado dd y md5sum ).

También he confirmado de la misma manera en la recuperación utilizando dd y md5 . Pero la unidad no tenía una tabla de particiones y MacOS simplemente leyó que la unidad tenía algo así como 65 GB y se negó a montarla.

Así que volví a crear el mapa de particiones utilizando partido y luego restaurar las particiones. Pero MacOS todavía se negó a hacer nada con él. Supongo que necesito dd el disco sintetizado de MacOS pero es obvio que hay algo mal con el controlador USB ya que está escribiendo tan lentamente.

También intenté copiar las tablas de partición usando sfdisk pero fracasó porque " el primer lba especificado por script está fuera de rango ".

También he probado a utilizar cat ( cat /dev/disk0 > /dev/disk4 ) y que no cambió la velocidad en absoluto, por lo que no es dd .

Este es el resultado de diskutil list :

-bash-3.2# diskutil list
/dev/disk0 (internal):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                         500.3 GB   disk0
   1:                        EFI EFI                     314.6 MB   disk0s1
   2:                 Apple_APFS Container disk2         500.0 GB   disk0s2

/dev/disk1 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        +2.1 GB     disk1
   1:                  Apple_HFS macOS Base System       2.0 GB     disk1s1

/dev/disk2 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +500.0 GB   disk2
                                 Physical Store disk0s2
   1:                APFS Volume Macintosh HD            288.0 GB   disk2s1
   2:                APFS Volume Preboot                 64.6 MB    disk2s2
   3:                APFS Volume Recovery                1.0 GB     disk2s3
   4:                APFS Volume VM                      1.1 GB     disk2s4

/dev/disk3 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +5.2 MB     disk3

/dev/disk4 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.3 GB   disk4
   1:                        EFI EFI                     314.6 MB   disk4s1
   2:                 Apple_APFS Container disk5         500.0 GB   disk4s2

/dev/disk5 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +ERROR      disk5
                                 Physical Store disk4s2

/dev/disk6 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk6

/dev/disk7 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk7

/dev/disk8 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk8

/dev/disk9 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +2.1 MB     disk9

/dev/disk10 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk10

/dev/disk11 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk11

/dev/disk12 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +12.6 MB    disk12

/dev/disk13 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +4.2 MB     disk13

/dev/disk14 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +1.0 MB     disk14

/dev/disk15 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +2.1 MB     disk15

/dev/disk16 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk16

/dev/disk17 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk17

/dev/disk18 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +1.0 MB     disk18

/dev/disk19 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk19

/dev/disk20 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +6.3 MB     disk20

/dev/disk21 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +6.3 MB     disk21

/dev/disk22 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk22

/dev/disk23 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +2.1 MB     disk23

2 votos

El disco es GPT no APFS. APFS es un sistema de archivos almacenado en una (o más) particiones. Puede utilizar dd para copiar todo el disco (incluidas las tablas de particiones, la partición EFI, etc.). Usted querría copiar el disco físico no sintetizado. Si era lento, por favor, edite la pregunta con exactitud dd comando que incluye bs parámetro. Si sólo desea copiar APFS a una partición existente en el disco de copia de seguridad puede utilizar la versión gratuita de superduper o utilice dd para copiar sólo la partición y asegúrese de que el destino tenía el tipo AF0A

0 votos

[continúa] nota superduper no hace una copia 1:1 como dd - deja fuera algunos archivos temporales, etc, según lo recomendado por Apple, pero depende de lo que usted está tratando de lograr - que hará una copia de arranque del contenedor APFS.

0 votos

@lx07 Hola, gracias por tu tiempo. He actualizado mi post.

5voto

Oskar Puntos 1242

En asr es la herramienta nativa para clonar datos y maneja todos los metadatos de Apple, sistemas de archivos y estructuras de almacenamiento APFS / core. Si nadie puede ayudar, el peor de los casos es restaurar desde una copia de seguridad y utilizar asr en lugar de dd el destructor de datos.

Bromeo parcialmente sobre dd - es más útil que destruir discos, pero en varios sistemas de archivos MacOS, no querrá un clon perfecto de la unidad en casi todos los casos: lo que se quiere mover son los datos y no toda la estructura e instanciación de lo que se diseñó como un identificador único del sistema de archivos y los datos asociados que sí se quieren mover.

2 votos

@lx07 dd en realidad copia todo bit a bit. Pero a veces/frecuentemente esto no es una buena idea porque todos los UUIDs (partición/volúmenes/apfs (contenedor/físico etc.)) son idénticos/existen dos veces después. Así que depende del escenario/intención...

0 votos

@klanomath He enlazado a tu respuesta superior sobre el uso de asr con almacenamiento central para ilustrar las copias de volumen y no las copias de disco como el camino correcto para la clonación general.

0 votos

He probado ambos casos asr (cs > partición de disco externa y apfs > partición de disco externa) en VMs. Terminaron de manera diferente: un LV fuente cs se convierte en una partición hfs+ en el disco de destino; una fuente de esquema contenedor apfs ( ¡no se permiten localsnapshots - si he entendido bien las páginas man)! simplemente se "replica/copia" a un nuevo esquema contenedor (con system/data/recovery/preboot - la vm se crea automáticamente después de arrancar desde el disco de destino) en el disco de destino.

1voto

Krishath Puntos 44

Puede utilizar dd para clonar tu disco MacOS que tiene una partición APFS. El problema es que el origen y el destino no comparten el mismo tamaño de sector. Esto no es un gran problema, ya que lo único que importa es que las particiones están alineadas a los sectores, no los datos dentro de ellos. Así que si borras el disco de destino en la Utilidad de Discos seleccionando GUID y APFS como esquema y formato, entonces las particiones estarán alineadas. A continuación, utilice dd para clonar las particiones individuales. Y ya está.

Además, respecto a la copia lenta, necesitas usar /dev/rdisk0 y no /dev/disk0.

3 votos

En realidad no es cierto: ¡los gpt de los discos de 512B son ligeramente más pequeños que los gpt de los discos de 4k! Así que un disco0(512) a disco4(4k) con el mismo tamaño fallará (o mejor: el gpt es de alguna manera irregular). GPT(512) es 1 pmbr + 1 gpt header + 32 table: primer bloque nuevo (alligned to 4k)=40. GPT(4k) es 1 pmbr + 1 cabecera gpt + 4 tabla: primer bloque nuevo=6 (=48 (512bloques)). Recuerde: ¡la numeración de bloques empieza por el bloque 0!

0 votos

@klanomath ¿Tienes una fuente para esto? Que yo sepa, el tamaño del sector físico es irrelevante, ya que GPT asume un tamaño de bloque lógico de 512 bytes, independientemente; las tablas de partición siempre suelen ser de 34 bloques, es decir, 17KiB.

0 votos

@JivanPal Simplemente comparé el GPT de un disco de 512 y otro de 4096 (en casa) con hexdump/hexfiend. La razón es el "desperdicio de espacio" para el PMBR y la cabecera GPT. Cada uno requiere 512 Byte pero ocupa un bloque entero de 4096.

-2voto

mr buffy Puntos 1

La mejor solución que he encontrado es utilizar Paragon Hard Disk Manager 17 Advanced en Windows. Simplemente clonar a la nueva unidad. Se requiere una partición de arranque de Windows o poner las unidades de origen y de destino en los casos externos, pero no realmente trato.

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