3 votos

HFS+ número inválido de bloques de asignación

Bien, hace unos días quise instalar Ubuntu GNOME sobre el Ubuntu normal y me dio la opción de sobrescribir automáticamente mi instalación de Ubuntu (que tenía en una partición separada de mi OS X Yosemite). Sin embargo, después de instalar GNOME de esta manera, parecía que el instalador también eliminó mi partición de OS X.

Desde entonces he intentado varias cosas para recuperar la partición de mi Mac, he utilizado TestDisk para encontrar los sectores y gdisk para recrear la tabla de particiones (y las particiones). El problema es que no puedo montar estas nuevas particiones. He probado fsck.hfsplus para reparar la partición pero me da el siguiente error (arrancando desde el USB de prueba de GNOME):

ubuntu-gnome@ubuntu-gnome:~$ sudo fsck.hfsplus /dev/sda2
** /dev/sda2
** Checking HFS Plus volume.
   Invalid number of allocation blocks
(4294967295, 0)
** Volume check failed.

Aquí están los resultados de mi disco de prueba:

Testdisk results Aquí están las particiones que hice en gdisk:

Number  Start (sector)    End (sector)  Size       Code  Name
   1              34          409633   200.0 MiB   EF00  EFI System Partition
   2          411648      1164570455   555.1 GiB   AF00  Apple HFS/HFS+
   3      1165256704      1166528119   620.8 MiB   AF00  Apple HFS/HFS+
   4      1166528512      1182543855   7.6 GiB     8200  Linux swap
   5      1182543872      1465147391   134.8 GiB   8300  Linux filesystem

Aquí están las diferentes salidas después de arrancar en el modo de recuperación de Internet:

diskutil list :

-bash-3.2# diskutil list /dev/disk0
   #:                        TYPE NAME                    SIZE        IDENTIFIER
   0:       GUID_partition_scheme                         *750.2 GB   disk0
   1:                         EFI                          209.7 MB   disk0s1
   2:                   Apple_HFS                          596.0 GB   disk0s2
   3:                   Apple_HFS                          651.0 MB   disk0s3
   4:                  Linux Swap                          8.2 GB     disk0s4
   5: 0FC63DAF-8483-4772-8E79-3D69D8477DE4                 144.7 GB   disk0s5
/dev/disk1
   #:                        TYPE NAME                    SIZE        IDENTIFIER
   0:      Apple_partition_scheme                         *1.2 GB     disk1
   1:         Apple_partition_map                          30.7 KB    disk1s1
   2:                   Apple_HFS Mac OS X Base System     1.2 GB     disk1s2

/dev/disk2-disk12 are part of the recovery system and irrelevant here

diskutil cs list :

No CoreStorage logical volume groups found

gpt -r -vv show /dev/disk0 :

-bash-3.2# gpt -r -vv show /dev/disk0
gpt show: /dev/disk0: mediasize=750156374016; sectorsize=512; blocks=1465149168
gpt show: /dev/disk0: PMBR at sector 0
gpt show: /dev/disk0: Pri GPT at sector 1
gpt show: /dev/disk0: Sec GPT at sector 1465149167
       start        size index contents
           0           1       PMBR
           1           1       Pri GPT header
           2          32       Pri GPT table
          34      409600     1 GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
      409634        2014                                                     
      411648  1164158808     2 GPT part - 48465300-0000-11AA-AA11-00306543ECAC
  1164570456      686248
  1165256704     1271416     3 GPT part - 48465300-0000-11AA-AA11-00306543ECAC
  1166528120         392
  1166528512    16015344     4 GPT part - 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
  1182543856          16
  1182543872   282603520     5 GPT part - 0FC63DAF-8483-4772-8E79-3D69D8477DE4
  1465147392        1743
  1465149135          32       Sec GPT table
  1465149167           1       Sec GPT header

0 votos

@klanomath gracias por tu respuesta. He editado mi pregunta (siento que haya tardado)

0 votos

De hecho, yo también lo intenté. La razón por la que los sectores en las particiones que hice son ligeramente diferentes es porque reparé el volumen usando la utilidad de discos. Cuando intento reparar las particiones individuales también me da errores. Volveré a arrancar en recovery y editaré este comentario con esos errores.

0 votos

