sábado, febrero 26, 2005

Fallo de Arranque de Windows XP

Cuando instalo Fedora, no se que le hace a la partición que me altera la geometría del disco, y el grub después no la entiende y por supuesto, no arranca en Windows.
Me da un error del tipo:

Hard Disk Error

The stage2 or stage1.5 is being read from a hard disk, and the attempt to determine the size and geometry of the hard disk failed.

Total que me tuve que ir a un foro y ver que se hacía:

Windows, a pesar de acceder al disco duro en modo LBA, necesita para arrancar una "buena" tabla CSH (Cabezal-Cilindro-Sector), que es como una traducción de la geometría real del disco duro (el modo LBA pasa de la geometría, numera los sectores todos seguidos, de 0 a un montón). Se ve que grub, durante la instalación, modifica esta tabla, haciendo imposible el arranque de windows, creo que esto es porque el kernel 2.6.x también hace su propia interpretación geométrica del disco, cuyos valores no coinciden con la traducción de la BIOS. Esto no se soluciona haciendo /fdisk/mbr o fixmbr, porque la tabla ésa no está en el mbr.

Se hace lo siguiente:
Desde el terminal de root, hay que escribir el siguiente comando:

sfdisk -d /dev/hda | sfdisk --no-reread -H255 /dev/hda

Pero a mi no me coló a la primera, porque al obtener la informacion de la partición con sfdisk me da algunos warning, total que hay que quitarsela.

sfdisk -d /dev/hda > TablaParticiones.txt

Editas el fichero borrando los warnings, debe quedar algo así:

# partition table of /dev/hda
unit: sectors
[y aquí a continuación la tablita con la información]

y pruebas otra vez

cat TablaParticiones.txt | sfdisk --no-reread -H255 /dev/hda

Con el 2º comando lo que estamos haciendo es cambiar el número de cabezales (H) de 16 a 255 (antes de hacer esto podéis comprobar que el número que tenéis es 16, haciendo sfdisk -g). El número de cilindros es mejor no tocarlo, ya que se cambia automáticamente al cambiar H. Puede ocurrir que tras ejecutar el comando os diga:

I don't like these partitions - nothing changed.
(If you really want this, use de --force option)

en cuyo caso el 2º comando hay que ejecutarlo así:

sfdisk --no-reread --force -H255 /dev/hda

Y ya está. Después de hacer eso a lo mejor os dice que hay no sé qué ocupado y que ejecutes mksf y que reinicies... yo pasé de eso.

1 Comments:

At sábado, 26 febrero, 2005, Blogger Juanma Lopez said...

Ese fallo es del kernel 2.6.5, es un bug que tiene ese kernel. Si lo actualizas al 2.6.7 o mayor deja de pasar, y no hace falta armar esos frikismos con la tabla de particiones.

 

Publicar un comentario

<< Home