1 votos

Cómo arreglar el arranque de una partición de Windows con herramientas de OS X

Tengo un sistema de triple arranque en mi Mac Book Pro de principios de 2013: OS X, Windows 7 y Ubuntu. Estoy usando rEFInd como mi gestor de arranque. Mi instalación de Windows arranca usando el arranque BIOS heredado, y OS X y Ubuntu arrancan con el arranque EFI nativo.

Todo ha estado funcionando hasta que actualicé a OS X Yosemite. Eso rompió mi Windows:

"No hay dispositivo de arranque -- inserte el disco de arranque y pulse cualquier tecla"

Supongo que debería haber hecho una copia de seguridad del sector de arranque antes de actualizar, pero ya es demasiado tarde. Como Windows arranca en modo BIOS, lee el MBR híbrido y, efectivamente, la partición de Windows no estaba marcada como de arranque. Después de marcarla como arrancable con fdisk, el mensaje cambió a:

"Falta el sistema operativo"

He comprobado el MBR con fdisk, y el GPT con gdisk que y efectivamente son compatibles y están sincronizados. Después de horas buscando en Google y probando de todo, por fin me he dado cuenta de cuál era el problema:

Unas semanas antes había redimensionado la partición de Windows, reduciendo la partición de OS X en OS X, y luego, utilizando un determinado software de Windows, haciendo crecer la partición de Windows para acomodar el nuevo espacio libre que ahora había antes de la partición de Windows. Ahora parece que ese programa actualizó SÓLO el MBR: desde el punto de vista del GPT hay un espacio no particionado antes de la partición de Windows, y desde el punto de vista del MBR ese espacio es utilizado por Windows.

Sin embargo, al instalar Yosemite, sincronizó el MBR híbrido para cumplir con el GPT, marcando la sección superior de la partición de Windows como espacio libre. ¡Ese "espacio libre", por supuesto contiene el gestor de arranque de Windows y un montón de datos!

Mi pregunta es, ¿hay alguna manera de escanear la parte aparentemente no particionada del disco, y determinar el primer sector de la partición de Windows? Supongo que es posible, pero necesito las herramientas adecuadas para ello.

A título informativo, aquí están los datos de mi GPT:

Number  Start (sector)    End (sector)  Size       Code  Name
   1              40          409639   200.0 MiB   EF00  EFI System Partition
   2          409640       731723959   348.7 GiB   AF05  Macintosh HD
   3       731723960       732993495   619.9 MiB   AB00  Recovery HD
   4       799528960       906948607   51.2 GiB    0700  WINDOWS 1
   5       906948608       977104895   33.5 GiB    0700  UBUNTU

y los datos de la RBM protectora/híbrida:

 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 1: EE 1023 254  63 - 1023 254  63 [         1 -     409639] <Unknown ID>
 2: AC 1023 254  63 - 1023 254  63 [    409640 -  731314320] <Unknown ID>
 3: AB 1023 254  63 - 1023 254  63 [ 731723960 -    1269536] Darwin Boot 
*4: 0C 1023 254  63 - 1023 254  63 [ 732993496 -  173955112] Win95 FAT32L

Observe que hay un sector de 66535465, 31,7 GiB de diferencia antes de la partición de 51,2 GiB de Windows. Cuando Windows funcionaba, veía su partición como una partición de aproximadamente 80 GiB. Por lo tanto, el inicio "real" de la partición de Windows se encuentra en algún lugar dentro de ese espacio. ¿Cómo se puede escanear?

0voto

GolDDranks Puntos 121

Voy a publicar esto como una respuesta, a pesar de que no arregló mi problema - este fue un caso perdido al final. Después de esto: Hice una copia de seguridad de la partición de Windows a mi partición de OS X:

sudo dd bs=512 if=/dev/disk0 of=windows_backup skip=732993496 count=173955112

Ahora tenía un volcado hexadecimal de 80 gigas que podía examinar con seguridad. Utilicé un editor hexadecimal para buscar todo tipo de metadatos:

  • "NTFS" (codificado en ASCII) que inicia un volumen NTFS.
  • "FILE" (codificado en ASCII) que inicia un registro de entrada de archivo en la $MFT o tabla maestra de archivos en NTFS.
  • Nombres de archivos del sistema NTFS (como "MFT", probado con UTF-16 little-endian y ASCII)

... y así sucesivamente. Pero sin éxito. Pude encontrar todo tipo de datos del volcado, pero todos los metadatos, incluyendo el registro de arranque (el primer sector del volumen), el archivo $Boot (los primeros 15 sectores después del registro de arranque), el archivo $MFT que mantiene el registro de todos los archivos del sistema de archivos, habían desaparecido.

Lo que me desconcierta es que ni siquiera pude encontrar el archivo $MFTMirr, que es el archivo de copia de seguridad de los archivos de metadatos y almacenados a mitad de camino del volumen.

Pude encontrar una copia de seguridad del sector de arranque desde su ubicación estándar, el último sector del volumen. Sin embargo, los datos eran antiguos, de la época anterior al redimensionamiento del volumen. El sector de arranque ha almacenado el offset del archivo de metadatos $MFT, pero inspeccionar las referencias era discutible, no había nada de valor allí.

Al final, llegué a la conclusión de que el volumen estaba totalmente estropeado. ¿La moraleja de la historia? El Master Boot Record híbrido es malo. Además, parece que el programa que redimensionó el volumen hizo un trabajo deficiente, al no actualizar algunos de los metadatos.

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