Gentoo Logo

Renuncia de responsabilidad: Este documento ya no es válido y carece de soporte.


[ << ] [ < ] [ Inicio ] [ > ] [ >> ]


4. Preparar los discos

Contenido:

4.a. Introducción a Dispositivos de Bloque

Dispositivos de Bloque

Examinaremos de forma detallada los aspectos de Gentoo Linux así como Linux en general que tengan que ver con discos, sistemas de ficheros de Linux, particiones y dispositivos de bloque. Una vez esté familiarizado con las entrañas de los discos y sistemas de ficheros, le guiaremos a través del proceso de creación de particiones y sistemas de ficheros de tu instalación Gentoo Linux.

Para empezar, explicaremos el término dispositivos de bloque. Quizás el dispositivo de bloque más conocido es el que representa la primera unidad de disco llamada /dev/sda. Las unidades SCSI y Serial ATA son etiquetadas mediante /dev/sd*; incluso las unidades IDE son conocidas como /dev/sd* con el nuevo framework libata del kernel. Si está utilizando el antigo framework de unidades, entonces la primera unidad IDE será /dev/hda.

Los dispositivos de bloque mencionados anteriormente representan una interfaz abstracta de disco. Las aplicaciones pueden hacer uso de estas interfaces para interactuar con el disco duro de la máquina sin importar el tipo de unidad que tienes: IDE, SCSI, o cualquier otra. La aplicación puede simplemente dirigirse al almacenamiento en el disco como a una serie de bloques de acceso aleatorio de 512-bytes situados de forma contigua.

Particiones

Aunque teóricamente es posible utilizar el disco duro completo para albergar la instalación Linux, esto casi nunca se hace. En su lugar, los dispositivos de bloque enteros se dividen en partes más manejables y pequeñas. En los sistemas éstas se llaman particiones.

Las particiones se dividen en tres tipos: primarias, extendidas y lógicas.

La partición primaria es aquella que almacena su información en el MBR (registro principal de arranque). Ya que el MBR puede almacenar hasta 512 bytes, solo pueden definirse cuatro particiones primarias (por ejemplo, desde /dev/sda1 hasta /dev/sda4).

Una partición extendida es una partición primaria especial (entendemos que la partición extendida debe ser una de las cuatro posibles particiones primarias) la cual contiene más particiones. Al principio no existía este tipo de partición, pero como cuatro primarias eran muy pocas, se diseñó para extender el esquema de particionamiento sin perder la compatibilidad inversa.

Una partición lógica es aquella que está dentro de la partición extendida. En otras palabras, estas particiones no se definen dentro del MBR, sino que se declaran dentro de la partición extendida.

4.b. Diseñar un Esquema de Particionamiento

Esquema de Particionamiento Predeterminado

Aviso: El microcódigo de NetWinder, NeTTrom, solo puede leer particiones ext2 de manera fiable, de modo que debemos tener una partición ext2 de arranque por separado.

ISi no está interesado en diseñar un esquema de particionamiento particular para el sistema, puede usar del esquema dispuesto en este manual:

Partición Sistema de Ficheros Tamaño Descripción
/dev/sda1 ext2 32M Partición de arranque
/dev/sda2 (swap) 512M Partición de intercambio
/dev/sda3 ext4 El resto del disco Partición de raíz

Si está interesado en conocer el tamaño que debería tener una partición, o incluso cuantas particiones necesita, continué leyendo. En caso contrario, siga con el particionamiento del disco leyendo Utilizar fdisk para particionar su disco.

¿Cuántas? y ¿de qué tamaño?

El número de particiones es altamente dependiente del entorno particular. Por ejemplo, si la máquina tiene muchos usuarios, lo más probable es que desee tener /home en una partición separada para aumentar la seguridad y facilitar los respaldos. Si está instalando Gentoo para un servidor de correos, debe tener /var en una partición separada ya que es allí dónde se almacena todo el correo. Asimismo, una buena elección de sistema de ficheros optimizará el rendimiento del equipo. Los servidores de juegos deben disponer de una partición /opt, ya que la mayoría de juegos se instalan allí. Las razones para estas recomendaciones son similares a las del caso de /home: seguridad y salvaguarda de datos. Es recomendable darle un tamaño grande a /usr: no solamente contiene la mayoría de las aplicaciones, sino que el propio árbol de Portage ocupa más de 500 Mbytes, sin contar las fuentes que guarda también.

