"our dreams of freedom have changed the world everybody lives in"
27 abr. 2008

Recuperando el arranque de Windows

Ya hemos hablado en este blog de como recuperar gestores de arranque del mundo GNU/Linux (mirar aquí), o quizá, más precisamente, de los que permiten la convivencia de ambos mundos: GNU/Linux y Windows.

Hoy se trata de ver como recuperar el arranque de Windows tocando archivos de configuración del mismo.

Os cuento lo que me ha pasado: en mi máquina conviven varios sistemas operativos, representantes de uno y otro bando. Suelo, pues, jugar bastante con las particiones del disco duro… y esto tiene sus riesgos.

En los días pasados hice un cambio que me llevó de esta tabla de particiones:



Disco /dev/sda: 80.0 GB, 80026361856 bytes

255 heads, 63 sectors/track, 9729 cylinders

Units = cilindros of 16065 * 512 = 8225280 bytes

Disk identifier: 0x0004e324



Disposit. Inicio    Comienzo      Fin      Bloques  Id  Sistema

/dev/sda1   *           1         261     2096451    6  FAT16

/dev/sda2             262        9729    76051710    5  Extendida

/dev/sda3            2332        3003     5393498   83  Linux

/dev/sda4            2332        3674     5393498   83  Linux

/dev/sda5            3675        8454    38395318+   7  HPFS/NTFS

/dev/sda6            8455        9505     8442126   83  Linux

/dev/sda7            9602        9729     1028128+  82  Linux swap / Solaris

/dev/sda8            9506        9601      771088+  83  Linux

/dev/sda9            262         2331    16627212   83  Linux



Las entradas de la tabla de particiones no están en el orden del disco


a esta otra:



Disco /dev/sda: 80.0 GB, 80026361856 bytes

255 heads, 63 sectors/track, 9729 cylinders

Units = cilindros of 16065 * 512 = 8225280 bytes

Disk identifier: 0x0004e324



Disposit. Inicio    Comienzo      Fin      Bloques  Id  Sistema

/dev/sda1   *           1         261     2096451    6  FAT16

/dev/sda2             262        9729    76051710    5  Extendida

/dev/sda3            2332        3674    10787616   83  Linux

/dev/sda5            3675        8454    38395318+   7  HPFS/NTFS

/dev/sda6            8455        9505     8442126   83  Linux

/dev/sda7            9602        9729     1028128+  82  Linux swap / Solaris

/dev/sda8            9506        9601      771088+  83  Linux

/dev/sda9            262        2331    16627212   83  Linux



Las entradas de la tabla de particiones no están en el orden del disco


Ambas salidas las he obtenido utilizando, en GNU/Linux y como root, el comando:



[root]> fdisk -l /dev/sda


Como podéis observar, el cambio ha consistido en fusionar la partición /dev/sda3 con la /dev/sda4. El sistema de particiones de GNU/Linux sigue conservando el número asignado a cada una de las particiones que prosiguen. No así el de Windows, como vemos a continuación.

La partición /dev/sda1 contiene los siguientes archivos de arranque del sistema Windows:



E:\>dir /a

 El volumen de la unidad E es PARTPRI

 El número de serie del volumen es: 4C18-2979



 Directorio de E:\



03/11/2007  21:25             4.952 Bootfont.bin

03/11/2007  21:25           250.640 ntldr

03/11/2007  21:25            47.564 NTDETECT.COM

26/04/2008  23:37               210 boot.ini

26/04/2008  21:26               210 boot.ini-previo

26/04/2008  23:51               903 fdisk.txt

17/03/2008  00:13    <DIR>          System Volume Information

16/03/2008  21:38    <DIR>          Recycled

               6 archivos        304.479 bytes

               2 dirs   2.144.174.080 bytes libres



E:\>


El archivo que "dirigía" el arranque (ahora renombrado como "boot.ini-previo") antes del cambio de particiones mencionado más arriba era este:



[boot loader]

timeout=0

default=multi(0)disk(0)rdisk(0)partition(4)\WINDOWS

[operating systems]

multi(0)disk(0)rdisk(0)partition(4)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect


Tras realizar el cambio: desaparece una partición, al intentar arrancar Windows obtenía el siguiente mensaje de error:



No se ha iniciado Windows porque el siguiente archivo falta

o está dañado:

<windows root>\system32\hal.dll

Reinstale una copia del archivo mencionado


Obviamente, yo sabía que el archivo no había desaparecido por arte de magia, y sospeché que el error se debía al cambio en las particiones. Arrancando con mi S.O. GNU/Linux (también es válido un disco de arranque) y montando la partición donde se encuentra: /dev/sda1, edité el archivo boot.ini para dejarlo tal que así:



[boot loader]

timeout=0

default=multi(0)disk(0)rdisk(0)partition(3)\WINDOWS

[operating systems]

multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect


¡Fijaos en el cambio del 4 por el 3! Es lógico, pues hemos suprimido una partición que estaba previa a la partición donde se encontraba Windows. Así, deducimos que Windows sí que renumera las particiones.

Ya sabemos una cosa más: contra la desesperación, investigación.

Dejar comentario.

Tags: Software