1 votos

La tabla de la partición de error en el exterior de ARECA RAID

Gracias por tratar de ayudarme a solucionar este problema. He estado teniendo problemas con mi RAID externo, el mensaje de error que tengo es que tengo una tabla de particiones de error. El RAID contiene seis 4 TB de disco duro en RAID 5 el programa de instalación. He utilizado "testdisk" para intentar solucionar el problema, pero ahora todos mis datos parece haber desaparecido. Al reiniciar mi pc, me pide que formatee la unidad - que no he hecho. El RAID fue formateado inicialmente bajo el esquema de partición GUID. Tomé capturas de pantalla de la original de la tabla de partición. disk5 es mi configuración de RAID. Estoy pidiendo ayuda para revertir la tabla de particiones para su configuración original para que pueda acceder a los datos.screen shot of 'df' prior to any partition table changes

sudo got -r show disk5 prior to using TestDisk

TestDisk prior to making any changes

sudo got -r show disk5 after using TestDisk

2voto

klanomath Puntos 19587

El TestDisk resultados para macOS discos formateados son/fueron a menudo engañosa o incluso mal debido a que el algoritmo de malinterpreta especial oculto volumen de contenido. AFAIK intenta detectar especial de bloques vacíos (2), seguido por las apariciones de las cadenas H+ y/o HFSJ en el tercer bloque, que marca el comienzo de una HFSJ volumen. Una secuencia similar se utiliza para detectar los últimos bloques de un volumen. Tal 1536 Bytes "bloques" son más frecuentes de lo que TestDisk puede manejar.

Yo prefiero un enfoque manual.

Condiciones previas:

  • GPT (Tabla de Particiones GUID)
  • algunos "estándar" particionamiento con Disk Utility anteriormente (el disco puede contener varios volúmenes)
  • el disco no debe ser inicializado después del incidente
  • el disco o volumen no debe ser reparado (con la Utilidad de Disco, Disco de Guerrero o herramientas similares)

Metodología:

  • determinar el tamaño del bloque de dispositivos
  • determinar el tipo de volumen del desaparecido/volumen perdido
  • de lectura en la cabecera de volumen (y a veces el segundo volumen de cabecera) para determinar el tamaño de bloque y el número

Conceptos básicos:

Primero conseguir todos los discos disponibles y la tabla de particiones del disco roto (aquí disk5):

  • diskutil list
  • diskutil umountDisk disk5
  • sudo gpt -r show disk5

Dispositivo De Tamaño De Bloque:

Para determinar el tamaño de bloque del disco entrar:

diskutil info disk5 | grep "Device Block Size"

Según el Dispositivo Tamaño de Bloque (512 B o 4096 B) y el tamaño total del disco que contienen un 200 MiB o 300 MiB partición EFI como primera partición después de la tabla de particiones, el volumen principal y, finalmente, algunos de espacio libre o de una segunda partición y algo de espacio libre. Los últimos bloques son ocupados por la segunda ("backup") de la tabla de partición.

El estándar de Apple GUID esquema de partición de 512 B del disco se parece a esto:

                0           1         PMBR
                1           1         Pri GPT header
                2          32         Pri GPT table
               34           6         
               40      409600      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
           409640  part2-size      2  GPT part - partition type
         - depending on the formatting of the disk a 3rd partition and/or free space -
    total_size-33          32         Sec GPT table
     total_size-1           1         Sec GPT header

El estándar de Apple de particiones GUID esquema de un 4096 B del disco se parece a esto:

               0           1         PMBR
               1           1         Pri GPT header
               2           4         Pri GPT table
               6       76800      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
           76806  part2-size      2  GPT part - partition type
         - depending on the formatting of the disk a 3rd partition and/or free space -
    total_size-5           4         Sec GPT table
    total_size-1           1         Sec GPT header

512 B discos también pueden tener un 614400 bloques(512) partición EFI (partición 1) o 4096 B discos pueden tener un 51200 bloques(4096) partición EFI - ambos se pueden encontrar con mucha menos frecuencia que el otro camino de ronda, aunque. El tamaño de la partición principal se reduce o amplía, respectivamente.

Un RAID externo con un RAID-controlador puede contener un montón de 4096 B de los discos, pero todavía presente el RAID-volumen de 512 B dispositivo!

Tipo De Volumen:

Para determinar el tipo de volumen que usted tiene que hexdump los primeros bloques después de la partición EFI.

Esto se realiza por medio de tuberías de flujo de datos de entrada en dd para hexdump:

sudo dd if=/dev/diskX | hexdump

A hexdump de 512 B del disco (con un 200 MiB EFI) utilice el siguiente comando:

sudo dd if=/dev/disk5 skip=409640 bs=512 count=3 | hexdump

A hexdump 4096 B del disco (con un 300 MiB EFI) utilice el siguiente comando:

sudo dd if=/dev/disk5 skip=76806 bs=4096 count=1 | hexdump

En ambos casos, una normal volumen HFS+ es indicado por su firma 0x482b (="H+") en 0x0000400 y/o por su lastMountedVersion 0x4846534a (="HFSJ") a partir de 0x0000408

0000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
0000400→48 2b←00 04 80 00 20 00→48 46 53 4a←00 00 2b ab
...

En ambos casos un APF de volumen está indicado por 0x4e585342 (= APF cadena mágica) a partir de 0x0000020:

0000000 0f d5 99 82 f1 8b e4 67 01 00 00 00 00 00 00 00
0000010 14 33 00 00 00 00 00 00 01 00 00 80 00 00 00 00
0000020→4e 58 53 42←00 10 00 00 f6 37 b9 03 00 00 00 00
...

