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 el 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 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 de lo que necesite preocuparse 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

Ventajas de un sólo sistema de ficheros

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, partición 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 le permite a 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án siendo utilizandos en ese momento al espacio de intercambio, y los mueve de regreso (desplazando alguna otra cosa) cuando los necesita.

Algunas particiones tienen ciertas representaciones asociadas con ellas.

Partición Representación
a Normalmente contiene el sistema de ficheros raíz
b Normalmente contiene el espacio de intercambio (swap)
c Normalmente el mismo tamaño de la slice (“porción” o “rebanada”) que lo encierra. Esto permite a las utilidades que necesitan trabajar en la slice entera (por ejemplo, un explorador de bloques dañados) trabajar en la partición c. Normalmente no debe usted crear un sistema de ficheros en esta partición.
d La partición d solía tener un significado especial asociado, aunque ahora ya no lo tiene. En la actualidad algunas herramientas pueden comportarse de forma extraña si se les pide trabajar en la partición d, así que sysinstall no crear´ normalmente una partición d.

Cada partición-que-contiene-un-sistema-de-ficheros se almacena en lo que FreeBSD llama una slice. Porción es el término de FreeBSD para lo que comúnmente se conoce como partición, y de nuevo, conoce como partición, y de nuevo, esto se debe a la herencia UNIX de FreeBSD. Las slices están numeradas, empezando con 1, hasta 4.

Los números de slice siguen al nombre de dispositivo, a los que se antepone una s, comenzando desde 1. Así, “da0s1” es la primera slice en la primera unidad SCSI. Sólo puede haber cuatro slices físicas en un disco, pero puede haber slices lógicas dentro de slices físicas del tipo apropiado. Estas slices 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 espera que ocupen una slice.

Tanto las slices y las unidades físicas “peligrosamente dedicadas”, como otras unidades contienen particiones, que se designan mediante letras desde a hasta h. Esta letra se añade al nombre del dispositivo, así que “da0a” es la partición a en la primera unidad da, la cual está “peligrosamente dedicada”. “ad1s3e” es la quinta partición en la tercera slice de la segunda unidad de disco IDE.

Finalmente, 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, indicando qué disco es. A diferencia de las slices, la numeración de discos comienza desde 0. Los códigos comunes que usted verá se muestran en la Tabla 3-1.

Cuando se hace referencia a una partición, FreeBSD requiere que que también se nombre la slice y el disco que contiene la partición, y al referirse a una slice también debe referirse al nombre del disco. Esto se hace listando el nombre de disco, s (slice), el número de slice y por último la letra de la de slice y por último la letra de la partición. partición. Puede consultar varios ejemplos en la Ejemplo 3-1.

La Ejemplo 3-2 muestra un modelo conceptual del esquema de un disco que debería ayudarle a aclarar las cosas.

Para poder instalar FreeBSD debe primero configurar las particiones del disco, luego crear particiones dentro de la slice que utilizará para FreeBSD y luego crear un sistema de ficheros (o espacio de intercambio, swap) en cada partición, y decidir dónde se van a montar esos sistemas 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, slices 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 particiones 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 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.

Éste y otros documentos pueden obtenerse en ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Para preguntas acerca de FreeBSD, leer la documentación antes de contactar con la lista <questions@FreeBSD.org>.
Para preguntas acerca de esta documentación, e-mail a <doc@FreeBSD.org>.