我用来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_64
和2.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