RHEL 6.xベースのサーバーで複雑な/etc/fstab
を使用しています。システムには、いくつかのバインドマウントなど、8つのパーティションで使用されるさまざまなマウントオプションがあります。私はオプションと私が取り組んでいる画像へのそれらの影響をテストしています。
例えば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
1つ以上のfsがビジーである可能性がある場合もここにあります。
mount -f -o remount "$fs"
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)
/ etc/fstabを経由せずに再起動せずにマウントフラグのダイナミクスを変更していますか?
次のことはできません(例):
mount -o remount /usr
/ etc/fstabから元のオプションを復元するには?引数なしでmountコマンドを使用して、マウントされたオプションを確認できます。
システムが稼働状態になると、/ usrや/ varなどのファイルシステムを再マウントするのに苦労します。たとえば、遅延再マウントではおそらく成功が返されますが、システムの実行中はファイルハンドルが開いたままになるため、要求された再マウントを実行する機会は実際にはありません。
これが開発イメージであると思われる場合は、テストごとにシステムをクリーンブートすることをお勧めします。退屈な作業ですが、少なくとも、システムが運用環境と同じように実行されていることは確かなので、テストは信頼できます。