Como puede ver, todo depende de lo que quiera conseguir. Tener particiones o volúmenes separados tiene las siguientes ventajas:

  • Puede elegir el mejor sistema de ficheros para cada partición o volumen
  • El equipo en su totalidad quedará sin espacio si una herramienta o aplicación escribiera datos continuamente al volumen o partición
  • Si es el caso, el tiempo dedicado a las comprobaciones de integridad de sistemas de fichero se reduce ya que las éstas pueden ser hechas en paralelo (esta ventaja es mayor con múltiples discos que con múltiples particiones)
  • Podemos mejorar la seguridad montando algunas particiones en modo solo lectura, nosuid (los setuid bits se ignoran), noexec (los bits de ejecución se ignoran), etc.

Sin embargo, tener múltiples particiones tiene también desventajas. Si no se configuran adecuadamente, obtendrá un sistema con mucho espacio vacío en una partición y ninguno en otra. Otra contrariedad es que las particiones separadas - especialmente las que se utilizan para puntos de montaje importantes como /usr o /var - a menudo requieren que sea el administrador el que arranque el sistema con un sistema de ficheros de inicio en RAM (initramfs) para montar la partición antes de que otros guiones de inicio se ejecuten. Este no es siempre el caso, por lo que sus resultados pueden ser diferentes.

También, existe un límite de 15 particiones para SCSI y SATA.

Como ejemplo de un esquema de particionamiento usaremos un disco duro de 20 Gb de un portátil para fines de demostración (incluye servidor web, servidor de correo, gnome, etc.):

Listado de Código 2.1: Ejemplo de particionamiento

$ df -h
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/sda5     ext4    509M  132M  351M  28% /
/dev/sda2     ext4    5.0G  3.0G  1.8G  63% /home
/dev/sda7     ext4    7.9G  6.2G  1.3G  83% /usr
/dev/sda8     ext4   1011M  483M  477M  51% /opt
/dev/sda9     ext4    2.0G  607M  1.3G  32% /var
/dev/sda1     ext2     51M   17M   31M  36% /boot
/dev/sda6     swap    516M   12M  504M   2% <not mounted>
(Espacio sin particionar para uso futuro: 2 Gb)

/usr parece estar bastante llena (83%), pero una vez que todo el software esté instalado no tenderá a llenarse más. Aunque asignar unos cuantos gigabytes de espacio a /var puede parecer excesivo, recuerde que Portage utiliza esta partición por defecto para compilar paquetes. Si quiere mantener /var de un tamaño razonable, cómo 1 GB, necesitará modificar la variable PORTAGE_TMPDIR en /etc/make.conf para apuntar a una partición con espacio libre suficiente para compilar paquetes muy grandes como LibreOffice.

4.c. Utilizar fdisk para particionar su disco

Las siguientes instrucciones explican como particionar el disco duro según el esquema descrito anteriormente:

Partición Descripción
/dev/sda1 Partición de arranque (boot)
/dev/sda2 Partición de intercambio (swap)
/dev/sda3 Partición de raíz (root)

Cambie el esquema de particionamiento según sus propias preferencias.

Examinar el Esquema de Particionamiento Actual

fdisk es una popular y potente herramienta que permite dividir el disco en particiones. Arranque fdisk sobre su unidad de disco (en nuestro ejemplo usamos el dispositivo de disco /dev/sda):

Listado de Código 3.1: Ejecutar fdisk

# fdisk /dev/sda

Una vez que fdisk esté en ejecución, el programa ofrecerá el siguiente símbolo de espera de órdenes:

Listado de Código 3.2: Símbolo de espera de órdenes de fdisk

Command (m for help):

Teclee p para mostrar el esquema de particionamiento actual:

Listado de Código 3.3: Un ejemplo de particionamiento

Command (m for help): p

Disk /dev/sda: 240 heads, 63 sectors, 2184 cylinders
Units = cylinders of 15120 * 512 bytes

Device Boot    Start       End    Blocks   Id  System
/dev/sda1             1        14    105808+  83  Linux
/dev/sda2            15        49    264600   82  Linux swap
/dev/sda3            50        70    158760   83  Linux
/dev/sda4            71      2184  15981840    5  Extended
/dev/sda5            71       209   1050808+  83  Linux
/dev/sda6           210       348   1050808+  83  Linux
/dev/sda7           349       626   2101648+  83  Linux
/dev/sda8           627       904   2101648+  83  Linux
/dev/sda9           905      2184   9676768+  83  Linux

