Next: Dispositivos traducidos, Previous: Referencia de operating-system
, Up: Configuración del sistema [Contents][Index]
La lista de sistemas de archivos que deben montarse se especifica en el
campo file-systems
de la declaración del sistema operativo
(see Uso de la configuración del sistema). Cada sistema de archivos se
declara usando la forma file-system
, como en el siguiente ejemplo:
(file-system
(mount-point "/home")
(device "/dev/sda3")
(type "ext4"))
Como es habitual, algunos de los campos son obligatorios—aquellos mostrados en el ejemplo previo—mientras que otros pueden omitirse. Se describen a continuación.
Objetos de este tipo representan los sistemas de archivos a montar. Contienen los siguientes campos:
type
Este campo es una cadena que especifica el tipo de sistema de archivos—por
ejemplo, "ext4"
.
mount-point
Designa la ruta donde el sistema de archivos debe montarse.
device
Nombra la “fuente” del sistema de archivos. Puede ser una de estas tres opciones: una etiqueta de sistema de archivos, un UUID de sistema de archivos o el nombre de un nodo /dev. Las etiquetas y UUID ofrecen una forma de hacer referencia a sistemas de archivos sin codificar su nombre de dispositivo actual32.
Las etiquetas del sistema de archivos se crean mediante el uso del
procedimiento file-system-label
, los UUID se crean mediante el uso de
uuid
y los nodos /dev son simples cadenas. A continuación se
proporciona un ejemplo de un sistema de archivos al que se hace referencia
mediante su etiqueta, como es mostrada por la orden e2label
:
(file-system
(mount-point "/home")
(type "ext4")
(device (file-system-label "mi-home")))
Los UUID se convierten dede su representación en forma de cadena (como se
muestra con la orden tune2fs -l
) mediante el uso de la forma
uuid
33, como sigue:
(file-system
(mount-point "/home")
(type "ext4")
(device (uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb")))
Cuando la fuente de un sistema de archivos es un dispositivo traducido
(see Dispositivos traducidos), su campo device
debe hacer
referencia al nombre del dispositivo traducido—por ejemplo,
"/dev/mapper/particion-raiz". Esto es necesario para que el sistema
sepa que el montaje del sistema de archivos depende del establecimiento de
la traducción de dispositivos correspondiente.
flags
(predeterminadas: '()
)This is a list of symbols denoting mount flags. Recognized flags include
read-only
, bind-mount
, no-dev
(disallow access to
special files), no-suid
(ignore setuid and setgid bits),
no-atime
(do not update file access times), no-diratime
(likewise for directories only), strict-atime
(update file access
time), lazy-time
(only update time on the in-memory version of the
file inode), no-exec
(disallow program execution), and shared
(make the mount shared). See Mount-Unmount-Remount in The GNU C
Library Reference Manual, for more information on these flags.
options
(predeterminadas: #f
)This is either #f
, or a string denoting mount options passed to the
file system driver. See Mount-Unmount-Remount in The GNU C Library
Reference Manual, for details.
Run man 8 mount
for options for various file systems, but beware
that what it lists as file-system-independent “mount options” are in fact
flags, and belong in the flags
field described above.
The file-system-options->alist
and alist->file-system-options
procedures from (gnu system file-systems)
can be used to convert file
system options given as an association list to the string representation,
and vice-versa.
mount?
(predeterminado: #t
)Este valor indica si debe montarse el sistema de archivos automáticamente al
iniciar el sistema. Cuando se establece como #f
, el sistema de
archivos tiene una entrada en /etc/fstab (el cual es leído por la
orden mount
) pero no se montará automáticamente.
needed-for-boot?
(predeterminado: #f
)Este valor lógico indica si el sistema de archivos es necesario para el arranque. Si es verdadero, el sistema de archivos se monta al cargar el disco inicial en RAM (initrd). Este es siempre el caso, por ejemplo, para el sistema de archivos raíz.
check?
(predeterminado: #t
)This Boolean indicates whether the file system should be checked for errors before being mounted. How and when this happens can be further adjusted with the following options.
skip-check-if-clean?
(default: #t
)When true, this Boolean indicates that a file system check triggered by
check?
may exit early if the file system is marked as “clean”,
meaning that it was previously correctly unmounted and should not contain
errors.
Setting this to false will always force a full consistency check when
check?
is true. This may take a very long time and is not
recommended on healthy systems—in fact, it may reduce reliability!
Conversely, some primitive file systems like fat
do not keep track of
clean shutdowns and will perform a full scan regardless of the value of this
option.
repair
(default: 'preen
)When check?
finds errors, it can (try to) repair them and continue
booting. This option controls when and how to do so.
If false, try not to modify the file system at all. Checking certain file
systems like jfs
may still write to the device to replay the
journal. No repairs will be attempted.
If #t
, try to repair any errors found and assume “yes” to all
questions. This will fix the most errors, but may be risky.
If 'preen
, repair only errors that are safe to fix without human
interaction. What that means is left up to the developers of each file
system and may be equivalent to “none” or “all”.
create-mount-point?
(predeterminado: #f
)Cuando es verdadero, el punto de montaje es creado si no existía previamente.
mount-may-fail?
(predeterminado: #f
)Cuando tiene valor verdadero indica que el montaje de este sistema de
archivos puede fallar pero no debe considerarse un error. Es útil en casos
poco habituales; un ejemplo de esto es efivarfs
, un sistema de
archivos que únicamente puede montarse en sistemas EFI/UEFI.
dependencies
(predeterminadas: '()
)Una lista de objetos <file-system>
o <mapped-device>
que
representan sistemas de archivos que deben montarse o dispositivos
traducidos que se deben abrir antes (y desmontar o cerrar después) que el
declarado.
Como ejemplo, considere la siguiente jerarquía de montajes: /sys/fs/cgroup es una dependencia de /sys/fs/cgroup/cpu y /sys/fs/cgroup/memory.
Otro ejemplo es un sistema de archivos que depende de un dispositivo traducido, por ejemplo una partición cifrada (see Dispositivos traducidos).
Este procedimiento devuelve un objeto opaco de etiqueta del sistema de archivos a partir de str, una cadena:
(file-system-label "home") ⇒ #<file-system-label "home">
Las etiquetas del sistema de archivos se usan para hacer referencia a los sistemas de archivos por etiqueta en vez de por nombre de dispositivo. Puede haber encontrado previamente ejemplos en el texto.
El módulo (gnu system file-systems)
exporta las siguientes variables
útiles.
Estos son los sistemas de archivos esenciales que se necesitan en sistemas
normales, como %pseudo-terminal-file-system
y %immutable-store
(véase a continuación). Las declaraciones de sistemas operativos deben
contener siempre estos al menos.
El sistema de archivos que debe montarse como /dev/pts. Permite la
creación de pseudoterminales a través de openpty
y funciones
similares (see Pseudo-Terminals in The GNU C Library Reference
Manual). Los pseudoterminales son usados por emuladores de terminales como
xterm
.
Este sistema de archivos se monta como /dev/shm y se usa para
permitir el uso de memoria compartida entre procesos (see shm_open
in The GNU C Library Reference Manual).
Este sistema de archivos crea un montaje enlazado (“bind-mount”) de
/gnu/store, permitiendo solo el acceso de lectura para todas las
usuarias incluyendo a root
. Esto previene modificaciones accidentales
por software que se ejecuta como root
o por las administradoras del
sistema.
El daemon sí es capaz de escribir en el almacén: vuelve a montar /gnu/store en modo lectura-escritura en su propio “espacio de nombres”.
El sistema de archivos binfmt_misc
, que permite que el manejo de
tipos de archivos ejecutables arbitrarios se delegue al espacio de
usuaria. Necesita la carga del módulo del núcleo binfmt.ko
.
El sistema de archivos fusectl
, que permite a usuarias sin
privilegios montar y desmontar sistemas de archivos de espacio de usuaria
FUSE. Necesita la carga del módulo del núcleo fuse.ko
.
El módulo (gnu system uuid)
proporciona herramientas para tratar con
“identificadores únicos” de sistemas de archivos (UUID).
Devuelve un objeto opaco de UUID (identificador único) del tipo (un símbolo) procesando str (una cadena):
(uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb") ⇒ #<<uuid> type: dce bv: …> (uuid "1234-ABCD" 'fat) ⇒ #<<uuid> type: fat bv: …>
tipo puede ser dce
, iso9660
, fat
, ntfs
, o
uno de sus sinónimos habitualmente usados para estos tipos.
Los UUID son otra forma de hacer referencia de forma inequívoca a sistemas de archivos en la configuración de sistema operativo. Puede haber encontrado previamente ejemplos en el texto.
Fíjese que, aunque es tentador usa /dev/disk/by-uuid y nombres de dispositivo similares para obtener el mismo resultado, no es lo recomendado: estos nodo especiales de dispositivos se crean por el daemon udev y puede no estar disponible cuando el dispositivo sea montado.
La forma uuid
espera un UUID de 16 bytes como se
define en la RFC 4122. Este
es el formato de UUID que usan la familia de sistemas de archivos ext2 y
otros, pero es diferente de los “UUID” de los sistemas de archivos FAT,
por ejemplo.
Next: Dispositivos traducidos, Previous: Referencia de operating-system
, Up: Configuración del sistema [Contents][Index]