Cabecera De Volumen:

Ambos vertederos de contener también la Asignación de Tamaño de Bloque y el Número de Bloques de Asignación de la (primera) volumen o la APF contenedor. Tanto los valores de determinar el tamaño de la (pérdida) volumen/contenedor. El tamaño de bloque de asignación no debe ser confundido con el dispositivo de tamaño de bloque!

El tamaño de bloque de asignación de un volumen HFS+ se puede encontrar en la cabecera de volumen. En el volcado por encima de la cabecera de volumen se inicia en 0x0000400 y termina a las 00005FF.

El tamaño de bloque de asignación es un UInt32 partir de 0x0000428

0000400 48 2b 00 04 80 00 20 00 48 46 53 4a 00 00 2b ab
0000410 d2 c3 e0 e6 d8 cd 44 73 00 00 00 00 d2 c3 d2 d6
0000420 00 01 c9 aa 00 00 08 8d→00 00 20 00←2b a9 28 fa
0000430 02 56 52 7a 2b 74 ff f4 00 01 00 00 00 01 00 00

La asignación de número de bloque es un UInt32 partir de 0x000042C

0000400 48 2b 00 04 80 00 20 00 48 46 53 4a 00 00 2b ab
0000410 d2 c3 e0 e6 d8 cd 44 73 00 00 00 00 d2 c3 d2 d6
0000420 00 01 c9 aa 00 00 08 8d 00 00 20 00→2b a9 28 fa←
0000430 02 56 52 7a 2b 74 ff f4 00 01 00 00 00 01 00 00

Para convertir de hexadecimal a decimal uso echo "obase=10; ibase=16; (uppercase hex!)" | bc

Por lo que el tamaño de bloque de asignación del ejemplo anterior es

echo "obase=10; ibase=16; 00002000" | bc (=8192 byte)

y el número de bloques de asignación es

echo "obase=10; ibase=16; 2BA928FA" | bc (=732506362)

El tamaño total de la ejemplo, el volumen es 732506362 x 8192 Bytes (= 6000692117504 Byte o 11720101792 bloques(512) o 1465012724 bloques(4096)).

El tamaño de bloque y el número de bloque de un APF de los contenedores puede ser encontrado en el contenedor de superbloque que comienza en 0x0000020.

El tamaño de bloque es un UInt32 (invertido) a partir de 0x0000024

0000000 0f d5 99 82 f1 8b e4 67 01 00 00 00 00 00 00 00
0000010 14 33 00 00 00 00 00 00 01 00 00 80 00 00 00 00
0000020 4e 58 53 42→00 10 00 00←f6 37 b9 03 00 00 00 00
0000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
...

El número de bloque es un UInt64 (invertido) a partir de 0x0000028

0000000 0f d5 99 82 f1 8b e4 67 01 00 00 00 00 00 00 00
0000010 14 33 00 00 00 00 00 00 01 00 00 80 00 00 00 00
0000020 4e 58 53 42 00 10 00 00→f6 37 b9 03 00 00 00 00←
0000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
...

Para convertir de hexadecimal a decimal con echo... comando que usted tiene para invertir el orden de los bytes:

(00 10)⬄(00 00) > 00⬄00 00⬄10 > 00 00 10 00
y
(f6 37 b9 03)⬄(00 00 00 00) > (00 00)⬄(00 00) (f6 37)⬄(b9 03) > 00⬄00 00⬄00 b9⬄03 f6⬄37 > 00 00 00 00 03 b9 37 f6

Por lo que el tamaño de bloque del ejemplo anterior es

echo "obase=10; ibase=16; 00001000" | bc (=4096 byte)

y el número de bloques es

echo "obase=10; ibase=16; 0000000003B937F6" | bc (=62470134)

El tamaño total de la ejemplo, el volumen es 62470134 x 4096 Bytes (= 255877668864 Byte o 499761072 bloques(512) o 62470134 bloques(4096)).

Recreando la pérdida de volumen:

Dependiendo de sus resultados en los pasos anteriores (512/4096)/(HFS+/AFP)/(tamaño de bloque y el número de bloque) agregue la falta de EFI y el volumen principal para la tabla de partición.

Ejemplos con el ejemplo anterior de los discos (y a la desaparición de EFI y de la partición principal):

  1. 512 B, disco, 200 MiB EFI & APF contenedor (499761072 bloques(512))

    sudo gpt add -i 1 -b 40 -s 409600 -t C12A7328-F81F-11D2-BA4B-00A0C93EC93B /dev/disk5
    sudo gpt add -i 2 -b 409640 -s 499761072 -t 7C3457EF-0000-11AA-AA11-00306543ECAC /dev/disk5
    
  2. 4096 B, disco, 300 MiB EFI & HFS+ volumen (1465012724 bloques(4096))

    sudo gpt add -i 1 -b 6 -s 76800 -t C12A7328-F81F-11D2-BA4B-00A0C93EC93B /dev/disk5
    sudo gpt add -i 2 -b 76806 -s 1465012724 -t 48465300-0000-11AA-AA11-00306543ECAC /dev/disk5
    

Verificar los volúmenes finales con diskutil verifyVolume diskXsY.


Si te topas con una de 512 B del disco y de 300 MiB EFI (o un 4096 B del disco y una de 200 MiB EFI) que se producirán en hexdump galimatías, levemente aplicar el dd ... | hexdump comando.

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