A.1. Conceptos básicos sobre el disco duro
Los discos duros cumplen una función muy sencilla — pueden contener datos y recuperarlos de manera segura si se lo pedimos.
Al discutir temas como la partición de discos es importante conocer el hardware subyacente. No obstante, la teoría es muy complicada y expansiva, únicamente los conceptos básicos se explicarán aquí. Este apéndice usa un set de diagramas simplificado de un controlador de disco para ayudar a explicar el proceso y la teoría detrás de las particiones.
A.1.1. Sistemas de archivos
Para almacenar datos en un controlador de disco, primero debe dar formato al controlador de disco. Al formatear (generalmente conocido como "Crear un sistema de archivos") se escribe información al controlador, creando la orden fuera del espacio vacío en un controlador sin formato.
Un pequeño porcentaje del espacio disponible del controlador sirve para almacenar los datos relativos al sistema de archivos y puede considerarse como sobrecarga.
Un sistema de archivos divide el espacio restante en segmentos pequeños. Para Linux, estos segmentos se conocen como bloques.
Tenga en cuenta que no hay ningún sistema de archivos universal. Como muestra
Figura A.3, “Unidad de disco duro con un sistema de ficheros diferente”, en una unidad de disco puede haber uno o varios sistemas de archivos distintos. Los distintos sistemas de archivos tienden a ser incompatibles; es decir, que posiblemente un sistema operativo que admita un sistema de archivos (o un grupo de tipos de sistema de archivos relacionados) no admita otro. Sin embargo, Red Hat Enterprise Linux, por ejemplo, es compatible con una gran variedad de sistemas de archivos (incluyendo muchos que comúnmente utilizan otros sistemas operativos), lo que facilita el intercambio de datos entre distintos sistemas de archivos.
Escribir un sistema de archivos es apenas el primer paso. El objetivo de este proceso es realmente el de almacenar y recuperar datos. Observe la figura a continuación que muestra un disco de controlador después de que algunos datos han sido escritos eń él.
Tal y como muestra
Figura A.4, “Unidad de disco duro con datos escritos”, algunos de los bloques anteriormente vacíos ahora contienen datos. Sin embargo, con solo mirar esta imagen, no podemos determinar exactamente el número de archivos que contiene esta unidad. Es posible que solo haya un archivo o muchos, ya que todos ellos emplean al menos un bloque y algunos utilizan varios. Otro punto importante a tener en cuenta es que los bloques usados no tienen por qué estar ubicados juntos formando una región contigua; los bloques usados y los que están sin usar se pueden entremezclar. Esto se denomina
fragmentación. La fragmentación puede ser clave a la hora de modificar el tamaño de una partición existente.
Con el paso del tiempo y el avance de las tecnologías relacionadas con el ordenador, también las unidades de disco han cambiado. En concreto, han cambiado de una forma específica -- los discos son más grandes. No grandes por tamaño, sino por capacidad. Y ha sido esta capacidad la que ha llevado a un cambio en la manera en que se utilizan los discos.
A.1.2. Particiones: Convertir un disco en muchos otros
Los controladores de discos pueden dividirse en particiones. Cada partición se puede acceder como si fuese un disco aparte. Esto se hace por medio de una tabla de particiones.
Hay varias razones para asignar espacio de disco en particiones de disco separadas, por ejemplo:
Separación lógica entre los datos del sistema operativo y los datos de usuario.
Capacidad para usar diferentes sistemas
Capacidad de ejecutar múltiples sistemas operativos en una máquina
Actualmente existen dos estándares de distribución de particiones para los discos duros físicos: el registro de arranque maestro (
MBR) y la tabla de particiones GUID (
GPT).
MBR es un método más antiguo para realizar particiones de disco que se utiliza con equipos basados en BIOS.
GPT es una distribución de particiones más moderna que forma parte de la Interfaz de firmware extensible unificada (
UEFI). Esta sección y
Sección A.1.3, “Particiones en el interior de particiones — Una introducción a las particiones extendidas.” describen principalmente el esquema de partición de disco
registro de arranque maestro (
MBR). Para obtener información sobre la distribución de partición de la
tabla de particiones GUID (
GPT), consulte
Sección A.1.4, “Tabla de particiones GUID (GPT)”.
Aunque los diagramas de este capítulo muestran la tabla de particiones separada de la restante parte del disco, en realidad no es así. La tabla de particiones se guarda al comienzo del disco, antes de cualquier dato o sistema de ficheros. Sin embargo, para ser más claros la mantendremos separada.
Tal y como muestra
Figura A.5, “Disco duro con tabla de particiones”, la tabla de particiones se divide en cuatro secciones o cuatro particiones
primarias. Una partición primaria es una partición en el disco duro que solo puede contener una unidad (o sección) lógica. Cada sección puede incluir la información necesaria para definir una única partición, lo que significa que la tabla de particiones no puede definir más de cuatro particiones.
Cada elemento de la tabla de las particiones contiene importantes características relativas a la partición:
Los puntos de inicio y fin definen el tamaño de la partición y su ubicación en el disco. Los cargadores de arranque de algunos sistemas operativos utilizan la marca "activa". Es decir, que se arranca el sistema operativo de la partición marcada como "activa".
El tipo es un número que identifica el uso previsto de la partición. Algunos sistemas operativos utilizan el tipo de partición para indicar un determinado tipo de sistema de archivos, para marcar que la partición está asociada a un sistema operativo en concreto, para señalar que la partición contiene un sistema operativo que se puede arrancar o alguna combinación de esas tres opciones.
En muchos casos, hay una única partición que ocupa todo el disco, duplicando el método utilizado antes de particiones. La tabla de las particiones tiene una sola entrada utilizada, y apunta al inicio de la partición.
Hemos etiquetado esta partición como del tipo "DOS". Aunque solo se trata de uno de los varios tipos de particiones posibles que se enumeran en
Tabla A.1, “Tipos de particiones”, resulta adecuado para el fin de este análisis.
Tabla A.1. Tipos de particiones Tipo de partición | Valor | Tipo de partición | Valor |
---|
Vacío | 00 | Novell Netware 386 | 65 |
FAT DOS de 12 bits | 01 | PIC/IX | 75 |
Raíz de XENIX | 02 | MINIX antiguo | 80 |
XENIX usr | 03 | Linux/MINUX | 81 |
<=32M DOS de 16 bits | 04 | Intercambio de Linux | 82 |
Ampliado | 05 | Linux nativo | 83 |
>=32 DOS de 16 bits | 06 | Linux ampliado | 85 |
OS/2 HPFS | 07 | Amoeba | 93 |
AIX | 08 | Amoeba BBT | 94 |
AIX de arranque | 09 | BSD/386 | a5 |
Gestor de arranque OS/2 | 0a | OpenBSD | a6 |
FAT32 en Win95 | 0b | NEXTSTEP | a7 |
FAT32 en Win95 (LBA) | 0c | BSDI fs | b7 |
FAT16 en Win95 (LBA) | 0e | Intercambio BSDI | b8 |
Win95 Ampliado (LBA) | 0f | Syrinx | c7 |
Venix 80286 | 40 | CP/M | db |
Novell | 51 | acceso de DOS | e1 |
Arranque del PReP | 41 | DOS R/O | e3 |
GNU HURD | 63 | DOS secundario | f2 |
Novell Netware 286 | 64 | BBT | ff |
A.1.3. Particiones en el interior de particiones — Una introducción a las particiones extendidas.
En caso de que cuatro particiones no basten para cubrir sus necesidades, puede emplear particiones extendidas para crear más particiones. Para ello, debe establecer el tipo de una partición en "Extendida".
Una partición extendida es como una unidad de disco por derecho propio — posee su propia tabla de particiones que remite a una o más particiones (ahora llamadas
particiones lógicas, en contraposición a las cuatro
particiones primarias) contenidas en su totalidad en la propia partición extendida.
Figura A.7, “Unidad de disco con partición extendida”, muestra una unidad de disco con una partición primaria y otra extendida que contiene dos particiones lógicas (junto con algo de espacio libre sin particiones).
Como puede verse en esta figura, hay diferencia entre particiones lógicas y primarias — solo pueden existir cuatro particiones primarias, sin embargo, no hay ningún límite para el número de particiones lógicas que pueden existir. No obstante, debido a la forma en que se accede a las particiones en Linux, no es una buena idea intentar crear más de 12 particiones en el mismo disco duro.
A.1.4. Tabla de particiones GUID (GPT)
La tabla de particiones GUID (
GPT) es un nuevo esquema de partición que se basa en el uso de identificadores únicos globales (
GUID).
GPT se desarrolló para acabar con las limitaciones de la tabla de particiones
MBR, sobre todo con el espacio de almacenamiento máximo accesible limitado de un disco. A diferencia de
MBR, que no puede acceder a espacio de almacenamiento superior a 2,2 terabytes,
GPT se puede utilizar con discos duros mayores; el tamaño de disco accesible máximo es 2,2 zetabits. Además, de forma predeterminada,
GPT permite crear hasta 128 particiones primarias. Esta cifra podría ampliarse asignando más espacio a la tabla de particiones.
Los discos
GPT emplean el direccionamiento de bloques lógicos (LBA) y la distribución de la partición es la siguiente:
Para conservar la compatibilidad con los discos MBR, el primer sector (
LBA 0) de
GPT se reserva para datos de
MBR y se denomina
“MBR protector”.
El encabezado
primario de GPT empieza por el segundo bloque lógico (
LBA 1) del dispositivo. El encabezado contiene el GUID del disco, la ubicación de la tabla de particiones primaria, la ubicación del segundo encabezado de GPT, así como sumas de control CRC32 de sí mismo y la tabla de particiones primaria. También indica el número de entradas de particiones de la tabla.
La tabla de
GPT primaria incluye, de forma predeterminada, 128 entradas de particiones, cada una con un tamaño de entrada de 128 bytes, su GUID de tipo de partición y un GUID de partición único.
La
tabla secundaria de GPT es idéntica a la tabla de
GPT primaria. Se utiliza principalmente como tabla de copia de seguridad para la recuperación en caso de que la tabla de particiones primaria esté dañada.
El
encabezado de GPT secundario se encuentra en el último sector lógico del disco y se puede utilizar para recuperar la información de
GPT en caso de que el encabezado primario esté dañado. Contiene el GUID del disco, la ubicación de la tabla de particiones secundaria y el encabezado primario de
GPT, así como sumas de control CRC32 de sí mismo, la tabla de particiones secundaria y el número de posibles entradas de particiones.
Debe existir una partición de arranque BIOS para que el cargador de arranque se instale correctamente en un disco que contenga una GPT (tabla de particiones GUID). Esto incluye discos inicializados por Anaconda. Si el disco ya contiene una partición de arranque BIOS, puede reutilizarse.