Szybki sposób na przywrócenie lub ponowne załadowanie ustawień / etc / fstab?

11

Pracuję z kompleksem /etc/fstabna serwerze opartym na RHEL 6.x. System ma wiele opcji montowania używanych na ośmiu partycjach, w tym kilka montowań powiązań. Testuję opcje i ich wpływ na obraz, nad którym pracuję.

np Opcje podoba nodev, nosuid, noexec, nobarrieri kilku parametrów systemie plików XFS są na miejscu.

Chociaż wiem, że można zamontować ponownie za pomocą określonych opcji, czy istnieje szybki sposób na przywrócenie wszystkich montowań na stałe ustawienia na stałe /etc/fstab?

Na przykład sysctl -pładuje /etc/sysctl.confwartości i stosuje je. Czy istnieje mountodpowiednik?


Edytować:

Przykładowa konfiguracja:

#
# /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

Oczywiście programista prosi o uprawnienia do wykonywania/tmp w celu zainstalowania aplikacji ...

Uważam, że remountopcja nie działa w tym systemie bez określenia urządzenia i (ponownego) punktu montowania. Jest to serwer o podwyższonych zabezpieczeniach, więc problemy, które widzę, mogą być związane z SElinux lub wynikiem montowania powiązań, a może nawet obecność negowanych opcji (noexec versus exec) ...

ewwhite
źródło
Czy programista próbuje wykonać skrypt bezpośrednio z powłoki lub sieci (poprzez httpd)? jaki komunikat o błędzie widzisz, gdy próbujesz wykonać skrypt?
Daniel t.
Pomyśl o tym jak o typowym zewnętrznym instalatorze aplikacji, który zrzuca plik binarny lub powłokowy /tmp. Na przykład Oracle.
ewwhite
Może to być problem z SELINUX, możesz spróbować ausearch -m AVC,USER_AVC -sv noprzejrzeć dane wyjściowe pod kątem tmpbłędów.
Daniel t.

Odpowiedzi:

9

Wpisz to w bash:

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

W moim systemie generuje to takie dane wyjściowe:

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

Wypróbuj w swoim systemie. Jeśli podoba ci się wynik wyjściowy, użyj go lub po prostu usuń echoznaki podwójnego cudzysłowu z powyższego polecenia.

żal
źródło
Prawdopodobnie musisz $devtam również dodać ...
freiheit
4

Po prostu użyłbym skryptu, aby zrobić to dla odpowiednich systemów plików

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

Może być konieczne umieszczenie -ftam również, jeśli jeden lub więcej fs może być zajęty, np

mount -f -o remount "$fs"
użytkownik9517
źródło
3

Z strony mountpodręcznika :

Funkcja remount działa zgodnie ze standardowym sposobem działania polecenia mount z opcjami z fstab. Oznacza to, że polecenie mount nie odczytuje fstab (lub mtab) tylko wtedy, gdy urządzenie i katalog są w pełni określone.

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

Po tym wywołaniu wszystkie stare opcje montowania są zastępowane, a arbitralne rzeczy z fstab są ignorowane, z wyjątkiem opcji loop =, która jest generowana wewnętrznie i obsługiwana przez komendę mount.

  mount -o remount,rw  /dir

Więc mount -o remount /mountpointpowinien przywrócić opcje w /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)
mgorven
źródło
Nie działało to w moim przypadku, ale może być wynikiem innych czynników w systemie. Zobacz zaktualizowany plik fstab powyżej.
ewwhite
@ewwhite Nie mogę odtworzyć problemu za pomocą opcji fstab, więc dzieje się coś jeszcze.
mgorven
0

Czy zmieniasz dynamikę flag montowania bez przechodzenia przez / etc / fstab i restartowania?

Czy nie możesz wykonać następujących czynności (na przykład):

 mount -o remount /usr

przywrócić oryginalne opcje z / etc / fstab? Możesz sprawdzić zamontowane opcje za pomocą polecenia mount bez argumentów.

mdpc
źródło
0

Będziesz miał problemy z ponownym zamontowaniem systemów plików, takich jak / usr i / var, po uruchomieniu systemu. Na przykład leniwe ponowne podłączenie prawdopodobnie po prostu zwróci sukces, ale nigdy nie dostanie okazji do wykonania żądanego ponownego zamontowania, ponieważ uchwyty plików będą otwarte przez cały okres eksploatacji systemu.

Jeśli jest to obraz programistyczny, jak się wydaje, zalecam po prostu uruchomienie systemu w czystości dla każdego testu. Jest to żmudne, ale przynajmniej wtedy wiesz, że system działa tak, jak byłby w produkcji, więc Twój test jest wiarygodny.

Jeff Albert
źródło