martes, 21 de diciembre de 2010

Como elegir un esquema de particiones en Linux?


Nota previa:
Este está relacionado con un par de post/traducciones anteriores (este y este), de modo que aquí lo tienen. Antes de seguir van un par de aclaraciones. Primero el sistema usado para los ejemplos es un Ubuntu, todas las distribuciones no hacen las cosas igual, así que si intentan (y deberían) hacerlo en Centos, OpenSuse o la que sea que elijan, van a ver pequeñas variaciones. Segundo, el proceso de particionado en sistemas Unix/Linux es mas complejo en realidad de lo que aquí se muestra, nótese que es un ejemplo para una instalación de un sistema casero, hay consideraciones a tener en cuenta en servidores dedicados que aquí se obvian, como el destino final del sistema, referido a si vas a usarlo para servir archivos (Samba por ejemplo), o si vas a ofrecer servicios de red (DNS, DHCP, Proxy-http etc), si vas a implementar cuotas y así sucesivamente.  En lineas generales les indico a continuación una guía simple que pueden usar a la hora de definir su esquema de particionado:
  • Mantenga el sistema de archivos de root (/) tan simple como sea posible distribuyendo las porciones mayores del árbol en particiones dedicadas. Un sistema de archivos de root mas simple tendrá menos posibilidades de corromperse.
  • Defina /boot como una partición dedicada y ubíquela por debajo del cilindro 1024, recuerde que en /boot estará todo lo que necesita el sistema para arrancar y de nuevo es preferible mantenerla aislada del resto.
  • Considera también una partición dedicada para /var y asegúrese de que sea lo suficientemente grande para albergar sus logs y su esquema de rotación.
  • Considere una partición dedicada para /tmp, Deberá ser lo suficientemente grande para almacenar los temporales de todos sus usuarios a la vez.
  • Considere usar una partición dedicada para /usr, primero te permitirá compartirla en la red como solo lectura vía NFS, segundo es donde vas a hacer compilaciones del kernel (si las haces).
  • Si tienes múltiples usuarios define /home también como dedicada, si tienes mas recursos lo mejor es que uses un arreglo de discos y que habilites las cuotas, los usuarios son una fuente inagotable de sustos.
  • Por último (está especificado en el artículo) atente a la regla de SWAP (al menos dos veces RAM) si juegas con este parámetro vas a tener algunos problemas inesperados y raros, créeme, ya me sucedió (en FreeBSD pero es mas o menos lo mismo).
Listo, los dejo con la traducción, el original lo pueden encontrar aquí, es de HTG.

Como elegir un esquema de particiones en Linux?
Miedo a la temida  palabra "p"?  No estás solo.  Las particiones pueden ser complicadas, así que aquí tiene una explicación de lo que son, cómo se usan, y una plantilla fácil de usar para su propia instalación de Linux.

¿Que son las particiones?
Las particiones son divisiones en el formato del disco duro.  Es una división lógica - a diferencia de la física, que puedes editar y manipular con fines diversos.  Piénsala como dividir un disco en dos partes configurables.  Las particiones son muy útiles porque actúan como cajas de arena (sandbox en el original, en esta entrada doy indicaciones para su comprensión).  Si usted tiene una unidad de disco duro de 1 TB con una partición de 250 GB y una de 750 GB, lo que tiene en esta última no afectará la otra, y viceversa.  Podrá compartir una de esas particiones en la red y no tendrá que preocuparse porque accedan a la información en la otra.  En una puedes tener instalado Windows, plagado de virus y troyanos.  La otra podría estar ejecutando una instalación obsoleta de Linux, llena huecos de seguridad.  Nunca interferirán la una con la otra, a menos que una de ellas, o el mismo disco duro fallen físicamente.

La otra cosa útil es que usted puede tener varias particiones, cada una formateada con sistemas de archivos diferente.  Un sistema de archivos es un formato del disco en una tabla que el sistema operativo puede leer, interpretar y escribir.  Sólo tiene un disco duro?  No hay problema, aun así puede instalar varios sistemas operativos sin tener otro disco físico.

