Bienvenido a la wiki dedicada a los usuarios nuevos en GNU/Linux, este sitio esta orientado a ayudar a los usuarios nuevos... Si deseas contribuir, por favor crate una cuenta.

Particiones

De PUFs Wiki

Las particiones de disco son una forma usual de separar la información para mantenerla más ordenada, para que el acceso a disco sea óptimo, para no arriesgarnos a perder todo si se arruina una partición, etc.


Tabla de contenidos

[editar] Conceptos de Particiones

Cuando nació la IBM PC y su sistema operativo DOS se optó por un lamentable sistema de particionamiento que en su tiempo cumplía altamente las expectativas. El MBR (Master Boot Record - Registro Maestro de Arranque) se encuentra en el primer sector del disco rígido, en el hay información vital para el funcionamiento del sistema:

  • El código de arranque
  • La tabla de particiones

lamentablemente, al ser un solo sector, está limitado a 512 bytes, por lo cual se decidió que la tabla de particiones estaría limitada a tan solo 4 particiones. El resto del espacio podría ser utilizado para el código de arranque. Desde luego este sistema tiene una terrible falencia, y es que si el primer sector se arruina el disco queda inutilizable, pese a que tan solo sea el primer sector el arruinado. Intel ha propuesto el estándar EFI el cual entre otras cosas propone un mejor sistema de particionado y un poco más de redundancia.

¡Mentira! dirán algunos, como puede ser que esté limitado a tan solo 4 particiones si yo tengo 6. Pues bien, aquí es donde entran en juego las particiones primarias, extendidas y lógicas:

  • Primaria: Una partición primaria se encuentra en una de las 4 entradas disponibles del MBR.
  • Extendida: Una partición extendida es una partición primaria, pero esta partición se diferencia en que su contenido es otra tabla de particiones.
  • Lógica: Una partición lógica se encuentra en la tabla de particiones de una partición extendida.

de esta forma se pueden tener 6 particiones teniendo por ejemplo 3 particiones primarias y 1 extendida que contiene 3 particiones lógicas, de modo que solamente podemos crear particiones de datos en las 3 primarias y las 3 lógicas, lo cual nos da un total de 6.

También vale la pena aclarar que entre el MBR y la primera partición hay unos 64 sectores sin uso (64 sectores x 512 bytes/sector = 32 KB), esto es así por compatibilidad con el viejo DOS. Desde Linux podemos particionar de manera que no queden estos sectores libres, pero otros particionadores como Partition Magic se pueden quejar o hasta intentar reparar un disco "corrupto", además la mayoría de los particionadores dejan este espacio.


[editar] Nombres de Dispositivos

En Linux las particiones primarias se numeran de 1 a 4 (incluyendo las extendidas) y las lógicas a partir del número 5. De este modo podríamos tener las siguientes particiones en un disco SATA:

  • /dev/sda1: Primera partición primaria.
  • /dev/sda2: Segunda partición primaria.
  • /dev/sda3: Tercera partición primaria.
  • /dev/sda4: Cuarta partición primaria, extendida.
  • /dev/sda5: Primera partición lógica.
  • /dev/sda6: Segunda partición lógica.
  • /dev/sda7: Tercera partición lógica.

De modo que tendríamos 6 particiones para usar: /dev/sda1, /dev/sda2, /dev/sda3, /dev/sda5, /dev/sda6 y /dev/sda7.

Los dispositivos IDE/ATA en Linux se nombran /dev/hdX, donde X es una letra empezando en la a, de modo que /dev/hda es el primer disco IDE. Los discos SATA, las memorias flash USB, los discos SCSI e incluso los discos IDE/ATA (cuando utilizan el nuevo modelo de controladores) se nombran /dev/sdX.


[editar] Gestores de Arranque

Como dijimos, en el MBR también hay un código de arranque. El código estándar que instala Windows/DOS simplemente lee la tabla de particiones y carga el primer sector de arranque de la partición activa y ejecuta el código, casi como si se tratara de un pequeño MBR en la partición activa. Sin embargo Linux es solamente un kernel, no tiene un código de arranque en el disco rígido, de manera que esto no nos sirve; lo que debemos hacer es reemplazar el código de arranque del MBR con el código de GRUB o LILO.

[editar] GRUB

El GRand Unified Bootloader se compone de 3 etapas:

  • stage 1: Esta etapa es la principal, es la que se instala en los 512 bytes del MBR y simplemente se encarga de cargar las otras etapas.
  • stage 1.5: Esta etapa se encarga de cargar a la tercera.
  • stage 2: Esta etapa es la que se encarga de mostrar el menú, cargar el kernel, etc.