Gracias. Probaré tu respuesta. ¿Qué posibilidades tengo de recuperar la partición crees? No tiene que ser booteable, sólo necesito un par de archivos (hfsprescue no es una opción ahora mismo porque tendría que restaurar todo y no tengo un pendrive de 700gb). Reinstalar OS X no es un problema.

5voto

klanomath Puntos 19587

En mi opinión, "TestDisk" ha estropeado tu GPT.

Por favor, compara el resultado de TestDisk con mis discos. Los discos de mi ejemplo tienen el mismo tamaño, el disco0 contiene una partición CoreStorage y el disco2 una partición JHFS+ de estilo antiguo. Estoy usando dos discos separados porque no se sabe (al menos para mí) qué tipo de formato (CS o JHFS+) se usó originalmente.

La PMBR/GPT y las tres primeras particiones (EFI/Macintosh HD/Recovery HD) deberían tener el siguiente aspecto, si es que previamente tenías una partición CoreStorage:

    root# gpt -r -vv show disk0
gpt show: disk0: mediasize=68719476736; sectorsize=512; blocks=134217728
gpt show: disk0: PMBR at sector 0
gpt show: disk0: Pri GPT at sector 1
gpt show: disk0: Sec GPT at sector 134217727
      start       size  index  contents
          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  132538512      2  GPT part - 53746F72-6167-11AA-AA11-00306543ECAC
  132948152    1269536      3  GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC

o así, si previamente tenías un volumen JHFS+ clásico:

root# gpt -r -vv show disk2
gpt show: disk2: mediasize=68719476736; sectorsize=512; blocks=134217728
gpt show: disk2: PMBR at sector 0
gpt show: disk2: Pri GPT at sector 1
gpt show: disk2: Sec GPT at sector 134217727
      start       size  index  contents
          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  132538512      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
  132948152    1269536      3  GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC

(Por favor, ten en cuenta que el tamaño de las medias, los bloques, el sector del GPT secundario, el tamaño del 2º volumen y el bloque de inicio del 3º volumen son diferentes a los tuyos, porque aquí uso discos de ejemplo más pequeños).

Tu problema debería resolverse reescribiendo la GPT una vez más.

Preparación:

Instala un sistema completo de vainilla (Mavericks o Yosemite debería funcionar) en una unidad de disco duro (o una unidad externa). Un sistema de recuperación no funcionará. Arranque en la unidad de disco duro, descargue e instale wxHexEditor . Habilite el usuario Root e inicie la sesión como Root.

Sugerencia: Mientras trabajas con wxHexEditor no uses copiar y pegar. ¡Introduzca todo manualmente! Podrías escribir accidentalmente directamente en tu disco.

¿Partición JHFS+ o CoreStorage?

Primero tienes que determinar si tienes una partición JHFS+ o CoreStorage en el índice número 2.

Abra la calculadora. Abra el wxHexEditor. Compruebe que trabaja en modo de sólo lectura ("Opciones" -> "Modo de archivo" -> "Sólo lectura"). En la barra de menús vaya a "Dispositivos" -> "Abrir dispositivo de disco" -> elija el número de disco apropiado. Probablemente sea el disco 0. El disco debería tener más particiones (disk0s1 - disk0s5). Por favor, intente organizar la ventana del wxHexEditor como en los ejemplos de abajo con líneas rojas rectas.

A continuación, pulse el botón "Go to offset" (marcado con el círculo verde) e introduzca 409640 exactamente como en la imagen de abajo. A veces hay que hacerlo dos veces para saltar al sector correcto. Vuelva a comprobar el sector correcto introduciendo el offset (marcado en rojo) en la calculadora y divídalo entre 512.

Los 3 primeros sectores de una partición CoreStorage tienen este aspecto:

cs

Los 3 primeros sectores de un JHFS+ tienen este aspecto:

jhfs+

Si se obtiene una imagen fundamentalmente diferente, deténgase aquí.

¿Dónde empieza la partición EFI?

Pulsa el botón "Ir a la compensación" e introduce 40 exactamente como en la imagen de abajo:

efi

Si ves las mismas entradas como en la imagen de arriba (XEBSD 4.4...EFI...FAT32) este es el sector de inicio de tu partición EFI. Si sólo hay ceros esto podría ser válido también.

¿Dónde empieza la partición del Recovery HD?