Mientras que hay toneladas de tipos de sistema de archivos, sólo hay tres tipos de particiones: primarias, extendidas y lógicas.  Un disco duro determinado sólo puede tener un máximo de cuatro particiones primarias.  Esta limitación se debe a algo que se llama el Master Boot Record (MBR), que le dice al ordenador desde qué particiones se puede arrancar, por lo que las particiones primarias son generalmente reservadas para los sistemas operativos.  Pero que hacer si queremos más de cuatro?  Ahí es donde la partición extendida entra en juego.  Sirve como un contenedor vacío para cualquier número de particiones lógicas de menor tamaño.  Puedes tener tantas como desees, y usarlas como espacio para tus secciones que no son del sistema operativo

Si son tan buenas las particiones extendidas, ¿por qué no usarlas?  Pues porque no se puede arrancar directamente desde cualquier sitio dentro de una partición extendida.  Hay maneras de evitar esto, pero lo mejor que puede hacer es planificarlo adecuadamente de antemano con particiones primarias.  Además, la manera en que el sistema numera las particiones depende también de esto.  En primer lugar, la máquina numerará las particiones primarias, luego de eso hará lo mismo con las particiones lógicas.  Esto puede causar cambios en las letras de las unidades si cambia entre sistemas operativos o añade o elimina particiones más adelante.

Puntos de montaje en Linux


En Windows, las cosas están claramente definidas: el sistema reside en el disco, usualmente en una partición única y eso es todo  Si tiene otras unidades, y tienen un sistema de archivos compatible, también las leerá sin problemas.  Si no, por lo general va a ignorarlas, o le ofrecerá la posibilidad de formatearlas.  Linux - de hecho todo lo que sea similar a Unix - no funciona exactamente de esa manera.

La forma en que Linux funciona es que poniendo todo en un esquema de un árbol.  Si usted tiene otra partición o disco, quedará "montada" como una rama en una carpeta específica, por lo general /media o /mnt (1).  El directorio en el que se monta una partición a se llama "punto de montaje."  Este método funciona mejor con la estructura de árbol de Linux, y se puede montar particiones como carpetas en casi cualquier parte.  En Windows, esto no es tan fácil de hacer, las diferentes particiones por lo general aparecen como unidades independientes.  Además, Linux puede trabajar con muchos más tipos de sistemas de archivos de manera nativa que Windows.

¿Recuerda que sólo pueden haber cuatro particiones primarias?  Si desea arrancar 145 sistemas operativos como hizo alguien en los foros JustLinux, puede configurar una partición primaria para /boot, que almacena algún cargador de arranque, como GRUB o LILO, y se ocupa de las funciones iniciales y luego continuar el arranque en las particiones extendidas.

¿Qué esquema se debe utilizar?
El esquema de particiones estándar para la mayoría las instalaciones Linux caseras es el siguiente:

  • Una partición de 12 a 20 GB para el sistema operativo, que queda montada como "/" (llamada "root")
  • Una partición más pequeña utilizada para aumentar la memoria RAM, montada y referida como SWAP.
  • Una partición más grande para uso personal, montada como /home
Los tamaños exactos cambiarán en función de sus necesidades, pero en general se empieza con la SWAP.  Si usted hace edición multimedia intensiva, y/o tienen una menor cantidad de memoria RAM, deberá utilizar una mayor cantidad de SWAP.  Si usted tiene bastante memoria, no tendrá que usar mucha SWAP, aunque algunas distribuciones de Linux tiene problemas al entrar en modo de espera o hibernación, cuando tienen poca SWAP.  La regla de oro es que elijas entre 1,5 a 2 veces la cantidad de memoria RAM como el espacio de SWAP, y ubicarla en un lugar de acceso rápido, como al principio o al final del disco.

Incluso si instalas toneladas de software, un máximo de 20 GB para la partición raíz debe ser suficiente.  La mayoría de las distribuciones de Linux utilizan ya sea ext3 o ext4 como sistema de archivos en la actualidad, que incorporan un mecanismo de "auto-limpieza" por lo que no tienes que desfragmentar.  Sin embargo, para que esto funcione mejor, deberás tener al menos entre 25-35% de la partición libre.

Por último, cualquier otra cosa debería ir a la partición /home.  Aquí es donde tus cosas personales se almacenan. Es funcionalmente equivalente al directorio de "Usuarios" en Windows, y almacena las configuraciones de las aplicaciones, música, descargas, documentos, etc, y los de cualquier otro usuario que tenga en su sistema.  Es útil tener /home en una partición aparte ya que al actualizar o volver a instalar su sistema operativo, no tendrás que respaldar nada de esta carpeta!  ¿No es eso conveniente?  Para colmo, la mayoría de las configuraciones de programa y las relativas a la interfaz de usuario también se guardan aquí!


