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.

Clasificado en artículos de:

comment reply