Я работаю со сложным /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 с параметрами из 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, после того, как система будет запущена и заработает. Например, отложенное повторное монтирование, вероятно, просто вернет успех, но никогда не получит возможности выполнить запрошенное повторное монтирование, потому что дескрипторы файлов будут оставаться открытыми на протяжении всего срока службы системы.
Если это образ для разработки, как это звучит, я рекомендую просто загружать систему в чистом виде для каждого теста. Это утомительно, но, по крайней мере, тогда вы точно знаете, что система работает так, как в производственной среде, поэтому ваш тест будет надежным.