Назад | Перейти на главную страницу

Быстрый способ восстановить или перезагрузить настройки / etc / fstab?

Я работаю со сложным /etc/fstab на сервере на основе RHEL 6.x. Система имеет множество вариантов монтирования, используемых в восьми разделах, включая несколько привязок. Я тестирую варианты и их влияние на изображение, над которым работаю.

например такие варианты, как nodev,nosuid,noexec,nobarrier и несколько Параметры файловой системы XFS на месте.

Хотя я знаю, что можно перемонтировать с определенными параметрами, есть ли быстрый способ вернуть все монтирования к постоянным настройкам, жестко запрограммированным в /etc/fstab?

Например sysctl -p загружает /etc/sysctl.conf ценит и применяет их. Есть ли mount эквивалент?


Редактировать:

Пример конфигурации:

#
# /etc/fstab
#
UUID=e6ca80cd    /                       ext4    noatime,nobarrier        1 1
UUID=a327d315    /boot                   ext4    defaults                 1 2
UUID=333ada18    /home                   ext4    noatime,nobarrier,nodev  1 2
UUID=7835718b    /tmp                    ext4    nodev,nosuid,noexec      1 2
UUID=4dd2e9d4    /usr                    ext4    defaults                 1 2
UUID=c274f65f    /var                    ext4    noatime,nobarrier        1 2
UUID=5b5941e0    /var/log                ext4    defaults                 1 2
UUID=3645951a    /var/log/audit          ext4    defaults                 1 2
UUID=3213123c    /vol1                   xfs     noatime,logbufs=8,nobarrier 1 2
UUID=1ee1c070    swap                    swap    defaults                 0 0
# Bind mount for /tmp
/tmp             /var/tmp                none    bind                     0 0
tmpfs            /dev/shm                tmpfs   nodev,nosuid,noexec      0 0
devpts           /dev/pts                devpts  gid=5,mode=620           0 0
sysfs            /sys                    sysfs   defaults                 0 0
proc             /proc                   proc    defaults                 0 0

Конечно, разработчик просит выполнять разрешения на /tmp чтобы установить приложение ...

Я нахожу, что remount опция не работает в этой системе без указания устройства и (пере) точка монтирования. Это сервер с усиленной безопасностью, поэтому проблемы, которые я вижу, могут быть связаны с SElinux или результатом монтирования привязки, или, возможно, даже наличием инвертированных параметров (noexec по сравнению с exec) ...

Введите это в bash:

egrep -v '^#' /etc/fstab | while read dev dir type opts dump pass ; do
    echo "mount -o remount,${opts} ${dir}";
done

В моей системе это дает следующий результат:

mount -o remount,nodev,noexec,nosuid /proc
mount -o remount,relatime,errors=remount-ro /
mount -o remount,defaults /misc

Попробуйте в своей системе. Если вам нравится вывод, который он производит, используйте его или просто удалите echo и двойные кавычки из приведенной выше команды.

Я бы просто использовал сценарий, чтобы сделать это для соответствующих файловых систем

for fs in /home /var /whatever
do
    mount -o remount "$fs"
done

Возможно, вам потребуется поставить -f там тоже, если одна или несколько фс могут быть заняты, например.

mount -f -o remount "$fs"

Из mount справочная страница:

Функциональность повторного монтирования следует стандартному способу работы команды mount с параметрами из fstab. Это означает, что команда mount не читает fstab (или mtab) только тогда, когда устройство и каталог полностью указаны.

  mount -o remount,rw /dev/foo /dir

После этого вызова все старые параметры монтирования заменяются, а произвольные данные из fstab игнорируются, кроме параметра loop =, который генерируется внутри и поддерживается командой mount.

  mount -o remount,rw  /dir

Так mount -o remount /mountpoint следует восстановить параметры в /etc/fstab:

mgorven@mamma:~% grep boot /etc/fstab
UUID=823c73dc-8f64-4f76-a120-968106ffdf5a /boot           ext4    relatime        0       2
mgorven@mamma:~% sudo mount -o remount,ro /boot
mgorven@mamma:~% mount | grep boot
/dev/sda4 on /boot type ext4 (ro,relatime)
mgorven@mamma:~% sudo mount -o remount /boot
mgorven@mamma:~% mount | grep boot
/dev/sda4 on /boot type ext4 (rw,relatime)

Вы меняете динамику флагов монтирования без прохождения / etc / fstab и перезагрузки?

Разве вы не можете сделать следующее (например):

 mount -o remount /usr

восстановить исходные параметры из файла / etc / fstab? Вы можете проверить смонтированные параметры с помощью команды mount без аргументов.

Вам будет сложно перемонтировать файловые системы, такие как / usr и / var, после того, как система будет запущена и заработает. Например, отложенное повторное монтирование, вероятно, просто вернет успех, но никогда не получит возможности выполнить запрошенное повторное монтирование, потому что дескрипторы файлов будут оставаться открытыми на протяжении всего срока службы системы.

Если это образ для разработки, как это звучит, я рекомендую просто загружать систему в чистом виде для каждого теста. Это утомительно, но, по крайней мере, тогда вы точно знаете, что система работает так, как в производственной среде, поэтому ваш тест будет надежным.