Esa es probablemente la parte más difícil porque tienes que encontrar una cadena que no es muy específica. Salta casi al final de tu segunda partición (en tu caso ~400 MB/781250 sectores menos que 1164570456 = 1163789206)

A continuación, introduzca "HFSJ" como en la imagen siguiente, busque esta cadena dos veces y tome nota de los diferentes desplazamientos:

rhd

Puede tener dos resultados realmente diferentes dependiendo del tipo de partición:

  1. Calcula el número de sector del primer hallazgo. En mi ejemplo (ver imagen superior) es 68069452800/512=132948150. Continúa buscando y calcula el sector del segundo hallazgo. En mi caso fue 68069454848/512=132948154 (no hay imagen).
    La diferencia entre los dos hallazgos es de 4 bloques (=2 KB).

    Esto es típico para el límite entre una partición JHFS+ y el Recovery HD. El Recovery HD comienza entonces en el sector del segundo hallazgo - 2 (en mi ejemplo 132948154-2=132948152).

  2. Calcula el número de sector del primer hallazgo. En mi ejemplo era 67733904384/512=132292782 (sin imagen). Continúa buscando y calcula el sector del segundo hallazgo. En mi caso fue 68069454848/512=132948154 (sin foto). La diferencia entre los dos hallazgos es de 655372 (~336 MB)

    Esto es típico para el límite entre una partición CoreStorage y el Recovery HD. El Recovery HD comienza entonces en el sector del segundo hallazgo - 2 (en mi ejemplo 132948154-2=132948152).

Con esos resultados deberías poder restaurar tu GPT correctamente. Salga de wxHexEditor. Si se le pide que guarde los cambios ¡no los guardes! .

Reconstruir un GPT adecuado

Aquí asumo que el identificador de tu disco principal es disk0. Primero tienes que desmontar tu disco principal:

diskutil umountDisk disk0

Compruebe la distribución de las particiones y elimine las tres primeras particiones:

gpt -r -vv show /dev/disk0

gpt remove -i 3 disk0
gpt remove -i 2 disk0
gpt remove -i 1 disk0

Como la EFI y el Recovery HD suelen tener tamaños fijos, podemos calcular el bloque inicial y final de su volumen principal.

Primero reconstruimos el EFI con:

gpt add -b 40 -i 1 -s 409600 -t C12A7328-F81F-11D2-BA4B-00A0C93EC93B disk0

A continuación, calculamos el tamaño del volumen principal: el bloque inicial es 409640. El bloque final se ha encontrado en la sección "¿Dónde empieza la partición del Recovery HD? 1 menos que el bloque de inicio del Recovery HD. El tamaño es entonces StartBlockOfRecoveryHD-409640.

Si has encontrado un JHFS+ clásico antes, el siguiente comando debería arreglar la partición 2:

gpt add -b 409640 -i 2 -s StartBlockOfRecoveryHD-409640 -t 48465300-0000-11AA-AA11-00306543ECAC disk0

Si ha encontrado una partición CoreStorage antes, el siguiente comando debería arreglar la partición 2:

gpt add -b 409640 -i 2 -s StartBlockOfRecoveryHD-409640 -t 53746F72-6167-11AA-AA11-00306543ECAC disk0

Para reconstruir el disco duro de recuperación entre:

gpt add -b StartBlockOfRecoveryHD -i 3 -s 1269536 -t 426F6F74-0000-11AA-AA11-00306543ECAC disk0

Vuelve a montar el disco0 con:

diskutil mountDisk disk0

Salga de la Terminal, inicie la Utilidad de Discos y compruebe su volumen principal (probablemente el Macintosh HD) en busca de errores e intente repararlos si es necesario.
Si ha encontrado una partición de CoreStorage antes, puede que tenga que reiniciar a su unidad de disco duro antes de reparar los volúmenes con la Utilidad de Discos, porque el volumen lógico de CoreStorage podría no ser reconocido/montado correctamente. En su configuración - 1 disco principal y la unidad de disco duro - el volumen lógico debería ser disk2.

Espero que esto resuelva tus problemas.

Si tienes problemas (por ejemplo, no puedes encontrar el sector de inicio adecuado de tu Recovery HD), tienes dudas o preguntas, ¡detente inmediatamente y contáctame con un comentario @klanomath!

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