加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

在Linux文件系统中创建一个循环

发布时间:2020-12-13 16:59:32 所属栏目:Linux 来源:网络整理
导读:如何在 Linux文件系统中创建循环?我想打破Linux文件系统的有向无环图(DAG)属性.这可能吗?当我在我的Ubuntu上安装了scratchbox交叉编译器时,我曾经看到过这种情况. 我现在不知道如何重现它. 解决方法 其他一些响应者已经回答了如何使用loopback设备设置挂载
如何在 Linux文件系统中创建循环?我想打破Linux文件系统的有向无环图(DAG)属性.这可能吗?当我在我的Ubuntu上安装了scratchbox交叉编译器时,我曾经看到过这种情况.

我现在不知道如何重现它.

解决方法

其他一些响应者已经回答了如何使用loopback设备设置挂载,但是您特别询问了绑定挂载,这有点不同.如果要使用绑定装载,只需在mount命令中指定–bind即可.例如:
mount --bind /original/path /new/path

这将使/ original / path中可访问的文件系统位置也可通过/ new / path访问.请注意,这不会跟随挂载点!例如,假设我有以下挂载点:

/something
/something/underneath/that

现在假设我为/ something做了一个绑定挂载:

mount --bind /something /new_something

我将能够通过路径/ new_something / myfile访问/ something / myfile等文件.但是我无法通过路径/ new_something / under / that / otherfile访问/ something / under / that / otherfile等文件.您必须为每个文件系统设置单独的绑定装载;或者如果你有一个相对较新的内核,你可以使用rbind挂载,它遵循挂载点:

mount --rbind /something /new_something

关于rbind挂载的一个警告:它们不处理在设置rbind之后安装文件系统的情况.也就是说,假设我有这样的坐骑:

/something

然后我按上面的方式设置了我的rbind,然后我在/下面安装/ something /:rbind不会神奇地通过rbind位置看到新的挂载.还要注意,显然由于内核中的错误,您无法卸载rbind挂载.

另外,如果您的意思是“如何使用mount(2)系统调用设置绑定挂载?”:当您为常规绑定调用mount(2)时,必须指定MS_BIND标志(在mount.h中定义)安装.对于rbind挂载,必须指定MS_BIND和undocument MS_REC标志(在linux / fs.h中定义).

希望有所帮助,

埃里克·梅尔斯基

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读