在我的Arch Linux系统(Linux Kernel 3.14.2)上,绑定安装不遵守只读选项
# mkdir test
# mount --bind -o ro test/ /mnt
# touch /mnt/foo
创建文件/mnt/foo
。中的相关条目/proc/mounts
是
/dev/sda2 /mnt ext4 rw,noatime,data=ordered 0 0
安装选项不符合我要求的选择,但这样做同时匹配绑定的读/写性能和安装使用的选项最初安装/dev/sda2
上/
/dev/sda2 / ext4 rw,noatime,data=ordered 0 0
但是,如果我重新安装了安装座,那么它将遵循只读选项
# mount --bind -o remount,ro test/ /mnt
# touch /mnt/bar
touch: cannot touch ‘/mnt/bar’: Read-only file system
和中的相关条目 /proc/mounts/
/dev/sda2 /mnt ext4 ro,relatime,data=ordered 0 0
看起来像我可能期望的(尽管实际上我期望看到test
目录的完整路径)。on /proc/mounts/
的原始安装的条目也未更改,并且保持读/写状态/dev/sda2/
/
/dev/sda2 / ext4 rw,noatime,data=ordered 0 0
此行为和解决方法至少从2008年开始就为人所知,并记录在mount
请注意,文件系统挂载选项将与原始挂载点上的选项相同,并且不能通过将-o选项与--bind /-rbind一起传递来更改。可以通过单独的重新安装命令更改安装选项
并非所有发行版的行为都相同。当绑定安装未获得只读安装时,Debian生成警告时,Arch似乎默默地不遵守这些选项
mount: warning: /mnt seems to be mounted read-write.
有报道称,这种行为在Debian Lenny和Squeeze中已“修复”,尽管它似乎不是通用解决方案,但在Debian Wheezy中仍然不起作用。使绑定安装尊重初始安装上的只读选项有何困难?
/etc/mtab
。初始安装后,该条目显示安装为rw,重新安装后显示为ro,因此它正确报告了安装状态。只是mount命令失败。
mount --bind -o ro
,它们都发出一条消息,mount: warning: «mountpoint» seems to be mounted read-write.
因此Debian似乎在某个时候掉线或丢失了补丁...重新安装虽然有效。