Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
4.13. mount --bind и порядок подключения
Файловые системы должны подключаться в определенном порядке. Так, в приведенном ниже примере каталог
/var/log
должен быть смонтирован до того, как будет создана связь между ним и /tmp
.
# mount --bind /var/log /tmp
Как определяется порядок:
- Монтирование файловых систем осуществляется в порядке следования в
fstab
. Исключение составляют файловые системы с собственными сценариямиinit
и те, которые монтируются с флагом_netdev
. - Файловые системы с собственным сценарием
init
монтируются после обработки файлаfstab
. - Файловые системы, монтируемые с флагом
_netdev
, будут подключены во время инициализации сети.
Если системная конфигурация требует, чтобы монтирование GFS2 осуществлялось в переподключенный каталог, порядок действий в
fstab
должен быть следующим:
- Сначала монтируются локальные файловые системы.
- Устанавливается связь с каталогом, в который будет подключена GFS2.
- Монтирование GFS2 в этот каталог.
Если же наоборот надо перемонтировать локальный каталог в GFS2, порядок в
fstab
не играет никакой роли, так как GFS2 монтируется только на стадии выполнения сценария init
GFS2. В этом случае mount --bind
надо добавить в сценарий — тогда связь будет установлена после монтирования GFS2.
Ниже будет приведен пример сценария
init
, который смонтирует два каталога в файловую систему /mnt/gfs2a
.
Обратите внимание на числа в строке
chkconfig
:
- 345 — уровни выполнения, на которых будет запускаться сценарий;
- 29 — приоритет запуска, то есть сценарий будет запускаться после сценария инициализации GFS2, который имеет приоритет 26;
- 73 — приоритет остановки, то есть этот сценарий будет останавливаться до сценария GFS2, который имеет приоритет 74.
Запуск и остановку можно выполнить вручную с помощью команд
service start
и service stop
. Например, для запуска сценария fredwilma
выполните service fredwilma start
.
Сценарий надо поместить в
/etc/init.d
и присвоить ему такие же разрешения, как и у других сценариев в этом каталоге. Затем выполните chkconfig on
для его активации на выбранных уровнях выполнения: 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