/ etc / fstab設定を復元または再読み込みする簡単な方法は?


11

私は/etc/fstabRHEL 6.xベースのサーバー上の複合施設で作業しています。システムには、複数のバインドマウントを含む、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)の存在である可能性があります...


開発者はシェルまたはWebから(httpdを介して)スクリプトを直接実行しようとしていますか?スクリプトを実行しようとすると、どのようなエラーメッセージが表示されますか?
ダニエルt。

バイナリまたはシェル実行可能ファイルをにダンプする典型的なサードパーティアプリケーションインストーラーと考えてください/tmp。たとえば、Oracle。
ewwhite

これは、SELINUXの問題である可能性があります。エラーausearch -m AVC,USER_AVC -sv noがないか出力を試してみてくださいtmp
ダニエルt。

回答:


9

これを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上記のコマンドから二重引用符と二重引用符を削除してください。


あなたもおそらく$devそこに追加する必要があります
...-freiheit

4

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

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

-fたとえば、1つ以上のfsがビジーの場合、そこにaを入れる必要があります。

mount -f -o remount "$fs"

3

mountマンページから:

再マウント機能は、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)

これは私の場合はうまくいきませんでしたが、システム上の他の要因の結果である可能性があります。上記の更新されたfstabを参照してください。
ewwhite

@ewwhite fstabオプションを使用して問題を再現することはできませんので、別のことが行われています。
mgorven

0

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

次のことはできません(たとえば):

 mount -o remount /usr

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


0

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

これが開発イメージであるように思える場合、テストごとにシステムをクリーンにブートすることをお勧めします。面倒ですが、少なくともシステムが実稼働環境で動作していることは確かなので、テストは信頼できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.