web-dev-qa-db-ja.com

/ etc / fstab設定を復元または再ロードする簡単な方法は?

RHEL 6.xベースのサーバーで複雑な/etc/fstabを使用しています。システムには、いくつかのバインドマウントなど、8つのパーティションで使用されるさまざまなマウントオプションがあります。私はオプションと私が取り組んでいる画像へのそれらの影響をテストしています。

例えばnodevnosuidnoexecnobarrierのようなオプションといくつかの 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)の存在でさえあるかもしれません...

11
ewwhite

これを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と二重引用符を削除してください。

9
ruief

スクリプトを使用して、関連するファイルシステムに対して実行します。

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

-f 1つ以上のfsがビジーである可能性がある場合もここにあります。

mount -f -o remount "$fs"
4
user9517

mount manpage から:

再マウント機能は、mountコマンドがfstabのオプションを処理する標準的な方法に従います。これは、デバイスとディレクトリが完全に指定されている場合にのみ、mountコマンドがfstab(またはmtab)を読み取らないことを意味します。

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

この呼び出しの後、すべての古いマウントオプションが置き換えられ、fstabからの任意のものは無視されます。ただし、内部で生成され、mountコマンドによって維持されるloop =オプションは除きます。

  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)
3
mgorven

/ etc/fstabを経由せずに再起動せずにマウントフラグのダイナミクスを変更していますか?

次のことはできません(例):

 mount -o remount /usr

/ etc/fstabから元のオプションを復元するには?引数なしでmountコマンドを使用して、マウントされたオプションを確認できます。

0
mdpc

システムが稼働状態になると、/ usrや/ varなどのファイルシステムを再マウントするのに苦労します。たとえば、遅延再マウントではおそらく成功が返されますが、システムの実行中はファイルハンドルが開いたままになるため、要求された再マウントを実行する機会は実際にはありません。

これが開発イメージであると思われる場合は、テストごとにシステムをクリーンブートすることをお勧めします。退屈な作業ですが、少なくとも、システムが運用環境と同じように実行されていることは確かなので、テストは信頼できます。

0
Jeff Albert