Command (m for help):

Este disco en particular está configurado para albergar siete sistemas de ficheros Linux, cada partición con su correspondiente etiqueta "Linux", así como una partición de intercambio (swap) que aparece con la etiqueta "Linux swap".

Eliminar todas las Particiones

Primero eliminaremos todas las particiones existentes en el disco. Teclee d para eliminar una partición, seguido por intro. Por ejemplo, para borrar una partición existente en /dev/sda1:

Listado de Código 3.4: Eliminar una partición

Command (m for help): d
Partition number (1-4): 1

La partición se ha marcado para ser borrada. Ya no aparecerá si teclea p, pero no será eliminada hasta que guarde los cambios realizados. Si comete una equivocación y desea abortar los cambios, teclee q inmediatamente y pulse intro; las particiones no serán eliminadas.

Ahora, asumiendo que intenta eliminar todas las particiones existentes del disco duro, debe teclear p en forma repetida para ver el listado de particiones y pulsar d junto con el número de la partición para borrarlas. Finalmente, acabará teniendo una tabla de particiones vacía:

Listado de Código 3.5: Una tabla de particiones vacía

Disk /dev/sda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot    Start       End    Blocks   Id  System

Command (m for help):

Ahora que la tabla de particiones en memoria está vacía, estamos listos para crear nuevas particiones. Usaremos el esquema predeterminado, tal como hemos acordado anteriormente. ¡Claro está, que no debe seguir estas instrucciones al píe de la letra si no desea tener una tabla de particiones exactamente igual que la nuestra!

Creación de una Partición de Arranque

Primero debemos crear una pequeña partición de arranque. Teclee n para crear esta nueva partición, y luego p para seleccionar una partición primaria, siguiendo por 1 para elegirla como primera partición primaria. Al solicitar la introducción del primer cilindro, pulse intro y cuando pida el último cilindro, escriba +32M para crear una partición de 32 Mbyte:

Listado de Código 3.6: Crear una partición de arranque

Command (m for help): n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-3876, default 1): (Pulse Intro)
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-3876, default 3876): +32M

Ahora al teclear p, debe ver la siguiente salida:

Listado de Código 3.7: Una partición creada

Command (m for help): p

Disk /dev/sda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot    Start       End    Blocks   Id  System
/dev/sda1          1        14    105808+  83  Linux

Necesitamos hacer que esta partición sea arrancable. Teclee a para marcarla como arrancable. Si escribe p de nuevo, verá que un * ha aparecido en la columna "Boot".

Creación de una Partición de Intercambio

Ahora vamos a crear la partición de intercambio. Para hacerlo, teclee n para crear una nueva partición y luego p para decirle a fdisk que sea una partición primaria. Entonces teclee 2 para crear la segunda partición primaria, /dev/sda2 en nuestro caso. Cuando el sistema pida el valor del primer cilindro, pulse intro y cuando pida el valor del último, teclee +512M para crear una partición de 512 Mbytes. Cuando lo haya hecho, teclee t para determinar el tipo de partición, 2 para seleccionar la partición recién creada y luego 82 para fijarla como "Linux Swap". Completados estos pasos, con pulsar p visualizaremos la tabla de particiones, que debe ser similar a ésta:

Listado de Código 3.8: Listado de particiones luego de crear la partición de intercambio

Command (m for help): p

Disk /dev/sda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot    Start       End    Blocks   Id  System
/dev/sda1 *        1        14    105808+  83  Linux
/dev/sda2         15        81    506520   82  Linux swap

Creación de la Partición de Raíz

Finalmente, crearemos la partición raíz. Introduzca n para crear la nueva partición, p para marcarla como primaria. Luego teclee 3 para crear la tercera partición primaria, /dev/sda3, según nuestro ejemplo. Al pedir el valor del primer cilindro de la partición pulsamos intro, mientras que al pedir el valor del último cilindro, también le damos a intro para crear una partición que ocupe el espacio restante en el disco. Tras completar estos pasos, introducimos p para ver la tabla de particiones que debe parecer mucho a la siguiente:

Listado de Código 3.9: Listado de particiones luego de crear la partición raíz

Command (m for help): p

