原来 mount --bind 可以作用于单个文件

@Ta 2020-06-09发布,2020-06-09修改 14532点击

mount --bind是Linux(包括root后的安卓)中非常有用的命令,它可以用一个文件夹的内容临时覆盖另一个文件夹的内容,在umount的时候内容就会还原。

因为mount本来是用来挂载设备到目录的,我一直以为mount --bind也只能作用于目录,直到我看到了这个:

opts_overwrite_resolv:如果设置为 true,则表示直接使用 I/O 重定向方式修改 /etc/resolv.conf 文件,这个操作是不可逆的,但是可移植性好;如果设置为 false,则表示使用 mount -o bind 魔法来暂时性修改 /etc/resolv.conf 文件,当 ss-tproxy stop 之后,/etc/resolv.conf 会恢复为原来的文件,也就是说这个修改操作是可逆的,但是这个方式可能某些系统会不支持,默认为 false,如果遇到问题请修改为 true;此选项留空则不操作 /etc/resolv.conf

来自 https://github.com/zfl9/ss-tproxy#%E9%85%8D%E7%BD%AE%E8%AF%B4%E6%98%8E

自己试了一下,果然可以,妙不可言:

这样一来,“想要临时修改某文件”、“分区是只读的没法修改”等各种问题都迎刃而解了。

而且我试了一下,在安卓上也是可用的。不过安卓会为每个app设置单独的挂载命名空间mount namespace),只有当前程序能看到mount --bind的更改,其他程序看不到。

回复列表(6|隐藏机器人聊天)
  • @Ta / 2020-06-18 / /
    这个厉害
  • @Ta / 2020-06-18 / /
  • @Ta / 2021-01-16 / /
    这个厉害。
    UOS安装的时候全盘安装就会搞出来好多文件夹是mount --bind的,/home /data/home之类的

    顺便请教大家,b站的uos运维工程师视频删除了,哪位大神手里有,想学习。谢谢。
  • @Ta / 2021-01-16 / /
    @Mycool,什么视频删除了.
  • @Ta / 2021-01-20 / /
    @罐子,B站的UOS系列培训视频,有桌面管理员的,系统工程师的,以前还有运维工程师的,不过现在没有了。
  • @Ta / 2021-01-20 / /
    额。不清楚。
添加新回复
回复需要登录