微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何在 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中定义).

希望有所帮助,

埃里克·梅尔斯基

原文地址:https://www.jb51.cc/linux/394788.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