我在基于RHEL 6.x的服务器上使用复杂的/etc/fstab 。 系统在八个分区中有多种安装选项,包括多个绑定安装。 我正在testing选项及其对正在处理的图像的影响。
例如像nodev , nosuid , noexec , nobarrier和几个XFS文件系统参数的选项就位。
虽然我知道可以重新安装特定的选项,有没有一种快速的方法来恢复所有的挂载硬编码在/etc/fstab的持久化设置?
例如sysctl -p加载/etc/sysctl.conf值并应用它们。 有没有相当的mount量?
编辑:
一个configuration示例:
# # /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
如果一个或多个fs可能忙,你可能也需要在那里放一个-f
mount -f -o remount "$fs"
从mount manpage :
重新装入function遵循标准的方式,mount命令如何与来自fstab的选项配合使用。 这意味着只有在完全指定了设备和目录时,mount命令才会读取fstab(或mtab)。
mount -o remount,rw /dev/foo /dir在这个调用之后,所有旧的挂载选项被replace,并且忽略来自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)
你是否改变了mount标志的dynamic而不通过/ etc / fstab并重新启动?
你不能做以下(例如):
mount -o remount /usr
从/ etc / fstab恢复原始选项? 您可以使用不带参数的mount命令来检查挂载的选项。
一旦系统启动并运行,您将很难重新安装/ usr和/ var等文件系统。 例如,懒惰的重新挂载可能会返回成功,但实际上从来没有机会执行所请求的重新挂载,因为将会有文件句柄保持打开系统的整个运行时间。
如果这是一个开发的形象,听起来像,那么我build议只是启动系统清理每个testing。 这很乏味,但至less你知道系统运行的方式是在生产中,所以你的testing是可靠的。