|
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 el sistema Linux, en la práctica esto casi nunca se hace. En
su lugar, los dispositivos de bloque enteros se dividen en partes más
pequeñas y manejables. Estas se conocen como particiones
o slices.
La primera partición en el primer disco SCSI es /dev/sda1, la
segunda /dev/sda2 y así sucesivamente.
La tercera partición en sistemas Sun está reservada y demarca al
"disco completo". Esta partición no debe contener un sistema de
ficheros.
Los usuarios acostumbrados al esquema de particionamiento de DOS deben
notar que las etiquetas de disco ("disklabels") Sun no tienen
particiones "primarias" ni "extendidas". En cambio, por cada disco hay
disponibles hasta ocho particiones, estando reservada la tercera.
1.
Diseñar un Esquema de Particionamiento
Esquema de Particionamiento predeterminado
Si no está interesado en diseñar un esquema de particionamiento, la
tabla mostrada a continuación sugiere un punto de partida apropiado
para la mayoría de los sistemas. Observe que esto es solo un
ejemplo, por lo que elija, si así lo desea, un esquema de
particionamiento diferente.
Note que en general el uso de una partición /boot
separada no se recomienda en SPARC, pues complica la
configuración del gestor de arranque.
| Partición |
Sistema de ficheros |
Tamaño |
Punto de montaje |
Descripción |
| /dev/sda1 |
ext4 |
<2 GB |
/ |
Partición raíz. Para sistemas SPARC64 con versiones 3 o
anterioes de OBP, esta partición debe ser menor de
2 GB y además ser la primera partición en el disco. Las
versiones más recientes de OBP pueden gestionar particiones
raíz mayores y, por tanto, pueden ofrecer soporte para
/usr, /var y otras localizaciones
en la misma partición.
|
| /dev/sda2 |
swap |
512 MB |
Ninguno |
Partición de intercambio. Para el bootstrap y ciertas compilaciones
grandes se requiere al menos de 512 MB de memoria RAM (incluyendo
la memoria de intercambio ("swap")).
|
| /dev/sda3 |
Ninguno |
Todo el disco |
Ninguno |
Partición correspondiente al disco completo. Indispensable en sistemas
SPARC.
|
| /dev/sda4 |
ext4 |
Al menos 2 GB |
/usr |
Partición /usr. Aquí se instalan las aplicaciones. Por omisión,
esta partición también se usa para datos de Portage (que toman
cerca de de 500 MB excluyendo el código fuente).
|
| /dev/sda5 |
ext4 |
Al menos 1GB |
/var |
Partición /var. Se utiliza para datos generados por los
programas. Portage usa de forma predeterminada esta partición
para espacio temporal mientras compila. Algunas aplicaciones
grandes como Mozilla y OpenOffice.org necesitan más de 1 GB
de espacio temporal al compilar.
|
| /dev/sda6 |
ext4 |
El resto del espacio en disco |
/home |
Partición /home. Utilizada para los directorios personales de
los usuarios.
|
1.
Utilizar fdisk para particionar su disco
Las siguientes instrucciones explican cómo particionar el disco duro
según el esquema descrito anteriormente:
| Partición |
Descripción |
| /dev/sda1 |
/ |
| /dev/sda2 |
Partición de intercambio (swap) |
| /dev/sda3 |
Partición del disco completo |
| /dev/sda4 |
/usr |
| /dev/sda5 |
/var |
| /dev/sda6 |
/home |
Cambie el esquema de particionamiento según su propio
criterio. Recuerde mantener la partición raíz totalmente dentro de los
primeros 2 GB del disco en sistemas antiguos. También existe un
límite de 15 particiones para discos SCSI y SATA.
Iniciar fdisk
Inicie fdisk pasándole su disco como argumento:
Listado de Código 1.1: Iniciar fdisk |
# fdisk /dev/sda
|
Debería ver el intérprete de comandos de fdisk:
Listado de Código 1.1: El intérprete de comandos de fdisk |
Command (m for help):
|
Para ver las particiones disponibles, escriba p:
Listado de Código 1.1: Listar las particiones disponibles |
Command (m for help): p
Disk /dev/sda (Sun disk label): 64 heads, 32 sectors, 8635 cylinders
Units = cylinders of 2048 * 512 bytes
Device Flag Start End Blocks Id System
/dev/sda1 0 488 499712 83 Linux native
/dev/sda2 488 976 499712 82 Linux swap
/dev/sda3 0 8635 8842240 5 Whole disk
/dev/sda4 976 1953 1000448 83 Linux native
/dev/sda5 1953 2144 195584 83 Linux native
/dev/sda6 2144 8635 6646784 83 Linux native
|
Note la aparición de Sun disk label en la salida. Si esto no
sale, entonces el disco está usando particionamiento de DOS y no de
Sun. En ese caso, teclee s para asegurarse que el disco tiene
una tabla de partición Sun:
Listado de Código 1.1: Creación de una etiqueta de disco Sun (Sun Disklabel) |
Command (m for help): s
Building a new sun disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.
Drive type
? auto configure
0 custom (with hardware detected defaults)
a Quantum ProDrive 80S
b Quantum ProDrive 105S
c CDC Wren IV 94171-344
d IBM DPES-31080
e IBM DORS-32160
f IBM DNES-318350
g SEAGATE ST34371
h SUN0104
i SUN0207
j SUN0327
k SUN0340
l SUN0424
m SUN0535
n SUN0669
o SUN1.0G
p SUN1.05
q SUN1.3G
r SUN2.1G
s IOMEGA Jaz
Select type (? for auto, 0 for custom): 0
Heads (1-1024, default 64):
Using default value 64
Sectors/track (1-1024, default 32):
Using default value 32
Cylinders (1-65535, default 8635):
Using default value 8635
Alternate cylinders (0-65535, default 2):
Using default value 2
Physical cylinders (0-65535, default 8637):
Using default value 8637
Rotation speed (rpm) (1-100000, default 5400): 10000
Interleave factor (1-32, default 1):
Using default value 1
Extra sectors per cylinder (0-32, default 0):
Using default value 0
|
Busque los valores correctos en la documentación de su disco. La
opción 'auto configure' normalmente no funciona.
Eliminación de las particiones existentes
Es hora de eliminar las particiones existentes en el disco. Para ello
teclee d y presione intro. Se le preguntará por el número de
partición que desearía eliminar. Para borrar la partición
/dev/sda1 ya existente teclee:
Listado de Código 1.1: Eliminar una partición |
Command (m for help): d
Partition number (1-4): 1
|
No debería eliminar la partición 3 (partición de disco
completo). Esta es indispensable. Si esta partición no existe,
siga las instrucciones para la "Creación de una etiqueta de disco Sun
("Sun Disklabel")" indicadas más arriba.
Luego de eliminar todas las particiones salvo la de "disco completo",
debería tener un esquema de particionamiento similar al siguiente:
Listado de Código 1.1: Ver un esquema de particionamiento vacío |
Command (m for help): p
Disk /dev/sda (Sun disk label): 64 heads, 32 sectors, 8635 cylinders
Units = cylinders of 2048 * 512 bytes
Device Flag Start End Blocks Id System
/dev/sda3 0 8635 8842240 5 Whole disk
|
Creación de la partición raíz
Estamos listos para crear la partición raíz. Para hacer esto, teclee
n para crear una nueva partición, luego teclee 1 para
crear la partición raíz. Cuando se le pregunte por el valor del primer
cilindro, presione intro. Asimismo cuando el sistema solicite el
valor del último cilindro, teclee +512M para crear una
partición de 512 MB de tamaño. Asegúrese que toda la
partición raíz está dento de los primeros 2 GB del disco. Puede ver
la salida de estos pasos a continuación:
Listado de Código 1.1: Crear la partición raíz |
Command (m for help): n
Partition number (1-8): 1
First cylinder (0-8635): (presione Intro)
Last cylinder or +size or +sizeM or +sizeK (0-8635, default 8635): +512M
|
Ahora, cuando teclee p, debería ver impreso el siguiente esquema de
particionamiento:
Listado de Código 1.1: Listado del esquema de particionamiento |
Command (m for help): p
Disk /dev/sda (Sun disk label): 64 heads, 32 sectors, 8635 cylinders
Units = cylinders of 2048 * 512 bytes
Device Flag Start End Blocks Id System
/dev/sda1 0 488 499712 83 Linux native
/dev/sda3 0 8635 8842240 5 Whole disk
|
Creación de una partición de intercambio ("swap")
A continuación, vamos a crear ahora la partición de intercambio. Para
ello, teclee n para crear una nueva partición, y luego 2
para para crear la segunda partición, /dev/sda2 en
nuestro caso. Cuando el sistema solicite introducir el valor del
primer cilindro, pulse intro y cuando solicite el valor del último,
teclee +512M para crear una partición de 512 MB. Cuando lo haya
hecho, teclee t para ajustar el tipo de partición y luego
teclee 82 para fijar el tipo "Linux Swap". Una vez completados
estos pasos, al teclear p visualizará una tabla de particiones
que es similar a esta:
Listado de Código 1.1: Listado de las particiones disponibles |
Command (m for help): p
Disk /dev/sda (Sun disk label): 64 heads, 32 sectors, 8635 cylinders
Units = cylinders of 2048 * 512 bytes
Device Flag Start End Blocks Id System
/dev/sda1 0 488 499712 83 Linux native
/dev/sda2 488 976 499712 82 Linux swap
/dev/sda3 0 8635 8842240 5 Whole disk
|
Creación de las particiones /usr, /var y /home
Finalmente vamos a crear las particiones /usr, /var y /home. Tal como
antes, teclee n para crear una partición nueva, luego teclee
4 para crear la tercera partición, /dev/sda4 en
nuestro caso. Cuando al pedir el valor del primer cilindro, pulse
intro y al pedir el valor del último, ingrese +2048M para
crear una partición de 2 GB de tamaño. Repita este proceso para
sda5 y sda6 usando tamaños de acuerdo a su
criterio. Al terminar, debería ver algo como:
Listado de Código 1.1: Listado completo de la tabla de particiones |
Command (m for help): p
Disk /dev/sda (Sun disk label): 64 heads, 32 sectors, 8635 cylinders
Units = cylinders of 2048 * 512 bytes
Device Flag Start End Blocks Id System
/dev/sda1 0 488 499712 83 Linux native
/dev/sda2 488 976 499712 82 Linux swap
/dev/sda3 0 8635 8842240 5 Whole disk
/dev/sda4 976 1953 1000448 83 Linux native
/dev/sda5 1953 2144 195584 83 Linux native
/dev/sda6 2144 8635 6646784 83 Linux native
|
Guardar y salir
Para guardar el esquema de particionamiento y salir de fdisk,
teclee w:
Listado de Código 1.1: Guardar y salir de fdisk |
Command (m for help): w
|
Ahora que sus particiones están creadas, puede proseguir con la
Creación de Sistemas de Ficheros.
1.
Creación de Sistemas de Ficheros
Introducción
Ahora que sus particiones están creadas, es hora de colocarles un
sistema de ficheros. Si no le importa el tipo de sistema de ficheros y
está conforme con la opción predeterminada del manual, continúe con
Creación de un Sistema de Ficheros en
una Partición. En caso contrario, siga leyendo para aprender
sobre 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.
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 de creación |
| ext2 |
mkfs.ext2 |
| ext3 |
mkfs.ext3 |
| ext4 |
mkfs.ext4 |
Por ejemplo, para crear la partición raíz
(/dev/sda1 en nuestro ejemplo), y las particiones
/usr, /var y /home
(/dev/sda4, 5 y
6 respectivamente en nuestro ejemplo) como ext4,
podría utilizar:
Listado de Código 1.1: Crear un sistema de ficheros en una partición |
# mkfs.ext4 /dev/sda1
# mkfs.ext4 /dev/sda4
# mkfs.ext4 /dev/sda5
# mkfs.ext4 /dev/sda6
|
Activar la Partición de Intercambio
mkswap es la orden usada para inicializar particiones de
intercambio:
Listado de Código 1.1: Inicialización de una partición de intercambio |
# mkswap /dev/sda2
|
Para activar la partición, use swapon:
Listado de Código 1.1: Activar la partición de intercambio |
# swapon /dev/sda2
|
Cree y active la partición de intercambio con las órdenes mencionadas
arriba.
1.
Montaje
Ahora que sus particiones están inicializadas y albergan sistemas de
ficheros, es hora de montarlas con la orden mount. No olvide
crear los directorios de puntos de montaje necesarios para cada
partición que creada. Por ejemplo:
Listado de Código 1.1: Montaje de las particiones |
# mount /dev/sda1 /mnt/gentoo
# mkdir /mnt/gentoo/usr
# mount /dev/sda4 /mnt/gentoo/usr
# mkdir /mnt/gentoo/var
# mount /dev/sda5 /mnt/gentoo/var
# mkdir /mnt/gentoo/home
# mount /dev/sda6 /mnt/gentoo/home
|
Nota:
Si quiere que su /tmp esté en una partición separada,
asegúrese de cambiar los permisos después de montarla: chmod 1777
/mnt/gentoo/tmp. Esto también es válido para
/var/tmp.
|
También necesitamos montar el sistema de ficheros proc (un interfaz
virtual al núcleo) en /proc. Pero primero debemos situar
nuestros ficheros en las particiones.
Continúe con (Instalación de Ficheros de
Instalación de Gentoo).
|