|
1.
Introducción a los 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 discos se dividen en dispositivos de bloque más pequeños y
manejables. En muchos sistemas se llaman particiones.
1.
Diseño de un esquema de particionamiento
Esquema de particionamiento por defecto
Si no queremos diseñar un esquema de particionamiento específico para
el sistema, podemos hacer uso del esquema utilizado en este manual.
Elegiremos el esquema de sistema de ficheros que mejor se adapte al
tipo de PowerPC donde estamos instalando.
Apple New World
Las máquinas Apple New World son bastante sencillas de configurar. La
primera partición siempre es un Apple Partition Map. Esta
partición registra la disposición del disco. Esta partición no se
puede eliminar. La siguiente partición debe ser siempre la partición
de bootstrap. Esta partición contiene un pequeño sistema de ficheros
HFS (800k) que mantiene una copia del gestor de arranque Yaboot y su
fichero de configuración. Esta partición no es la misma que la
partición /boot encontrada en otras
arquitecturas. Después de la partición de arranque, se ubican los
habituales sistemas de ficheros Linux, de acuerdo con la disposición
siguiente. La partición de intercambio es un lugar de almacenamiento
temporal usado cuando el sistema se queda sin memoria física. La
partición raíz contendrá los sistemas de ficheros donde se instalará
Gentoo. Si queremos un arranque dual, la partición OSX puede ir
en cualquier lugar después de la partición de bootstrap para
asegurar que yaboot inicie primero.
Nota:
Podría haber particiones "Disk Driver" en el disco duro como
Apple_Driver63, Apple_Driver_ATA,
Apple_FWDriver, Apple_Driver_IOKit y
Apple_Patches, usados para arrancar MacOS, por tanto, si
no las necesita, puede borrarlas inicializando el disco con la opción
i de mac-fdisk. ¡Esto borra completamente el disco! Si
tiene dudas, simplemente déjelas.
|
Nota:
Si particionó el disco con la Utilidad de Disco de Apple, podría haber
espacios de 128Mb entre particiones que Apple reserva para "uso
futuro". Éstas se pueden borrar sin peligro.
|
| Partición |
Tamaño |
Sistema de Ficheros |
Descripción |
| /dev/sda1 |
32k |
Ninguno |
Apple Partition Map |
| /dev/sda2 |
800k |
HFS |
Apple Bootstrap |
| /dev/sda3 |
512Mb |
Swap |
Linux Swap |
| /dev/sda4 |
Resto del Disco |
ext3, ext4, reiserfs, xfs |
Linux Root |
Apple Old World
Las máquinas Apple Old World son un poco más complicadas de
configurar. La primera partición es siempre una Apple Partition
Map. Esta partición guarda registro de la disposición del
disco. Esta partición no se puede eliminar. Si está usando BootX, la
configuración siguiente supone que MacOS está instalado en un disco a
parte. Si este no es el caso, habrá particiones adicionales para los
"Apple Disk Drivers" como Apple_Driver63,
Apple_Driver_ATA, Apple_FWDriver,
Apple_Driver_IOKit, Apple_Patches y la
instalación de MacOS. Si está usando Quik, necesitará crear una
partición de arranque para contener el núcleo, a diferencia de otros
métodos de arranque de Apple. Después de la partición de arranque se
encuentran los sistemas de ficheros habituales de Linux de acuerdo al
esquema siguiente. La partición de intercambio es un lugar de
almacenamiento temporal usado cuando el sistema se queda sin memoria
física. La partición root contiene los sistemas de ficheros donde
Gentoo se instala.
Nota:
Si está utilizando una máquina Apple Old World, necesitará mantener
MacOS disponible. Esta disposición asume que MacOS está instalado en
otro disco.
|
| Partición |
Tamaño |
Sistema de Ficheros |
Descripción |
| /dev/sda1 |
32k |
Ninguno |
Apple Partition Map |
| /dev/sda2 |
32Mb |
ext2 |
Quik Boot Partition (quik only) |
| /dev/sda3 |
512Mb |
Intercambio (swap) |
Linux Swap |
| /dev/sda4 |
Resto del Disco |
ext3, ext4, reiserfs, xfs |
Linux Root |
Pegasos
La distribución de particiones en el Pegasos es bastante simple
comparada con la de los Apple. La primera partición es la de arranque,
que contiene los núcleos a arrancar junto con un guión de Open
Firmware que presenta un menú al arrancar. Después de la partición de
arranque, se sitúan los sistemas de ficheros habituales de Linux,
según el siguiente esquema. La partición de intercambio es un lugar
de almacenamiento temporal usado cuando el sistema se queda sin
memoria física. La partición root contiene los sistemas de ficheros
donde Gentoo se instala.
| Partición |
Tamaño |
Sistema de Ficheros |
Descripción |
| /dev/sda1 |
32Mb |
affs1 or ext2 |
Partición de Arranque |
| /dev/sda2 |
512Mb |
Swap |
Linux Swap |
| /dev/sda3 |
Resto del Disco |
ext3, ext4, reiserfs, xfs |
Linux Root |
IBM PReP (RS/6000)
La IBM PowerPC Reference Platform (PReP) requiere una pequeña
partición PReP de arranque en la primera partición del disco, seguida
de las particiones de intercambio y raíz.
| Partición |
Tamaño |
Sistema de Ficheros |
Descripción |
| /dev/sda1 |
800k |
None |
Partición de arranque PReP (Tipo 0x41) |
| /dev/sda2 |
512Mb |
Swap |
Linux Swap (Type 0x82) |
| /dev/sda3 |
Resto del Disco |
ext3, ext4, reiserfs, xfs |
Linux Root (Type 0x83) |
Aviso:
parted es capaz de redimensionar particiones incluyendo HFS+.
Desafortunadamente pueden haber problemas redimensionando sistemas de
ficheros HFS+ con transacciones (journaling), por tanto, para mejores
resultados, podemos desactivar la transaccionalidad en Mac OS X antes
de redimensionar. Recuerde que cualquier operación de
redimensionamiento es peligrosa, ¡hágalo bajo su propia
responsabilidad! ¡Hay que asegurarse siempre de tener una copia de
seguridad de los datos antes de redimensionar!
|
Si queremos conocer el tamaño que debería tener una partición, o
incluso cuantas particiones necesitamos, hay que continuar con la
siguiente sección. En caso contrario, seguiremos con Por defecto: Uso de mac-fdisk (Apple) para
particionar el disco o Alternativa: Uso de
parted (IBM/Pegasos) para particionar el disco.
¿Cuántas y de qué tamaño?
El número de particiones que se necesitan depende mucho del entorno
particular. Por ejemplo, si la máquina tiene muchos usuarios, lo más
probable es que se quiera tener /home en una partición
separada para facilitar las tareas de copia de respaldo y aumentar la
seguridad. Si se está instalando Gentoo para un servidor de correo,
deberemos tener /var en una partición separada ya que
allí se almacena todo el correo recibido. Una buena elección del
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 en ese directorio. La razón es
similar a la mencionada para /home: seguridad y
salvaguarda de datos. Independientemente de la disposición que
elijamos, querremos definitivamente tener un gran /usr:
no solo contendrá la mayor parte de aplicaciones, también el árbol de
Portage que por sí mismo ocupa alrededor de 500MB, sin incluir las
fuentes que allí se almacenan.
Como se puede ver, todo dependerá de lo que queramos conseguir. Tener
particiones o volúmenes separados tiene las siguientes ventajas:
-
Elegimos el mejor sistema de ficheros para cada partición o volumen
-
El sistema en su totalidad no se quedará sin espacio si una
herramienta o aplicación está escribiendo datos de forma continua en
el volumen o partición
-
Si es el caso, el tiempo dedicado a las comprobaciones de integridad
de sistemas de ficheros se reduce, ya que las comprobaciones pueden
ser llevadas acabo en paralelo (sin embargo esta ventaja es mayor
con múltiples discos que con múltiples particiones)
-
La seguridad puede ser mejorada montando algunas de las particiones
en modo solo lectura, nosuid (los bits setuid 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.
1.
Por defecto: Uso de mac-fdisk (Apple/IBM) para particionar el disco
Ahora es el momento de crear las particiones con mac-fdisk:
Listado de Código 1.1: Inicio de mac-fdisk |
# mac-fdisk /dev/sda
|
Si usamos la herramienta de disco de Apple para hacerle espacio a
Linux, primero borraremos las particiones creadas previamente para
darle lugar a la nueva instalación. Usamos d en
mac-fdisk para borrarla(s). Se nos pedirá el número de la
partición a borrar. Normalmente la primera partición en las máquinas
NewWorld (Apple_partition_map) no puede ser borrada. Si queremos
empezar con un disco limpio, basta inicializarlo pulsando i,
que borrará completamente el disco, así que debe usarse con
precaución.
En segundo lugar, crearemos una partición Apple_Bootstrap
usando b. Nos preguntará cuál es el bloque
inicial. Introduciremos el número de la primera partición libre
seguido de una p. Por ejemplo sería 2p.
Nota:
Esta partición no es una partición /boot. Linux no
la utilizará para nada; no deberemos crear ningún sistema de ficheros
en ella y no deberemos montarla nunca. Los usuarios de Apple no
necesitan una partición extra para /boot.
|
Ahora crearemos una partición de intercambio presionando c. De
nuevo, mac-fdisk preguntará cuál es el bloque en el que
queremos que esta partición comience. Como anteriormente hemos usado
2 para crear la partición Apple_Bootstrap, ahora tendríamos que
teclear 3p. Cuando nos pregunte por el tamaño, indicaremos
512M (o el tamaño que queramos, se recomienda un mínimo de
512MB, pero el tamaño generalmente recomendado es 2 veces la memoria
física). Cuando nos pida el nombre, introduciremos swap.
Para crear la partición raíz, teclearemos c, seguido de
4p para indicar el bloque en el que la partición debe
comenzar. Cuando nos pregunte el tamaño volveremos a poner
4p. mac-fdisk interpretará esto como "usa todo el
espacio disponible". Y cuando nos pregunte el nombre, indicaremos
root
Para finalizar, escribiremos la estructura de particiones en el disco
tecleando w y saldremos de mac-fdisk con q.
Nota:
Para asegurarnos de que todo está bien, deberíamos ejecutar
mac-fdisk -l y comprobar que se muestran todas las
particiones. Si no aparecen las particiones creadas o los cambios
realizados, tendríamos que reinicializarlas pulsando "i" en
mac-fdisk. Esto recreará el mapa de particiones borrándolas todas.
|
Ahora que las particiones están creadas continuaremos con Creación de los sistemas de ficheros.
1.
Uso de parted para particionar el disco (Pegasos y
RS/6000)
El editor de particiones parted puede manejar particiones HFS+
empleadas por MacOS y MacOS X en la actualidad. Con esta herramienta
se pueden redimensionar las particiones Mac y hacer espacio para las
particiones Linux. Sin embargo, el ejemplo siguiente solo describe el
particionamiento para sistemas Pegasos.
Empecemos iniciando parted:
Listado de Código 1.1: Iniciar parted |
# parted /dev/sda
|
Si el disco está sin particionar, ejecutaremos mklabel amiga
para crear una nueva etiqueta para el disco.
Podemos escribir print en cualquier momento para ver la tabla
de particiones actual. Si por cualquier razón cambiamos de idea o
cometemos un error, podemos pulsar Ctrl-c para salir sin
guardar los cambios.
Si en el Pegasos también queremos instalar MorphOS deberemos crear un
sistema de ficheros affs1 al comienzo del disco. 32MB serán más que
suficientes para almacenar el núcleo de MorphOS. Si disponemos de un
Pegasos I o pretendemos usar cualquier sistema de ficheros junto a
ext2 o ext3, también tendremos que almacenar el núcleo de Linux en
dicha partición (Pegasos II solo puede arrancar de una partición
ext2/ext3 o affs1). Para crear la partición ejecutaremos mkpart
primary affs1 START END donde START y END deben
reemplazarse por un rango en megabytes (por ejemplo, 0 32) que
crea una partición de 32MB empezando en 0MB y acabando en 32MB. Si en
su lugar escogemos crear una partición ext2 o ext3, sustituiremos
affs1 por ext2 o ext3 en la orden mkpart.
Necesitamos crear dos particiones para Linux, una como sistema de
ficheros raíz, y otra como partición de intercambio. Ejecutaremos
mkpart primary START END para crear cada partición,
reemplazando START y END con las límites deseados en
megabytes.
Generalmente se recomienda crear una partición de intercambio con el
doble de la RAM instalada en el ordenador. pero al menos de 512Mb. Para
crear la partición de intercambio ejecutaremos
mkpart primary linux-swap START END con START y END denotando
nuevamente los límites de la partición.
Cuando hemos terminado en parted, simplemente escriba
quit.
1.
Creación de sistemas de ficheros
Introducción
Ahora que las particiones están creadas, es el momento de colocarles
un sistema de ficheros. Si no estamos seguros del tipo de sistema de
ficheros a utilizar y estamos contentos con la configuración por
defecto, continuaremos con Creación de
un sistema de ficheros en una partición. En caso contrario, lea
para aprender a cerca de los sistemas de ficheros disponibles.
Sistemas de ficheros
El núcleo Linux soporta varios sistemas de ficheros. Explicaremos
ext2, ext3, ext4, ReiserFS, XFS y JFS por ser los más utilizados en
sistemas Linux.
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. Si desea instalar Gentoo en un disco pequeño (de menos de
4GB), entonces necesitará indicarle a ext2 que reserve suficientes nodos
i cuando cree el sistema de ficheros. La aplicación mke2fs utiliza
el ajuste "bytes-per-inode" para calcular cuantos nodos-i tendría un
sistema de ficheros. Al ejecutar mke2fs -T small /dev/<device>
el número de nodos-i generalmente será el cuádruple para un sistema de
ficheros dado ya que su "bytes-per-inode" se reduce de uno cada 16kB a uno
cada 4kB. Puede ajustar esto más tarde utilizando
mke2fs -i <ratio> /dev/<device>.
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. Si desea instalar Gentoo en un disco pequeño (de menos de 4GB),
entonces necesitará indicarle a ext3 que reserve suficientes nodos-i
cuando cree el sistema de ficheros. La aplicación mke2fs utiliza
el ajuste "bytes-per-inode" para calcular cuantos nodos-i tendría un
sistema de ficheros. Al ejecutar
mke2fs -T small /dev/<device> el número de nodos-i
generalmente será el cuádruple para un sistema de ficheros dado ya que su
"bytes-per-inode" se reduce de uno cada 16kB a uno cada 4kB. Puede ajustar
esto más tarde utilizando
mke2fs -i <ratio> /dev/<device>.
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.
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.
Crear la partición de intercambio
mkswap es la orden utilizada para inicializar las particiones
de intercambio:
Listado de Código 1.1: Creación de una partición de intercambio |
# mkswap /dev/sda3
|
Para activar la partición de intercambio use swapon:
Listado de Código 1.1: Activación de la partición de intercambio |
# swapon /dev/sda3
|
Crearemos y activaremos la partición de intercambio antes de crear otros
sistemas de ficheros.
Aplicar el sistema de ficheros a una partición
Existen herramientas específicas para aplicar cada sistema de
ficheros posible a una partición:
| Sistema de archivos |
Orden para su creación |
| ext2 |
mke2fs |
| ext3 |
mke2fs -j |
| ext4 |
mkfs.ext4 |
| reiserfs |
mkreiserfs |
| xfs |
mkfs.xfs |
Por ejemplo, para crear un sistema de ficheros ext4 en la partición
raíz (/dev/sda4 según el ejemplo) utilizaríamos:
Listado de Código 1.1: Aplicar un sistema de ficheros a una partición |
# mkfs.ext4 /dev/sda4
|
Ahora podríamos crear todos los sistemas de ficheros en las
particiones o volúmenes lógicos recién creados.
Importante:
Si elije usar ReiserFS para /, no cambie su tamaño de
bloque por defecto si también va a utilizar yaboot como gestor
de arranque, tal como se explica en (Configurar el gestor de arranque).
|
Nota:
En máquinas PegasosII la partición que contiene el núcleo debe ser
ext2, ext3 o affs1. Las máquinas NewWorld pueden arrancar desde
sistemas de ficheros ext2, ext3, XFS, ReiserFS e incluso HFS/HFS+. En
las máquinas OldWorld que arranquen mediante BootX, el núcleo debe ser
ubicado en una partición HFS, pero esto se completará al configurar el
gestor de arranque.
|
1.
Montaje
Ahora que las particiones están inicializadas y albergan sistemas de
ficheros, es hora de montarlas. Utilizaremos la orden mount.
Como ejemplo montaremos la partición para root:
Listado de Código 1.1: Montaje de particiones |
# mount /dev/sda4 /mnt/gentoo
|
Nota:
Si queremos que /tmp resida en una partición diferente,
hay que asegurarse de cambiar sus permisos después de haberla montado
y desempaquetado con chmod 1777 /mnt/gentoo/tmp. Lo mismo se
aplicaría a /var/tmp.
|
Ahora continuaremos con (Instalación de
los ficheros de instalación de Gentoo).
|