Anterior Siguiente Indice

5. Traslación de disco al núcleo en discos IDE.

Si el núcleo de Linux detecta la presencia de algún gestor de disco en un disco IDE, tratará de remapear el disco del mismo modo en que lo haya hecho el gestor de disco, de modo que Linux `vea' el mismo particionamiento del mismo que bajo DOS con OnTrack o EZ-Drive.

No obstante, NO se produce remapeo alguno cuando se especifica la geometría en la línea de comandos N del T: Paso de parámetros a LILO o loadlin al arrancar Linux , por lo que una opción como `hd=cyls,heads,secs' puede acabar perfectamente con la compatibilidad de un gestor de disco.

El remapeo se lleva a cabo probando con 4, 8, 16, 32, 64, 128, 255 Cabezas (manteniendo H*C constante) hasta que o bien C <= 1024 o H = 255.

Los detalles vienen a continuación. --los títulos de las subsecciones son las que aparecen en los mensajes de arranque correspondientes--. Tanto aquí como en cualquier otra parte de este texto, los tipos de partición se darán en notación hexadecimal.

5.1 EZD

EZ-Drive se detecta por el hecho de que la primera partición primaria es de tipo 55. La geometría se remapea como se describió anteriormente, desechando la tabla de particiones del sector 0 --en lugar de ello, se lee del sector 1--. Los números de bloque del disco no sufren cambio alguno, tan sólo se redirigen las operaciones de escritura al sector 0 al sector 1. Se puede cambiar este comportamiento recompilando el kernel con la definición

#define FAKE_FDISK_FOR_EZDRIVE  0 

en ide.c.

5.2 DM6:DDO

OnTrack DiskManager (en el primer disco) se detecta por el hecho de que la primera partición primaria es de tipo 54. La geometría se remapea como se describió anteriormente, y el disco se desplaza enteramente 63 sectores (por lo que el antiguo sector 63 pasa a ser el sector 0). Posteriormente, un MBR nuevo (con su correspondiente tabla de particiones) es leído del nuevo sector 0. Por supuesto este desplazamiento se lleva a cabo para hacer sitio al DDO --a esto se debe a que no se produzca dicho desplazamiento en los demás discos--.

5.3 DM6:AUX

OnTrack DiskManager (en otros discos) es detectado por la circunstancia de que la primera partición primaria es de tipo 51 o 53. La geometría se remapea como describimos antes.

5.4 DM6:MBR

Una versión más antigua de OnTrack DiskManager se detecta no por el tipo de partición, sino por la firma. (Se comprueba que el offset encontrado en los bytes 2 y 3 del MBR no es superior a 430, la abreviatura encontrada en este offset es igual a 0x55AA, y está seguido por un byte impar.). Nuevamente, la geometría se remapea como anteriormente.

5.5 PTBL

Para finalizar, hay un test que intenta deducir si existe traslación a partir de los valores start y end N del T: comienzo y final respectivamente de las particiones primarias: Si alguna partición posee un cilindro de comienzo y fin menor de 256, sectores de comienzo y fin 1 y 63 respectivamente, y como cabezas finales 31, 63 o 127, entonces dado que acabar las particiones en el límite de un cilindro es algo ``no estandarizado'' y dado que además los interfaces IDE usan como mucho 16 cabezas, se deduce que está activa alguna traslación de BIOS, y la geometría se remapea para usar 32, 64 o 128 cabezas respectivamente. (Puede que haya una inconsistencia aquí, y genhd.c, ¿no debería haber comprobado dos bits mayores por orden del número de cilindro?). No obstante, no se lleva a cabo remapeo alguno cuando la noción que se tiene en este momento de la geometría ya es de 63 sectores por pista con al menos tantas otras cabezas (dado que esto significaría que el remapeo ya se ha producido).


Anterior Siguiente Indice