Disk /dev/sda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot    Start       End    Blocks   Id  System
/dev/sda1 *        1        14    105808+  83  Linux
/dev/sda2         15        81    506520   82  Linux swap
/dev/sda3         82      3876  28690200   83  Linux

Almacenamiento de la Tabla de Particiones

Para guardar el esquema de particionamiento y salir del fdisk tecleamos w.

Listado de Código 3.10: Guardado y salida de fdisk

Command (m for help): w

Ahora que las particiones están creadas, puede proseguir con la Creación de Sistemas de Ficheros.

4.d. Creación de Sistemas de Ficheros

Introducción

Creadas las particiones, debemos formatearlas para poder colocarles un sistema de ficheros. Si no le importa el tipo de sistema de ficheros que desee utilizar y está conforme con nuestra elección por defecto, continúe con la sección Creación de Sistema de Ficheros en una Partición. En caso contrario, siga leyendo para ver qué sistemas de ficheros puede utilizar ...

Sistemas de ficheros

Varios sistemas de ficheros están disponibles. Algunos de ellos se encontraron estables en la arquitectura arm mientras que otros no. Los sistemas de ficheros ext2, ext3 y ext4 se consideran estables. JFS, XFS y ReiserFS podrían funcionar pero necesitan más pruebas. Si se es aventurero, pueden probarse otros sistemas de ficheros.

ext2 es un sistema de ficheros Linux probado, pero no dispone de soporte para transacciones, lo que significa que las comprobaciones rutinarias al arrancar pueden tardar bastante tiempo. Ahora, hay muchas opciones alternativas, sistemas de ficheros de nueva generación con soporte para transacciones cuya integridad puede ser verificada con mayor rapidez, por lo que gozan de mayor popularidad. Los sistemas de ficheros transaccionales previenen retrasos durante el reinicio del equipo, incluso cuando el sistema de ficheros está en un estado inconsistente.

ext3 es la versión transaccional de ext2, que proporciona soporte para una rápida recuperación además de otros modos mejorados de funcionamiento como registro completo y ordenado de datos. Utiliza un árbol HTree como índice que permite un alto rendimiento en casi todas las situaciones. En resumen ext3 es un sistema de ficheros muy bueno y fiable.

El sistema de ficheros ext4 se creó como una bifurcación en el código (fork) del sistema de ficheros ext3, incorporando nuevas características, mejoras de rendimiento y eliminación de los limites de tamaño realizando cambios moderados en el formato del disco. Puede trabajar con volúmenes de hasta 1 EB y con un tamaño máximo de fichero de 16 TB. En lugar de la asignación de bloques usando mapas de bits que emplean los sistemas de ficheros clásicos ext2/3, ext4 utiliza extents (en inglés), lo cual mejora el rendimiento con los ficheros grandes y reduce la fragmentación. Ext4 también ofrece un algoritmo más sofisticado de asignación de bloques (asignación demorada y asignación múltiple de bloques) ofreciendo al controlador del sistema de ficheros más formas de optimizar la disposición de los datos en el disco. El sistema de ficheros ext4 es un compromiso entre la estabilidad del código para producción y el deseo de introducir extensiones a un sistema de ficheros que ya casi tiene una década. Ext4 es el sistema de ficheros recomendado para las plataformas de propósito general.

Si va a instalar Gentoo en un sistema con poco espacio de disco (menos de 8GB), entonces necesitará indicar a ext2, ext3 o ext4 (si está disponible) que reserve suficientes nodos-i cuando cree el sistema de ficheros. La orden mke2fs utiliza el ajuste "bytes por nodo-i" (bytes-per-inode) para calcular cuántos nodos-i debe tener el sistema de ficheros. Al lanzar mke2fs -T small /dev/<device> (ext2) o mke2fs -j -T small /dev/<device> (ext3/ext4) el número de nodos-i normalmente será el cuádruple respecto al sistema de ficheros ya que su "bytes-per-inode" se reduce de uno cada 16KB a uno cada 4KB. Puede ajustar esto aún más lanzando mke2fs -i <ratio> /dev/<dispositivo> (ext2) o mke2fs -j -i <ratio> /dev/<dispositivo> (ext3/ext4).

JFS de IBM es un sistema de ficheros de alto rendimiento con soporte transaccional. JFS es un sistema de ficheros ligero, rápido y fiable, basado en un árbol B+ con un buen rendimiento bajo varias condiciones.

