3.5. Organización de disco
Anterior | Capítulo 3. Conceptos básicos de Unix | Siguiente

## 3.5. Organización de disco

La unidad más pequeña que FreeBSD utiliza para ubicar ficheros es el nombre de fichero. Los nombres de fichero son sensibles a las mayúsculas, lo que significa que `readme.txt` y `README.TXT` son dos ficheros distintos. FreeBSD no utiliza la extensión (`.txt`) de un fichero para determinar si es un programa, o un documento o alguna otra forma de datos.

Los ficheros se almacenan en directorios. Un directorio puede estar vacío, o puede contener cientos de ficheros. Un directorio también puede contener otros directorios, permitiéndole contruir una jerarquía de directorios dentro de otro. Esto hace mucho más fácil la organización de sus datos.

Para referirse a ficheros o directorios se usa el nombre de archivo o de directorio, seguido por una barra, `/`, seguido por cualquier otro nombre de directorio que sea necesario. Si tiene un directorio `tal`, el cual contiene el directorio `cual`, el cual contiene el fichero `readme.txt`, entonces el nombre completo o ruta al fichero es `tal/cual/readme.txt`.

Los directorios y ficheros se almacenan en un sistema de ficheros. Cada sistema de ficheros contiene un sólo directorio en el nivel más elevado, que es el directorio raíz de ese sistema de ficheros. Este directorio raíz puede contener otros directorios.

