4.13. Orden de montaje de enlace y montaje de sistema de archivos
Cuando utilice la opción
bind
del comando mount
, usted debe asegurarse de que los sistemas de archivos se monten en el orden correcto. En el siguiente ejemplo, el directorio /var/log
debe estar montado antes de ejecutar el montaje enlazado en el directorio /tmp
:
# mount --bind /var/log /tmp
El orden del montaje del sistema de archivos se determina así:
- En general, el orden del montaje del sistema de archivos está determinado por el orden en el que aparecen en el archivo
fstab
. Las excepciones a este orden son sistemas de archivos montados con el indicador_netdev
o sistemas de archivos que tienen sus propios scriptsinit
. - Un sistema de archivos con su propio script
init
se monta más adelante en el proceso de inicialización, después del sistema de archivos en el archivofstab
. - Los sistemas de archivos montados con el indiciador
_netdev
se montan cuando la red ha sido activada en el sistema.
Si su configuración requiere que usted cree un montaje enlazado para montar el sistema de archivos GFS2, puede ordenar su archivo
fstab
así:
- Monte los sistemas de archivos locales que se requieran para el montaje de enlace.
- Vincule el montaje del directorio en el cual monta el sistema de archivos GFS2.
- Monte el sistema de archivos GFS2.
Cuando su configuración requiere que usted monte en enlace un directorio local o sistema de archivos en un sistema de archivos GFS2, si lista los sistemas de archivos en el orden correcto en el archivo
fstab
no montará el sistema de archivos correctamente, puesto que GFS2 solamente se montará hasta que se ejecute el script init
de GFS2. En este caso, debe escribir un script init
para ejecutar el montaje de enlace para que el montaje de enlace se realice después de que se monte el sistema de archivos GFS2.
El siguiente es un ejemplo de un script personalizado de
init
. El script realiza un montaje de enlace de dos directorios encima de dos directorios de sistemas de archivos GFS2. En este ejemplo, hay un punto de montaje de GFS2 en /mnt/gfs2a
, el cual se monta cuando el script init
de GFS2 se ejecuta, después del inicio de clúster.
En este script de ejemplo, los valores de la declaración
chkconfig
indican lo siguiente:
- 345 indica los niveles de ejecución en los que el script se iniciará
- 29 es la prioridad de inicio, la cual indica que el script se ejecutará en el inicio después del script
init
GFS2, el cual tiene una prioridad de inicio de 26. - 73 es la prioridad de parada, lo cual indica que en este caso el script se detendrá durante el apagado antes del script GFS2, el cual tiene una prioridad de parada de 74
Los valores de inicio y de parada indican que puede realizar manualmente la acción indicada al ejecutar el comando
service start
y un comando service stop
. Por ejemplo, si el script se llama fredwilma
, ejecute service fredwilma start
.
Este script debe ponerse en el directorio
/etc/init.d
con los mismos permisos como los otros scripts en ese directorio. Puede entonces ejecutar un comando chkconfig on
para enlazar el script a los niveles de ejecución indicados. Por ejemplo, si el script se llama fredwilma
, entonces puede ejecutar chkconfig fredwilma on
.
#!/bin/bash # # chkconfig: 345 29 73 # description: mount/unmount my custom bind mounts onto a gfs2 subdirectory # # ### BEGIN INIT INFO # Provides: ### END INIT INFO . /etc/init.d/functions case "$1" in start) # In this example, fred and wilma want their home directories # bind-mounted over the gfs2 directory /mnt/gfs2a, which has # been mounted as /mnt/gfs2a mkdir -p /mnt/gfs2a/home/fred &> /dev/null mkdir -p /mnt/gfs2a/home/wilma &> /dev/null /bin/mount --bind /mnt/gfs2a/home/fred /home/fred /bin/mount --bind /mnt/gfs2a/home/wilma /home/wilma ;; stop) /bin/umount /mnt/gfs2a/home/fred /bin/umount /mnt/gfs2a/home/wilma ;; status) ;; restart) $0 stop $0 start ;; reload) $0 start ;; *) echo $"Usage: $0 {start|stop|restart|reload|status}" exit 1 esac exit 0