Uno se preguntará el por qué de tantas etapas; esto es así porque con los 512 bytes del MBR no se puede hacer mucho, lo mejor que puede hacer la etapa 1 es cargar en memoria sectores del disco rígido. Aquí hay dos opciones, se puede cargar la etapa 1.5 o la etapa 2; cargar la etapa 2 es un poco más dificil porque se encuentra en un sistema de archivos, de modo que puede estar fragmentada, y además si uno cambia de lugar la etapa 2 hay que reinstalar la etapa 1 en el MBR. Por otro lado, cargar la etapa 1.5 es muy sencillo, ya que esta etapa se graba en esos 63 sectores restantes sin uso al principio del disco rígido, de modo que la etapa 1 solamente tiene que leer los sectores siguientes sin preocuparse por fragmentación ni nada de eso.

La etapa 1.5 es lo suficientemente grande para poder explorar adecuadamente un sistema de archivos, y así poder cargar la etapa 2 del disco sin mayores dificultades, independientemente de la fragmentación y del sector en donde se encuentre esta última etapa. Esta etapa solamente está disponible en sistemas que tengan espacio extra como los 64 sectores libres de los que hablamos al principio.

La etapa 2, una vez en memoria, es capaz de leer del sistema de archivos el archivo /boot/menu.lst para presentar el menú de selección, cargar el kernel, los módulos, etc.

[editar] LILO

LInux LOader es mucho más sencillo que GRUB, dispone de una sola etapa, es por esto que cada vez que uno edita el archivo /etc/lilo.conf hay que grabar los cambios con el comando lilo. Este comando se encarga de leer el archivo de configuración, grabar el MBR con el nuevo menú y con la dirección de los sectores que hay que cargar en cada caso.

[editar] Gestores de Arranque Fuera del MBR

Así como es posible grabar el código de arranque en el MBR también es posible hacerlo fuera de él, desde luego esto no es posible con todas las particiones, ya que debe cumplir el requisito de que haya suficiente espacio en el primer sector de la misma para poder instalar el código de arranque, además debe haber espacio libre al principio del sector. Al menos sabemos que el sistema de archivos ext2/ext3 junto con LILO cumplen con los requisitos, de modo que podemos tener una partición ext2 con LILO y marcarla como activa, de modo que el MBR común y corriente de Windows sea capaz de iniciar LILO.


[editar] CFDISK

Cfdisk en acción
Cfdisk en acción

El programa cfdisk es una forma cómoda de particionar el disco, dispone de una interfaz muy amigable. En la parte de abajo se encuentran los botones con mensajes de ayuda, en la parte de arriba hay información sobre el disco y en la parte media de la pantalla se muestran las particiones. Para ejecutarlo basta ejecutar el comando

# cfdisk /dev/disco

Ejemplo:

# cfdisk /dev/sda

Desde luego debemos ser root.


[editar] FDISK

Una sesión de fdisk
Una sesión de fdisk

El programa fdisk es un poco más complicado que cfdisk, pero al mismo tiempo es más poderoso y flexible. La interfaz es un simple menú del cual podemos elegir opciones utilizando las letras correspondientes, los comandos más usuales son:

  • m: Nos muestra un menú de ayuda.
  • a: Marca una partición como activa.
  • d: Borrar una partición.
  • n: Crear una partición.
  • p: Mostrar la tabla de particiones.
  • q: Salir sin guardar.
  • t: Cambiar el tipo de partición.
  • u: Cambiar las unidades de cilindros a sectores y viceversa.
  • w: Escribir la tabla de particiones.

Si queremos crear una nueva partición presionamos la N seguida de Enter/Intro/Entrar a lo cual nos preguntará si queremos crear una partición primaria o lógica, si la queremos al principio o al final de la tabla de particiones, el tamaño y el tipo de partición. El tipo de partición no tiene nada que ver con el sistema de archivos que usaremos, ya que el tipo de partición es siempre 0x83 (131) para Linux y 0x82 (130) para la partición de SWAP, sin embargo la partición de Linux puede estar formateada como ext2, ext3, ReiserFS, XFS, JFS, etc. El tipo de partición simplemente establece un campo en la tabla de particiones indicando el tipo, de modo que Windows no intente leerlas, entre otras cosas, pero a Linux le da igual lo que diga.

Para ejecutar fdisk basta ejecutar el siguiente comando:

# fdisk /dev/dispositivo

Ejemplo:

# fdisk /dev/hdb

También es común utilizar fdisk con la opción -l para imprimir la tabla de particiones sin tener que entrar al programa, ejemplo:

# fdisk -l /dev/sdc


[editar] Recursos y Enlaces

Herramientas personales