lunes, 16 de junio de 2014

Preparando las maletas V - Sistemas de archivo

Quiero hacer un par de entradas sobre instalación de Linux, pero antes habría que hablar sobre sistemas de archivo, particiones y demás zarandajas que habrá que conocer antes de empezar ninguna instalación. No voy a meterme en detallas técnicos, sólo lo necesario para saber cómo particionar un disco, montar particiones y poco más.

Un disco duro, en sí, no es más que una superficie magnética (los tradicionales, claro; los SSD son otro mundo), y no sirve para almacenar datos de forma ordenada. Un sistema de archivos permite tener los datos organizados en archivos independientes, con un principio y un final, y un índice que nos dice dónde se encuentran físicamente los datos de cada archivo... y unas cuantas cosas más que no vienen al caso.
Podemos tener varios sistemas de archivos distintos en un mismo disco duro, siempre que se encuentren en distintas particiones. A modo de ejemplo, en Windows es típico tener dos particiones, cada una con un sistema de archivos NTFS: una para el sistema operativo y los programas (C:) y otra dedicada únicamente a datos (D:), aunque, por supuesto, eso no siempre es así. Hay quien prefiere tener una única partición para todo, o quien tiene la partición de datos en FAT32 (otro sistema de archivos más sencillo) para evitar problemas de compatibilidad, o quien tiene una partición oculta con una copia de seguridad del sistema (los ordenadores nuevos suelen venir de fábrica con una de éstas).
Una forma habitual de instalar Linux es mantener la partición (o particiones) NTFS de Windows, reduciéndole el tamaño si es necesario, y crear aparte las particiones extra que hagan falta para Linux. Aunque nuestro pingüino puede vivir en casi cualquier tipo de sistema de archivos, suele ser recomendable usar uno especialmente diseñado para él, como ext3 o ext4. También se recomienda siempre tener una partición Swap, que servirá de memoria virtual en caso de que, en algún momento, necesitemos más memoria RAM de la disponible. Otro consejo es crear una segunda partición ext3 o ext4 para nuestro directorio personal, en el que se almacenarán nuestros archivos personales y la configuración de nuestros programas.

Hay un problema: en principio sólo podemos tener cuatro particiones en un mismo disco duro. Éstas son las particiones primarias. Por suerte, podemos sacrificar una de estas particiones para crear una partición extendida, dentro de la cual podemos tener tantas particiones lógicas como queramos.
No es tan complicado como parece. En cada partición primaria tendremos un sistema de archivos (NTFS, FAT32, ext3... la que sea). En una partición lógica, lo mismo. La partición extendida sólo es un contenedor para particiones lógicas. A modo de ejemplo, podemos tener una partición lógica con el sistema NTFS para Windows, otra igual para datos, otra ext4 para la distribución Linux que vayamos a usar y otra Swap como espacio de intercambio, todas primarias... o podemos tener una primaria para Windows, otra para datos y una extendida que tenga dentro tres particiones ext3 y/o ext4 para tener tres distribuciones Linux distintas, otra igual para archivos de usuario de Linux y otra Swap, por ejemplo.
Esta imagen de la Wikipedia es bastante explicativa:

En rosa, las particiones primarias. En rojo, la partición extendida. Dentro de ella, en verde, varias particiones lógicas. El espacio en gris sólo es una parte del disco que no se ha particionado.

Si vienes de Windows, habrás visto muchas veces un disco duro con varias particiones que Windows trata como si fueran discos independientes (C:, D:, E, etc...). Linux no funciona así: para él, un sistema de archivos no es más que un directorio en la ruta en la que lo hayamos "montado".
En Linux, un disco duro es un dispositivo con un nombre muy concreto, como hda (disco IDE/ATA maestro), sda (disco SCSI o SATA maestro) o sdb (disco SCSI o SATA esclavo). Así, las particiones tienen un número asignado según el orden en que se encuentren dentro del disco (sda1, sda2, sda3...).
Para trabajar con particiones, esto es, acceder a sus archivos, antes hay que montarlas: básicamente le decimos al sistema que los archivos de tal partición deben ser accesibles en el directorio cual. Por ejemplo, mi partición FAT32 que utilizo para datos y que en Windows se llama D:, en Linux es sda2 y la tengo montada en /mnt/datos/.
Aclarar que la mayoría (si no todas) las distribuciones modernas montan los discos automáticamente: los sistemas de archivos fijos (los que hay en discos duros internos) se montan durante el arranque donde les hayamos indicado en la instalación del sistema y los extraibles (CDs, DVDs, pendrives...) en el directorio que la distribución considere adecuado (normalmente en /media/). Se puede hacer manualmente, pero es un tema aparte que no es relevante ahora.

Notas:
- Windos sólo se puede instalar en una partición primaria. Linux puede instalarse en cualquiera.
- Antes de tocar nada en cualquier partición habría que hacer una copia de seguridad de los datos. Un pequeño error puede hacernos perder todos los datos del disco.
- En alguna distribución ya me ha pasado que el instalador me monta las particiones de Windows en /media/ y luego me da problemas de permisos de usuario. En cambio, si le digo al instalador que las monte en /mnt/ nunca me dan problemas.

Pues esto es todo por hoy. Como siempre, se admiten sugerencias, correcciones, opiniones, insultos y/o sangre.
En la próxima entrada veremos la instalación de una distro Linux típica, y comprobaremos que el único paso "complicado" es el que se refiere a los sistemas de archivos.
Para después tengo reservada otra entrada en la que vemos cómo instalar Windows en un disco que ya tiene un Linux instalado, algo bastante más complicado. La tengo escrita desde hace meses, pero por falta de tiempo no he podido pulirla y publicarla hasta ahora...

2 comentarios:

  1. Un artículo muy ilustrativo; me resultó curioso cuando instalé Lubuntu directamente - sin especificar particiones - en el viejo Pentium 4, y curiosamente desde él puedo acceder a la vieja partición que tenía windows 2000 proffesional, denominada D: y ahora entiendo el por qué ;-)

    ResponderEliminar
    Respuestas
    1. Eso se verá más claramente en el siguiente post (instalación típica e Linux), pero sí, la historia es que los instaladores actuales suelen detectar los sistemas de archivo ya existentes y montarlos automáticamente, sin intervención del usuario.
      Lo "malo" es que no siempre nos interesa que se haga así; a menudo es mejor hacer un particionmiento (¡vaya palabreja fea!) personalizado. Por ejemplo, dejar una partición de Linux muy pequeña porque nuestros datos los vamos a alojar en otra, o muy grande porque vamos a instalar programas muy pesados, o queremos tener una partición exclusiva para el área de usuario, o montar particiones en puntos específicos... Y de ahí este tochaco infumable. =8P

      Eliminar