Particiones en GNU Linux

En la web hemos tratado la instalación de diferentes distribuciones GNU Linux y FreeBSD. Una de la partes principales de dichos tutoriales, es lo referido a la creación de particiones de disco y su respectivo montaje sobre diversas ubicaciones. El fin de éste artículo es explicar con más detalle dicho proceso.

tux-gnu-linux

Particiones en GNU Linux

Los discos duros son unidades periféricas, que se conectan a la placa base de nuestro PC, mediante conexiones (bus) IDE o SATA. Actualmente los discos sólidos son los que están, poco a poco, sustituyendo a los viejos discos rígidos, que hasta ahora predominaban en el mercado. Cuando instalamos un sistema operativo sobre ellos, se tienen que crear particiones, aplicando un formato de bajo nivel. Dichas particiones deben tener un sistemas de archivos o ficheros. El sistema operativo tratará cada partición como si fuese un disco independiente.

Sistemas de ficheros habituales

En GNU Linux se trabajan con una serie de sistemas de ficheros, vamos a ver los más habituales:

  • Ext4, es el sustituto de ext3. Se trata de un sistema de ficheros transaccional.  Entre las mejoras que incluye están el soporte para volúmenes de hasta 1024 PiB, menos uso de la CPU, mejoras en la velocidad de escritura y lectura.
  • Btrfs, también está pensado para sustituir ext3.  Permite empaquetado eficiente en espacio de archivos pequeños y directorios indexados. Asignación dinámica de inodos, esto permite que no se fije un número máximo de ficheros. Permite la creación de instantaneas o snapshots. Compresión. No hace falta desmontar el sistemas de ficheros para comprobarlo.  Ha sido creado por Oracle.
  • XFS, es ya un clásico, ya que se creó a principios de los años 90 del siglo pasado. Soporta hasta 8 exabytes, utiliza journaling, es ideal para particiones LVM.
  • ReiserFS,  utiliza journaling, esto es, previene el riesgo de corrupción del sistemas de archivos. Podemos redimensionar el sistemas de ficheros sin tener que desmonstar la unidad. Aún así para disminuir su espacio sí tiene que estar desmontado. Tiene algunas otras limitaciones, ya que no permite el proceso de desfragmentación, entre otras.
  • FAT32 y NTFS, son sistemas de ficheros típicos de Microsoft Windows, no se usan en sistemas tipo UNIX.
  • Espacio de intercambio o SWAP. Es una zona de disco que se usa para guardar las imágenes de los procesos que no han de mantenerse en memoria física. Es una partición clave, ya que libera momentaneamente de la memoria volátil, procesos poco activos. Y de ésta manera poder asignar dicha memoria a procesos más importantes. No se ha de abusar de ésta partición, ya que al ir sobre disco, el proceso es lento.

Puntos de montaje

Una vez ya sabemos que sistema de ficheros nos va mejor, tenemos que conocer los diferentes puntos de montaje que necesitamos. Las particiones se «montan» sobre directorios. Lo más básico es tener dos particiones, una para la unidad SWAP y la otra sobre la raíz del sistema o «/«. En la mayoría de instalaciones ésta elección es denominada «para novatos» Veamos primero como se divide el sistema directorios. Se parte siempre desde la raíz, y de allí «cuelgan» una serie de carpetas, que pueden tener subcarpetas y ficheros. Los principales son, de manera rápida:

  • /bin Contiene los binarios, esto es, los ejecutables necesarios para el funcionamiento del sistema operativo.
  • /boot Es donde están ubicados los ficheros necesarios para el arranque del sistema, pero no los de configuración. Aquí se almacenan todos los ficheros que cargan primero, justo antes de cargar el kernel, como por ejemplo GRUB o LILO. Es recomendable que tenga su propia partición.
  • /dev Recordad que en todos los sistemas tipo UNIX, todo es un fichero. Por lo que los dispositivos de hardware también se tratan como si fuesen un fichero, y se encuentran almacenados aquí. Al acceder, por ejemplo, a una unidad Flash USB, estamos accediendo a su fichero, tanto en la lectura como en la escritura.
  • /etc Es un directorio clave, ya que aquí se encuentran los ficheros de configuración del sistema operativo, aunque también se pueden complementar con algunos otros ficheros ubicados en /home.
  • /home Su función es almacenar la totalidad de los ficheros de los usuarios, exceptuando root. Tal y como hemos visto en la línea anterior, también se ubican ficheros de configuración para cada usuario.
  • /lib Contiene bibliotecas compartidas, necesarias para los ejecutables ubicados en /bin y /sbin
  • /mnt Aquí se ubican los puntos de montaje de los periféricos, como discos duros externos.
  • /media Es muy similar a /mnt y tiene las mismas funciones.
  • /opt Aquí se ubican los programas que añaden los usuarios, diferentes de los del sistema operativo.
  • /proc Se trata de un sistema archivos virtual. Devuelve información sobre diferentes procesos y aplicaciones que están funcionando en nuestro sistema operativo.
  • /root Es el directorio del superusuario.
  • /sbin  Almacena ficheros ejecutables que sólo pueden ejecutar el usuario root y los administradores del sistema.
  • /srv Algunas distribuciones utilizan éste directorio para ubicar ciertos servicios. Ejemplo de ello sería un servidor web /srv/www o un servidor ftp /srv/ftp.
  • /tmp Es donde se almacenan los ficheros temporales. Por normal general al reiniciar el sistema se elimina la información ubicada aquí.
  • /usr Contiene los ficheros de la mayoría de programas instalados.
  • /var Ubica generalmente información que varía con el funcionamiento del sistema. También incluye en muchos casos los directorios raíz de servidores web o colas de correo.
  • /sys Es similar a /proc, aquí podemos encontrar información del kernel, de las particones, etcétera.

Particionado ideal

Como todo en la vida depende. Es decir, por ejemplo, si vamos a utilizar el disco para una distribución GNU Linux o FreeBSD para nuestro PC, que sólo utilizaremos para el día a día, esto es, mirar correos, navegar por Internet y cosas por el estilo, supongamos que tenemos un disco de 512 GB de disco duro y 4 GB de memoria volátil, un particionado recomendable sería el siguiente:

  • Lo ideal para la partición SWAP es asignarle el número de GB de memoria volátil multiplicado por dos. En éste caso sería 8 GB de espacio.
  • Tal y como he comentado antes me gusta tener el directorio /boot por separado en una partición. No ocupa mucho espacio, realmente con 1 GB tendremos de sobra.
  • Para que el usuario tenga espacio de sobra para sus películas, fotos, vídeos y otras cosas, le daremos a carpeta /home, 518 GB de espacio.
  • A la raíz del sistema, donde irá todo lo demás, asignaremos el resto, esto es, unos 23 GB, espacio más que de sobra.

Para que se entienda más, voy a utilizar una distribución Debian 8 «Jessie», y aplicando lo comentado antes, quedaría así:

particiones-gnu-linux-010

Hay que recalcar que /boot tiene que ser marcado como arrancable o «bootable«.

Una vez instalado el sistema, si utilizamos el comando fdisk, veremos el resultado:

particiones-gnu-linux-011

En otros casos, por ejemplo, un servidor web, tendríamos que crear un punto de montaje independiente para /var o /usr, depende donde ubiquemos los proyectos webs.

Espero que os haya parecido interesante. Si tenéis alguna duda dejad un comentario ; )