从 rw 分区挂载 --bind 后文件仍然是只读的

从 rw 分区挂载 --bind 后文件仍然是只读的

我用来mount --bind将一个ext4,rw文件系统中的文件“覆盖”到文件系统中的另一个文件上ext4,ro。例如,/etc/hosts位于只读分区上,但我有另一个可写/分区。/rw/etc/hosts所以当我这样做时

# mount --bind /rw/etc/hosts /etc/hosts

任何写入都/etc/hosts将转到/rw/etc/hosts


这在CentOS 6.3.

# mount -o ro /dev/sdc1 /ro
# mount -o rw /dev/sdc2 /rw
# mount --bind rw/test ro/test
# echo 1 > rw/test
# cat ro/test
1
# echo 2 > ro/test                    # [1]
# cat rw/test
2

但我无法让它工作,CentOS 6.4我重复上面的步骤,但在尝试写入时出现错误ro/test

# echo 2 > ro/test                    # [1]
-bash: ro/test: Read-only file system

SELinux被禁用。有什么想法可能会导致它停止工作吗?

CentOS 6.3 内核:2.6.32-279.22.1.el6.x86_64
CentOS 6.4 内核:2.6.32-358.el6.x86_642.6.32-358.2.1.el6.x86_64

答案1

有什么想法可能会导致它停止工作吗?

可能是与 fsfreeze 支持一起引入内核的错误。我打开了BZ #951311来跟踪这个。

答案2

# mount --bind rw/test ro/test
# echo 1 > rw/test

您只能挂载目录。

您不能使用 echo 写入目录。

你可能想要

# mount --bind rw ro

相关内容