恢复或重新加载/ etc / fstab设置的快速方法?


11

我正在使用/etc/fstab基于RHEL 6.x的服务器上的复杂设备。该系统在八个分区上使用了多种安装选项,包括几个绑定安装。我正在测试选项及其对正在处理的图像的影响。

如选择喜欢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)...


开发人员是否正在尝试直接从Shell或Web执行脚本(通过httpd)?尝试执行脚本时会看到什么错误消息?
Daniel t。

可以将其视为典型的第三方应用程序安装程序,该安装程序在中转储二进制文件或Shell可执行文件/tmp。例如,Oracle。
ewwhite

这可能是SELINUX问题,您可以尝试ausearch -m AVC,USER_AVC -sv no检查输出是否有任何tmp错误。
Daniel t。

Answers:


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...
2013年

4

我只是使用脚本来为相关文件系统做

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

-f如果一个或多个fs可能很忙,您可能也需要在其中放置一个。

mount -f -o remount "$fs"

3

mount联机帮助页

重新安装功能遵循标准的方式,即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)

在我看来,这不起作用,但这可能是系统上其他因素造成的。请参阅上面更新的fstab。
ewwhite

@ewwhite我无法使用您的fstab选项重现该问题,因此还有其他情况。
mgorven

0

您是否在不通过/ etc / fstab并重新引导的情况下更改安装标志的动态状态?

您不能执行以下操作(例如):

 mount -o remount /usr

从/ etc / fstab恢复原始选项?您可以使用不带参数的mount命令来检查已安装的选项。


0

一旦系统启动并运行,您将很难重新挂载/ usr和/ var等文件系统。例如,延迟重新挂载可能仅会返回成功,但实际上并没有机会执行所请求的重新挂载,因为将有文件句柄在整个系统运行期间保持打开状态。

如果这听起来像是一个开发映像,那么我建议您仅在每次测试时干净启动系统。这很繁琐,但是至少您可以肯定地知道系统正在以生产方式运行,因此您的测试是可靠的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.