如何在Linux文件系统中创建循环?我想打破Linux文件系统的有向无环图(DAG)属性。这可能吗?当我在我的Ubuntu上安装了scratchbox交叉编译器时,我曾经看到过这种情况。在Linux文件系统中创建循环
我不知道如何重现它。
如何在Linux文件系统中创建循环?我想打破Linux文件系统的有向无环图(DAG)属性。这可能吗?当我在我的Ubuntu上安装了scratchbox交叉编译器时,我曾经看到过这种情况。在Linux文件系统中创建循环
我不知道如何重现它。
使用回送设备启动安装,但是您特别询问了有关bind
安装座,其中ar有点不同。如果你想使用绑定挂载,你只需在mount命令中指定--bind
即可。例如:
mount --bind /original/path /new/path
这将使系统位置在/original/path
也访问通过/new/path
访问。请注意,这将会在安装点之后而不是!例如,假设我有以下挂载点:
/something
/something/underneath/that
现在假设我做一个bind
挂载/something
:
mount --bind /something /new_something
我将能够通过路径/new_something/myfile
访问像/something/myfile
文件。但我会不是能够通过路径/new_something/underneath/that/otherfile
访问像/something/underneath/that/otherfile
这样的文件。您必须为每个文件系统设置一个单独的bind
装入;或者如果你有一个相对较新的内核,你可以使用rbind
坐骑,这做后续挂载点:
mount --rbind /something /new_something
一个需要注意的有关rbind
坐骑:后rbind
是他们不处理一个文件系统安装的情况下建立。也就是说,假设我有一个安装这样的:
/something
然后,我建立了我的rbind
同上,然后我安装/something/underneath/that
:该rbind
不会神奇地让新通过rbind
位置安装可见。另外请注意,显然是由于内核中的错误,您无法卸载rbind
安装。
而且,万一你的意思是“我如何设置绑定安装使用mount(2)系统调用?”:当你调用mount(2)
对于普通bind
安装必须指定MS_BIND
标志(在mount.h
定义) 。对于rbind
装载,您必须指定MS_BIND
和非文档MS_REC
标志(在linux/fs.h
中定义)。
希望帮助,
埃里克Melski
mount /path/to/device /path/to/mount/location -o loop
其中/路径/到/设备是要么要装入的分区,或路径磁盘映像,和/路径的路径/到/安装/位置是路径到你的文件夹要下
来安装设备/图像,你可能还需要包括文件系统,像这样的类型(使用FAT16/FAT32):一些其他反应已经回答了如何设置
mount /path/to/device /path/to/mount/location -o loop -t vfat
它看起来像所有的答案至今大约安装在环回设备,而不是创建一个使用bind mounts循环。
正如你可能已经发现,
$ mkdir -p test/test
$ mount --bind test test/test
只允许您访问test/test/test
,并没有进一步。甚至没有
$ mount --rbind test test/test
的工作,因为递归绑定安装有效地通过查找源上的现有坐骑并将其绑定到目标中。
由于绑定坐标不能跨越挂载点,因此您所要求的内容是不可能的。如果你真的想模拟一个文件系统循环,试试用像localfs这样的伪绑定安装。我没有尝试过自己,试图读取自己提供的文件系统时,它可能会锁定。刚才,我试着用crossmnt
导出一个NFS树并将其安装在它自己的下面,但由于类似的原因失败了。
您可能还需要创建一个从头开始:
首先创建映像文件并对其进行初始化
dd if=/dev/zero of=/tmp/loop.img bs=1024k count=$IMG_SIZE
接下来,使其使用自己选择的FS型有效分区
mkfs.ext3 -F /tmp/loop.img
登上你的新形象
mkdir -p /mnt/image
mount /tmp/loop.img /mnt/image -o loop
您现在可以在新图像中创建/复制文件和目录。
玩得开心,
Jeach!
我对这个问题的解释不同于大家似乎正在回答的问题......我在想OP需要一个无限递归的目录结构。这可以创建使用硬链接,也许符号链接,但idk如何与装载,所以我不会回答。 – rmeador 2009-04-08 16:13:06
您无法在“传统”UNIX文件系统中硬连接目录。 – ephemient 2009-04-08 16:32:14