ReiserFS es un sistema de ficheros B+ (basado en árboles balanceados) que tiene un gran rendimiento, especialmente cuando trata con muchos ficheros pequeños a costa de emplear más ciclos de CPU. ReiserFS parece tener menos mantenimiento que otros sistemas de ficheros.

XFS es un sistema de ficheros transaccional el cual viene con un juego de características robustas y está optimizado para ser escalable. XFS parece ser menos robusto ante fallos hardware.

Creación de Sistema de Ficheros en una Partición

Para crear un sistema de ficheros en una partición o volumen existen herramientas específicas para cada sistema de ficheros:

Sistema de Ficheros Orden para su creación
ext2 mkfs.ext2
ext3 mkfs.ext3
ext4 mkfs.ext4
reiserfs mkreiserfs
xfs mkfs.xfs
jfs mkfs.jfs

Por ejemplo, para formatear la partición de arranque (/dev/sda1 según el ejemplo) en formato ext2 y la partición de raíz (/dev/sda3 según el ejemplo) en formato ext4, utilizaría las siguientes órdenes:

Listado de Código 4.1: Creación de un sistema de ficheros en una partición

# mkfs.ext2 /dev/sda1
# mkfs.ext4 /dev/sda3

Ahora puede crear los sistemas de ficheros sobre sus particiones (o volúmenes lógicos) recién creados.

Activar la Partición de Intercambio

mkswap es la orden utilizada para inicializar particiones de intercambio:

Listado de Código 4.2: Inicialización de una partición de intercambio

# mkswap /dev/sda2

Para activar la partición, utilice la orden swapon:

Listado de Código 4.3: Activar la partición de intercambio

# swapon /dev/sda2

Cree y active la partición de intercambio con las órdenes mencionadas arriba.

4.e. Montaje

Ahora que las particiones están inicializadas y albergan sistemas de ficheros, es hora de montarlas. Utilice la orden mount. No olvides de crear puntos de montaje necesarios para cada partición que has creado. Como ejemplo montamos la partición de raíz y de arranque:

Listado de Código 5.1: Montaje de particiones

# mount /dev/sda3 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mount /dev/sda1 /mnt/gentoo/boot

Nota: Si quiere que su /tmp resida sobre una partición diferente, asegúrese de cambiar los permisos después de montarla: chmod 1777 /mnt/gentoo/tmp. Lo mismo debe ser aplicado a /var/tmp.

También necesitamos montar el sistema de ficheros proc (la interfaz virtual del núcleo) en /proc. Pero primero necesitamos situar nuestros ficheros en las particiones.

Continúe con Instalación de Ficheros de Instalación de Gentoo.


[ << ] [ < ] [ Inicio ] [ > ] [ >> ]


Imprimir

Ver completo

Página actualizada 23 de enero, 2014

Sumario: Para poder instalar Gentoo, se deben crear las particiones necesarias. Este capítulo describe cómo particionar un disco para uso futuro.

Sven Vermeulen
Autor

Grant Goodyear
Autor

Roy Marples
Autor

Daniel Robbins
Autor

Chris Houser
Autor

Jerry Alexandratos
Autor

Seemant Kulleen
Desarrollador Gentoo x86

Tavis Ormandy
Desarrollador Gentoo Alpha

Jason Huebel
Desarrollador Gentoo AMD64

Guy Martin
Desarrollador Gentoo HPPA

Pieter Van den Abeele
Desarrollador Gentoo PPC

Joe Kallar
Desarrollador Gentoo SPARC

Mike Frysinger
Desarrollador Gentoo *

John P. Davis
Editor

Pierre-Henri Jondot
Editor

Eric Stockbridge
Editor

Rajiv Manglani
Editor

Jungmin Seo
Editor

Stoyan Zhekov
Editor

Jared Hudson
Editor

Colin Morey
Editor

Jorge Paulo
Editor

Carl Anderson
Editor

Jon Portnoy
Editor

Zack Gilburd
Editor

Jack Morgan
Editor

Benny Chuang
Editor

Erwin
Editor

Joshua Kinard
Editor

Stuart Longland
Editor

Tobias Scherbaum
Editor

Xavier Neys
Editor

Gerald J. Normandin Jr.
Revisor

Donnie Berkholz
Revisor

Ken Nowack
Revisor

Lars Weiler
Contribuidor

John Christian Stoddart
Traductor

José María Alonso
Traductor

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.