Anterior Siguiente Indice

3. Geometría de los discos y particiones.

Si tiene varios sistemas operativos en sus discos, cada uno puede estar utilizando una o varias particiones. El más mínimo desacuerdo en cuanto a dónde están dichas particiones puede acarrear catastróficas consecuencias.

El MBR contiene una tabla de particiones describiendo donde están las particiones (primarias). Hay 4 entradas en dicha tabla, para 4 particiones primarias N del T: o para 3 primarias y 1 extendida , y cada una tiene el siguiente aspecto:

struct partition {
        char active;    /* 0x80: arrancable, 0: no arrancable */
        char begin[3];  /* CHS para el primer sector */
        char type;
        char end[3];    /* CHS para el ultimo sector */
        int start;      /* numero de sector en 32 bit (contado desde 0) */
        int length;     /* numero de sectores 32 en bit */
};
(donde CHS se refiere a Cilindros/Cabezas/Sectores).

Por tanto, la información es redundante: la localización de la partición se da tanto por los campos de 24 bits begin y end, como por los campos de 32 bits start y length.

Linux sólo usa los campos start y length, y puede por tanto manejar particiones no mayores de 2^32 sectores, o lo que es lo mismo, particiones de más de 2 TeraBytes. Lo cual es doscientas veces el tamaño de los discos disponibles actualmente, por lo que será suficiente para los próximos 10 años o así.

Desafortunadamente, la llamada a la INT13 de la BIOS emplea los CHS codificados en tres bytes, con 10 bits para el número de cilindro, 8 para el número de cabeza, y 6 para el numero de sector de pista.

Los números posibles de cilindro son 0-1023, de cabeza 0-255, y de sector de pista 1-63 (sí, los sectores de una pista se cuentan desde 1, no desde 0). Con esos 24 bits se puede acceder a 8455716864 bytes (7.875 GB), doscientas veces más de las capacidades de disco disponibles en 1983.

Todavía más desafortunadamente, los interfaces IDE estándar permiten 256 sectores/pista, 65536 cilindros y 16 cabezas. Esto por sí mismo permite el acceso a 2^37 = 137438953472 bytes (128 GB), pero combinado con la restricción de la BIOS a 63 sectores y 1024 cilindros hace que sólo queden 528482304 bytes (504 MB) accesibles.

Esto no es suficiente para los discos de hoy en día, por lo que la gente recurre a todo tipo de triquiñuelas, tanto vía hardware como software.


Anterior Siguiente Indice