Lo visto hasta ahora probablemente sea similar a cualquier otro sistema operativo que pueda haber utilizado, pero hay unas cuantas diferencias; por ejemplo, MS-DOS® utiliza `\` para separar nombres de fichero y directorio, mientras que Mac OS® usa `:`.

FreeBSD no utiliza letras de unidades, u otro nombre de unidad en la ruta. Por tanto, no podrá escribir `c:/tal/cual/readme.txt` en FreeBSD.

En FreeBSD, en cambio, un sistema de ficheros recibe el nombre de sistema de ficheros raíz. El directorio raíz del sistema de ficheros raíz se representa como `/`. Cualquier otro sistema de ficheros, por tanto, se monta bajo el sistema de ficheros raíz. No importa cuántos discos tenga en su sistema FreeBSD, cada directorio parecerá ser parte del mismo disco.

Suponga que tiene tres sistemas de ficheros, denominados `A`, `B` y `C`. Cada sistema de ficheros tiene un directorio raíz, el cual contiene otros dos directorios, llamados `A1`, `A2` (y de la misma manera `B1`, `B2` y `C1`, `C2`).

Usaremos `A` como sistema de ficheros raíz. Si usara `ls` para ver el contenido de este directorio vería dos subdirectorios, `A1` y `A2`. El árbol de directorios sería como este:

Un sistema de ficheros debe montarse en un directorio de otro sistema de ficheros. Ahora suponga que monta el sistema de ficheros `B` en el directorio `A1`. El directorio raíz de `B` reemplaza a `A1`, y los directorios en `B` aparecen de esta manera:

Cualquier fichero que esté en el directorio `B1` o `B2` puede encontrarse con la ruta `/A1/B1` o `/A1/B2` según sea necesario. Cualquier fichero que esté en `/A1` ha desaparecido temporalmente. Aparecerán de nuevo si `B` se desmonta de A.

Si `B` se monta en `A2` entonces el diagrama se vería así:

y las rutas serían `/A2/B1` y `/A2/B2` respectivamente.

Pueden montarse sistemas de ficheros uno sobre otro. Continuando con el ejemplo anterior, el sistema de ficheros `C` podría montarse en el directorio `B1` en el sistema de ficheros `B`, lo que nos llevaría a esto:

O `C` podría montarse directamente en el sistema de ficheros `A`, bajo el directorio `A1`:

Si está familiarizado con MS-DOS® esto es similar, aunque no idéntico, a utilizar `join`.

Esto no es algo a lo deba usted dedicar tiempo de forma habitual. Normalmente creará sistemas de ficheros al instalar FreeBSD y decidirá dónde montarlos; lo más habitual es que no los cambie de sitio a menos que agregue un disco nuevo.

Es perfectamente posible tener un sistema de ficheros raíz extenso y no necesitar crear otros. Este esquema tiene unos cuantos inconvenientes y una ventaja:

Ventajas de disponer de múltiples sistemas de ficheros

- Si dispone de varios sistemas de ficheros puede optar por usar distintas opciones de montaje. Por ejemplo, gracias a una planificación cuidadosa, el sistema de ficheros raíz puede montarse como sólo-lectura, haciendo imposible borrar sin querer o editar un fichero crítico. Al mantener separados sistemas de ficheros en los que los usuarios pueden escribir, como `/home`, de otros sistemas de ficheros también le permite montar con la opción nosuid; dicha opción previene que los bits suid/guid en los ejecutables almacenados en el sistema de ficheros tengan efecto, mejorando en cierto modo la seguridad.

- FreeBSD optimiza automáticamente el esquema de ficheros en un sistema de ficheros, dependiendo de cómo el sistema de ficheros esté siendo utilizado. Uno que contenga muchos ficheros pequeños tendrá una optimización distinta de uno que contenga menos ficheros y más grandes. Si sólo tiene un gran sistema de ficheros no hay manera de aplicar esta optimización.

- Los sistemas de ficheros de FreeBSD son muy robustos en caso de sufrir un caída eléctrica. De todas maneras, un fallo eléctrico en un momento crítico puede dañar la estructura del sistema de ficheros. Si reparte sus datos en múltiples sistemas de ficheros hará que sea más probable que el sistema arranque después de uno de esos fallos, haciéndole además más fácil la tarea de restaurarlo desde un respaldo si fuera necesario.

Ventajas de un sólo sistema de ficheros

- Los sistemas de ficheros son de un tamaño fijo. Si crea un sistema de ficheros cuando instala FreeBSD y le da un tamaño específico, tal vez descubra más tarde que necesita hacer la partición más grande. Esto no es fácil de realizar sin hacer una copia de seguridad, crear de nuevo el sistema de ficheros con el nuevo tamaño y entonces restaurar los datos respaldados.

  ### Importante:

  FreeBSD dispone de growfs(8), que permite incrementar el tamanño de un sistema de ficheros «al vuelo», eliminando esta limitación.

Los sistemas de ficheros están alojados en particiones. Este es un detalle muy importante, puesto que el término partición no significa aquí lo mismo que en otros entornos (por ejemplo, en MS-DOS®) debido a la herencia UNIX® de FreeBSD. Cada partición se identifica con una letra desde `a` hasta `h`. Cada partición puede contener solamente un sistema de ficheros, lo que significa que los sistemas de ficheros suelen definirse mediante su punto de montaje en la jerarquía del sistema de ficheros o por la letra de la partición en la que están alojados.

FreeBSD también utiliza espacio de disco como espacio de intercambio (swap). El espacio de intercambio le brinda a FreeBSD memoria virtual. Esto permite al su sistema comportarse como si tuviera más memoria de la que realmente tiene. Cuando a FreeBSD se le agota la memoria mueve algunos de los datos que no está utilizando en ese momento al espacio de intercambio, y los vuelve a poner donde estaban (desplazando alguna otra cosa) cuando los necesita.

Algunas particiones tienen ciertas convenciones heredadas.

Partición | Representación
--- | ---
`a` | Normalmente contiene el sistema de ficheros raíz
`b` | Normalmente contiene el espacio de intercambio (swap)
`c` | Suele tener el mismo tamaño de la «slice» que la encierra. Esto permite a las utilidades que necesitan trabajar en toda la «slice» entera (por ejemplo durante una búsqueda de bloques dañados) trabajar en la partición `c`. Normalmente no debería usted crear un sistema de ficheros en esta partición.
`d` | La partición `d` solía tuvo un significado especial asociado pero ya no lo tiene.

Cada partición que contiene un sistema de ficheros se almacena en lo que FreeBSD llama una «slice». «slice» es en FreeBSD lo que en otros ámbitos se denomina partición; es un hecho que deriva de los orígenes de FreeBSD como ya sabemos basado en UNIX®.

Los números de «slice» muestran el nombre de dispositivo, al que precede una `s` y un número que puede ser un 1 u otro número mayor. Por lo tanto «da0s1» es la primera slice en la primera unidad SCSI. Sólo puede haber cuatro «slice» físicas en un disco, pero puede haber «slice» lógicas dentro «slice» físicas del tipo apropiado. Estas «slice»extendidas se numeran a partir de 5, así que «ad0s5» es la primera «slice» extendida en el primer disco IDE. Estos dispositivos se usan en sistemas de ficheros que se preve que ocupen una slice.

Tanto las «slice» y las unidades físicas «peligrosamente dedicadas», como otras unidades contienen particiones, que se designan mediante letras desde la `a` hasta `h`. Esta letra se añade al nombre del dispositivo. Se verá mucho mejor mediante ejemplos: «da0a» es la partición a en la primera unidad da y es una de esas a las que llamamos «peligrosamente dedicada». «ad1s3e» es la quinta partición en la tercera slice de la segunda unidad de disco IDE.

Para terminar, cada disco en el sistema tiene también su designación. El nombre de disco comienza por un código que indica el tipo de disco, luego un número, que indica qué disco es. A diferencia de las «slice», la numeración de discos comienza desde 0. Puede las numeraciones más comunes en el Tabla 3.1, “Códigos de dispositivos de disco”.

Cuando se hace referencia a una partición, FreeBSD necesita que también se nombre la «slice» y el disco que contiene la partició. Esto se hace con el nombre de disco, `s`, el número «slice» y por último la letra de la partición. Tiene varios casos en el Ejemplo 3.1, “Ejemplo de nombres de disco, «slice» y partición”.

En el Ejemplo 3.2, “Modelo conceptual de un disco” muestra un modelo conceptual del esquema de un disco que debería ayudarle a aclarar las cosas.

Antes de instalar FreeBSD tendrá que configurar las «slice» de disco, después crear particiones dentro de las «slice» que vaya a usar en FreeBSD y luego crear un sistema de ficheros (o swap) en cada partición y luego decidir cuál va a ser el punto de montaje del sistema de ficheros.

Tabla 3.1. Códigos de dispositivos de disco

Código | Significado
--- | ---
`ad` | Disco ATAPI (IDE)
`da` | Disco de acceso directo SCSI
`acd` | CDROM ATAPI (IDE)
`cd` | CDROM SCSI
`fd` | Disquete (floppy)

Ejemplo 3.1. Ejemplo de nombres de disco, «slice» y partición

Nombre | Significado
--- | ---
`ad0s1a` | La primera partición (`a`) en la primera slice (`s1`) en el primer disco IDE (`ad0`).
`da1s2e` | La quinta partición (`e`) en la segunda slice (`s2`) en el segundo disco SCSI (`da1`).

Ejemplo 3.2. Modelo conceptual de un disco

Este diagrama muestra cómo ve FreeBSD el primer disco IDE en el sistema. Se asume que el disco es de 4 GB, y contiene dos «slices» de 2 GB (particiones MS-DOS®). La primera partición contiene un disco MS-DOS®, `C:`, y la segunda partición contiene una instalación de FreeBSD. Esta instalación de ejemplo tiene tres particiones, y una partición swap.

Cada una de las tres particiones tiene un sistema de ficheros. La partición `a` se utilizará para el sistema de ficheros raíz, `e` para la jerarquía del directorio `/var`, y `f` para la jerarquía del directorio `/usr`.

Anterior | Subir | Siguiente
3.4. Estructura de directorios | Inicio | 3.6. Montaje y desmontaje de sistemas de ficheros

Puede descargar éste y muchos otros documentos desde ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/

Si tiene dudas sobre FreeBSD consulte la documentación antes de escribir a la lista <questions@FreeBSD.org>.
Envíe sus preguntas sobre la documentación a <doc@FreeBSD.org>.