Si está ejecutando un servidor con una gran cantidad de usuarios y/o una gran cantidad de multimedia, puede optimizar el rendimiento mediante el uso de dos unidades de disco duro.  Una pequeña unidad de estado sólido sería perfecta para instalar el sistema operativo, tal vez 32 GB como máximo, y podría ubicar la SWAP al inicio de un 1 o 2 TB de una unidad "ecológica" (son la clase de unidades HDD que hace un uso mas eficiente de la energía) que esté montada en /home.

Si quieres afinarlo más, puedes incluso configurar diferentes particiones para cosas como el directorio temporal (/tmp), el contenido de su servidor web (/var/www), para los programas (/usr), o para los archivos de registro ( /var/log).

Especificando puntos de montaje durante la instalación
En nuestro ejemplo, vamos a estar mostrando la configuración del esquema de particionado durante la instalación de Ubuntu Maverick Meerkat.  Al llegar a donde dice "Asignar espacio en el disco", seleccione "Especificar particiones manualmente (avanzado)"


No entre en pánico porque vea el término "avanzado", en realidad no es tan difícil y al final el proceso le concederá algunas recompensas.  Haga clic en "Adelante" y verá la tabla de particiones.


Haga clic en la linea de espacio libre en la tabla y, a continuación, haga clic en "Agregar ..." Si no tiene espacio libre, haga clic en la partición de Windows, pulse "Cambiar ..." y redúzcala a un tamaño más aceptable.  Esto le dará algo de espacio libre para trabajar.


Aquí, puedes ver que he creado una partición primaria de alrededor de 11,5 GB y tanto al principio del disco y he especificado que usaré root como punto de montaje.  Usted deberá utilizar un sistema de archivos compatible con Linux, así que usé la ext4 por defecto, aunque puede utilizar ext2, ext3, ReiserFS, o lo que sea.  Investigue un poco en línea y podrá elegir el mejor, pero si tiene dudas, aténgase a la opción predeterminada.  Puede ajustar el suyo para usar más espacio si lo tiene disponible, pero una vez más, es probable que no necesites más de 20 GB a menos que usted está instalando / compilando una gran cantidad de software.  Haga clic en "Aceptar" y estará listo para crear otra partición.


Esta vez, como puede ver, he elegido una partición lógica (el programa de particionado creará automáticamente una partición extendida).  Puesto que esta máquina tiene 512 MB de RAM, he usado aproximadamente 1.5 veces esta cantidad para espacio de SWAP  Puede notar que he ubicado la SWAP al final del disco, lo que ayudará a mantener los tiempos de búsqueda de disco al mínimo.  Haga clic en "Aceptar", y vamos a crear otra partición.


He seleccionado todo el resto del espacio en el centro para mi /home.  De nuevo he elegido ext4 como sistema de archivos.  Ahora esta zona gris: ¿debería ser primaria o lógica?  Elegí una partición primaria, porque sé que no voy a instalar otro sistema operativo aquí, de lo contrario habría elegido una lógica.  Si no piensa instalar más de tres sistemas operativos, podrá elegirla como primaria para simplificar.

Cuando hayas terminado, podrás reanudar la instalación.  Aquí está mi tabla de particiones resultante:


Si se te enfriaron los pies, puedes abandonar la instalación en este momento sin temor a la pérdida de datos.  Hasta este momento no se ha hecho nada, no hasta que hagas clic en "Instalar ahora", así que podrías volver atrás y cambiar todo a como lo quieras.

Ahora que sabes lo que son las particiones y cómo configurar de manera óptima su instalación de Linux, y son libres para continuar su búsqueda en línea.  Hay mucho más que aprender!  ¿Algún consejo o trucos para el proceso?  Tal vez algunas experiencias para compartir?  Asegúrese de dejar un comentario!

(1).- También depende de la distribución, sobre todo de si es una de las nuevas o no, antes esto funcionaba de otro modo y hay sistemas de archivos ahora que antes no existían, como /media por ejemplo.