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.
Almacenamiento avanzado.
Los CDs de instalación para x86 proporcionan soporte para LVM2 (en inglés, Logical Volume Management). LVM2 incrementa incrementa la flexibilidad ofrecida por el esquema de particionamiento. Cuando recorramos las instrucciones de instalación, nos centraremos en particiones "normales", sin embargo, es importante saber que las particiones de tipo LVM2 también están soportadas.
4.b. Diseñar un esquema de particionamiento
Esquema de Particionamiento Predeterminado.
Si no está interesado en diseñar un esquema de particionamiento particular para tu sistema, puede hacer uso del esquema que utilizaremos 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.
¿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:
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
/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/portage/make.conf para apuntar a una partición con espacio libre suficiente para compilar paquetes muy grandes como OpenOffice.
Utilizar fdisk para particionar su disco.
Importante: Si su entorno va a utilizar particiones mayores de 2 TB, por favor, utilice las instrucciones comentadas en Utilizar parted para particionar su disco. La herramienta fdisk no puede manejar tamaños tan grandes de partición.
Las siguientes instrucciones explican como particionar el disco duro utilizando fdisk. El ejemplo de disposición de las particiones ha sido mencionado 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. Arranca fdisk sobre tu unidad de disco (en nuestro ejemplo usamos el dispositivo de disco /dev/sda):
Listado de Código 3.1: Ejecutar fdisk
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
Teclee p para mostrar el esquema de particionamiento actual:
Listado de Código 3.3: Un ejemplo de particionamiento
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
La partición ha sido marcada para su borrado. 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 realizados, 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
Ahora que la tabla de particiones en memoria del sistema está vacía, estamos preparados para crear nuevas particiones. Utilizaremos el esquema por defecto, 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!
Crear una partición de arranque.
En primer lugar 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. Cuando el sistema solicite introducir el primer cilindro, pulse intro y cuando pida definir el valor del último cilindro, teclee +32M para crear una partición de tamaño 32 Mb.
Listado de Código 3.6: Crear una partición de arranque
Si ahora teclea p, debe ver la siguiente partición en la tabla:
Listado de Código 3.7: Una partición creada
Necesitamos hacer que esta partición sea arrancable. Teclee a para marcar esta partición como arrancable. Si introduce p de nuevo, verá que un * ha aparecido en la columna "Boot".
Crear una partición de intercambio
Vamos a crear ahora la partición de intercambio. Para hacerlo, teclee n para crear una nueva partición, y luego p para comunicar a fdisk que debe ser una partición primaria. Entonces teclee 2 para crear la segunda partición primaria, /dev/sda2 en nuestro caso. Cuando el sistema solicite introducir el valor del primer cilindro, pulse intro y cuando solicite introducir el valor del último, teclee +512M para crear una partición de 512 Mb. Cuando lo haya hecho, teclee t para establecer el tipo de partición, 2 para seleccionar la partición que acaba de crear y entonces 82 para fijar el tipo "Linux Swap". Una vez completados estos pasos la introducción de p visualizará la tabla de particiones que debe ser similar a ésta.
Listado de Código 3.8: Listado de particiones después de la creación de la partición de intercambio
Crear la partición raíz.
En el último lugar, creamos la partición de raíz. Introduzca n para crear la nueva partición, p para marcarla como partición primaria. A continuación teclee 3 para crear la tercera partición primaria, /dev/sda3, según nuestro ejemplo. Al solicitar la introducción del valor del primer cilindro de la partición pulsamos intro, mientras que cuando el sistema solicite que introduzcamos el valor del último cilindro, también le damos a intro para crear una partición que ocupe todo el espacio restante en el disco. Tras completar todos 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 después de crear la partición de raíz
Almacenar 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 del fdisk
Utilizar parted para particionar su disco.
La disposición de particiones que utilizaremos se muestra en la siguiente tabla:
Partición
Descripción
/dev/sda1
Partición de arranque
/dev/sda2
Partición de intercambio
/dev/sda3
>Partición raíz
Cambie la disposición de sus particiones para adaptarlas a sus preferencias.
Echar un vistazo a la disposición actual de las particiones.
La aplicación parted es de alguna forma una variación moderna de fdisk. Ofrece una interfaz más simple para el particionamiento de sus discos y soporta particiones muy grandes (mayores de 2 TB). Arranque parted en su disco (en nuestro ejemplo, utilizaremos /dev/sda):
Listado de Código 4.1: Arrancar parted
Para mostrar todas las opciones que soporta parted, teclee help y pulse la tecla Intro. Por ahora, le pediremos a parted que nos muestre las particiones que están en uso actualmente en el disco seleccionado. Para hacer esto, se puede utilizar la orden print.
Listado de Código 4.2: Una ejemplo de configuración de particiones mostrado por parted
Opcional: Ajustar la etiqueta GPT.
La mayoría de los discos en los sistemas x86/amd64 están preparados para utilizar una etiqueta msdos. Sin embargo, si va crear particiones muy grandes (de 2 TB y mayores), deberá usar en su disco una etiqueta gpt que significa GUID Partition Type (Tipo de Partición GUID). Si usa parted, puede hacer esto con mklabel gpt:
Aviso: Al cambiar el tipo de partición, todas las particiones de su disco serán eliminadas. Se perderán todos los datos del disco.
Listado de Código 4.3: Ajustar la etiuqueta GPT
Eliminar todas las particiones.
Si no ha hecho esto aún, (por ejemplo a través de la operación mklabel anterior, o porque el disco es una recientemente formateado), eliminaremos en primer lugar todas las particiones presentes en el disco. Teclee rm <número> donde <número> es la partición que desea eliminar.
Listado de Código 4.4: Eliminar una partición del disco
Haga lo mismo para el resto de particiones que no va a necesitar. Asegúrese, sin embargo, de que no comete errores en esta parte ya que parted realiza los cambios inmediatamente (al contrario que fdisk que los deja pendientes, permitiendo al usuario "deshacer" sus cambios antes de salvarlos o salir de fdisk).
Crear las particiones.
Ahora, crearemos las particiones que mencionamos arriba. Esto no va a ser muy difícil usando parted, todo lo que necesitamos es informar a parted sobre los siguientes ajustes:
Una ventaja de parted es que puede usar los tamaños de la partición para encontrar las localizaciones correctas de comienzo y terminación de forma fácil, como veremos en el próximo ejemplo.
Listado de Código 4.5: Crear las particiones
Puede ahora mostrar (print) la disposición de las particiones de nuevo, para validar que todo está en su sitio. Cuando esté preparado, utilice la orden quit para salir de parted.
Crear los sistemas de ficheros.
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
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 5.1: Creación de un sistema de ficheros en una partición
Y ahora, puede crear sistemas de fichero 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 5.2: Inicialización de una partición de intercambio
Para activar la partición, use la orden swapon:
Listado de Código 5.3: Activar la partición de intercambio
Cree y active la partición de intercambio con las órdenes mencionadas arriba.
Montaje.
Ahora que las particiones están inicializadas y albergan sistemas de ficheros, es hora de montarlas. Utilice la orden mount. No olvide crear puntos de montaje necesarios para cada partición que haya creado. Como ejemplo montamos la partición de raíz y de arranque:
Listado de Código 6.1: Montaje de particiones
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.
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.
Almacenamiento avanzado.
Los CDs de instalación para x86 proporcionan soporte para LVM2 (en inglés, Logical Volume Management). LVM2 incrementa incrementa la flexibilidad ofrecida por el esquema de particionamiento. Cuando recorramos las instrucciones de instalación, nos centraremos en particiones "normales", sin embargo, es importante saber que las particiones de tipo LVM2 también están soportadas.
4.b. Diseñar un esquema de particionamiento
Esquema de Particionamiento Predeterminado.
Si no está interesado en diseñar un esquema de particionamiento particular para tu sistema, puede hacer uso del esquema que utilizaremos 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.
¿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.
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/portage/make.conf para apuntar a una partición con espacio libre suficiente para compilar paquetes muy grandes como OpenOffice.
Utilizar fdisk para particionar su disco.
Importante: Si su entorno va a utilizar particiones mayores de 2 TB, por favor, utilice las instrucciones comentadas en Utilizar parted para particionar su disco. La herramienta fdisk no puede manejar tamaños tan grandes de partición.
Las siguientes instrucciones explican como particionar el disco duro utilizando fdisk. El ejemplo de disposición de las particiones ha sido mencionado 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. Arranca fdisk sobre tu 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 ha sido marcada para su borrado. 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 realizados, 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 del sistema está vacía, estamos preparados para crear nuevas particiones. Utilizaremos el esquema por defecto, 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!
Crear una partición de arranque.
En primer lugar 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. Cuando el sistema solicite introducir el primer cilindro, pulse intro y cuando pida definir el valor del último cilindro, teclee +32M para crear una partición de tamaño 32 Mb.
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
Si ahora teclea p, debe ver la siguiente partición en la tabla:
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 marcar esta partición como arrancable. Si introduce p de nuevo, verá que un * ha aparecido en la columna "Boot".
Crear una partición de intercambio
Vamos a crear ahora la partición de intercambio. Para hacerlo, teclee n para crear una nueva partición, y luego p para comunicar a fdisk que debe ser una partición primaria. Entonces teclee 2 para crear la segunda partición primaria, /dev/sda2 en nuestro caso. Cuando el sistema solicite introducir el valor del primer cilindro, pulse intro y cuando solicite introducir el valor del último, teclee +512M para crear una partición de 512 Mb. Cuando lo haya hecho, teclee t para establecer el tipo de partición, 2 para seleccionar la partición que acaba de crear y entonces 82 para fijar el tipo "Linux Swap". Una vez completados estos pasos la introducción de p visualizará la tabla de particiones que debe ser similar a ésta.
Listado de Código 3.8: Listado de particiones después de la creación de 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
Crear la partición raíz.
En el último lugar, creamos la partición de raíz. Introduzca n para crear la nueva partición, p para marcarla como partición primaria. A continuación teclee 3 para crear la tercera partición primaria, /dev/sda3, según nuestro ejemplo. Al solicitar la introducción del valor del primer cilindro de la partición pulsamos intro, mientras que cuando el sistema solicite que introduzcamos el valor del último cilindro, también le damos a intro para crear una partición que ocupe todo el espacio restante en el disco. Tras completar todos 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 después de crear la partición de 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
Almacenar 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 del fdisk
Command (m for help): w
Utilizar parted para particionar su disco.
La disposición de particiones que utilizaremos se muestra en la siguiente tabla:
Partición
Descripción
/dev/sda1
Partición de arranque
/dev/sda2
Partición de intercambio
/dev/sda3
>Partición raíz
Cambie la disposición de sus particiones para adaptarlas a sus preferencias.
Echar un vistazo a la disposición actual de las particiones.
La aplicación parted es de alguna forma una variación moderna de fdisk. Ofrece una interfaz más simple para el particionamiento de sus discos y soporta particiones muy grandes (mayores de 2 TB). Arranque parted en su disco (en nuestro ejemplo, utilizaremos /dev/sda):
Listado de Código 4.1: Arrancar parted
# parted /dev/sda GNU Parted 2.3 Using /dev/vda Welcome to GNU Parted! Type 'help' to view a list of commands.
Para mostrar todas las opciones que soporta parted, teclee help y pulse la tecla Intro. Por ahora, le pediremos a parted que nos muestre las particiones que están en uso actualmente en el disco seleccionado. Para hacer esto, se puede utilizar la orden print.
Listado de Código 4.2: Una ejemplo de configuración de particiones mostrado por parted
(parted) print Model: SCSI Block Device Disk /dev/sda: 21.5GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 512B 2148MB 2148MB primary ext4 2 2148MB 3222MB 1074MB primary linux-swap(v1) 3 3222MB 21.5GB 18.3GB primary lvm
Opcional: Ajustar la etiqueta GPT.
La mayoría de los discos en los sistemas x86/amd64 están preparados para utilizar una etiqueta msdos. Sin embargo, si va crear particiones muy grandes (de 2 TB y mayores), deberá usar en su disco una etiqueta gpt que significa GUID Partition Type (Tipo de Partición GUID). Si usa parted, puede hacer esto con mklabel gpt:
Aviso: Al cambiar el tipo de partición, todas las particiones de su disco serán eliminadas. Se perderán todos los datos del disco.
Listado de Código 4.3: Ajustar la etiuqueta GPT
(parted) mklabel gpt
Eliminar todas las particiones.
Si no ha hecho esto aún, (por ejemplo a través de la operación mklabel anterior, o porque el disco es una recientemente formateado), eliminaremos en primer lugar todas las particiones presentes en el disco. Teclee rm <número> donde <número> es la partición que desea eliminar.
Listado de Código 4.4: Eliminar una partición del disco
(parted) rm 2
Haga lo mismo para el resto de particiones que no va a necesitar. Asegúrese, sin embargo, de que no comete errores en esta parte ya que parted realiza los cambios inmediatamente (al contrario que fdisk que los deja pendientes, permitiendo al usuario "deshacer" sus cambios antes de salvarlos o salir de fdisk).
Crear las particiones.
Ahora, crearemos las particiones que mencionamos arriba. Esto no va a ser muy difícil usando parted, todo lo que necesitamos es informar a parted sobre los siguientes ajustes:
- El tipo de partición que se debe utilizar. Este será normalmente primary (primaria) en caso de que no vaya a tener más de cuatro particiones (si usa la etiqueta de particionamiento msdos). De lo contrario, necesitará que su cuarta partición sea extended (extendida) la cual contendrá el resto del disco, y deberá crear particiones de tipo logical (lógicas) dentro de ella. Si utiliza un disco etiquetado con partición gpt, entonces no tendrá límite en el número de particiones primarias que puede crear.
- El tipo de sistema de ficheros a usar. La aplicación parted soporta los sistemas de ficheros más comunes y sabe qué tipo de identificador (ID) de partición necesita para usar en las particiones. Esto no significa que parted vaya a crear un sistema de ficheros en la partición (puede hacer esto con la orden mkpartfs, sin embargo, nosotros usaremos las órdenes normales mkfs.* más adelante para este propósito). El ID de la partición lo utilizan a menudo las aplicaciones de auto detección para saber que hacer con una partición en particular.
- La localización en la que comienza la partición (se puede expresar en MB o en GB)
- La localización en la que termina la partición (se puede expresar en MB o en GB)
Una ventaja de parted es que puede usar los tamaños de la partición para encontrar las localizaciones correctas de comienzo y terminación de forma fácil, como veremos en el próximo ejemplo.
Listado de Código 4.5: Crear las particiones
# Crear una partición /boot de 32 MB (parted) mkpart primary ext2 0 32mb Warning: The resulting partition is not properly aligned for best performance. Ignore/Cancel? i # Crear una partición de intercambio de 512 MB (parted) mkpart primary linux-swap 32mb 544mb # Crear una partición que ocupa todo el disco. # -1s (menos uno s) indica el final del disco (parted) mkpart primary ext4 544mb -1s Warning: You requested a partition from 544MB to 21.5GB. The closest location we can manage is 544MB to 21.5GB. Is this still acceptable to you? Yes/No? y
Puede ahora mostrar (print) la disposición de las particiones de nuevo, para validar que todo está en su sitio. Cuando esté preparado, utilice la orden quit para salir de parted.
Crear los sistemas de ficheros.
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
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 5.1: Creación de un sistema de ficheros en una partición
# mkfs.ext2 /dev/sda1 # mkfs.ext4 /dev/sda3
Y ahora, puede crear sistemas de fichero 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 5.2: Inicialización de una partición de intercambio
# mkswap /dev/sda2
Para activar la partición, use la orden swapon:
Listado de Código 5.3: Activar la partición de intercambio
# swapon /dev/sda2
Cree y active la partición de intercambio con las órdenes mencionadas arriba.
Montaje.
Ahora que las particiones están inicializadas y albergan sistemas de ficheros, es hora de montarlas. Utilice la orden mount. No olvide crear puntos de montaje necesarios para cada partición que haya creado. Como ejemplo montamos la partición de raíz y de arranque:
Listado de Código 6.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.
Búsqueda personalizada
Si te ha gustado el artículo inscribete al feed clicando en la imagen más abajo para tenerte siempre actualizado sobre los nuevos contenidos del blog:
0 comentarios:
Publicar un comentario
No insertes enlaces clicables, de lo contrario se eliminará el comentario. Si quieres ser advertido via email de los nuevos comentarios marca la casilla "Avisarme". Si te ayudé con la publicación o con las respuestas a los comentarios, compártelo en Facebook,Twitter o Instagram. Gracias.