我正在尝试使用 FUSE 构建一个具有重复数据删除功能的新文件系统。
我尝试运行 FUSE 示例部分中提供的 fusexmp_fh.c
。但是,在挂载点挂载文件系统后,我可以看到挂载点内的所有现有目录。我不需要那些目录。 我希望挂载的文件系统为空。
我尝试搜索 fusexmp_fh.c
但找不到添加现有目录的位置。
- 有人可以向我解释一下这是如何工作的吗?
还有
fusexmp_fh.c
可以作为构建文件系统的基础吗?- 它是否具备所有基本功能?
最佳答案
你是说你把文件系统挂载到一个非空的目录上,你能看到目录之前的内容? (在这种情况下,答案是“不要挂载到非空挂载点”。通常它会抛出一个错误告诉你不要那样做。)
如果您看到的是您用作基本目录的目录和目录中的文件,这是回送文件系统的正常行为,也就是 fusexmp_fh.c
.示例文件系统采用挂载点,并将该挂载点上的所有命令传递到后备目录。如果您使用其中包含文件的后备目录,您现在将在两个位置看到这些文件,即原始位置和安装的 fuse 目录。
如果您想了解目录填充的工作原理,请先查看 readdir
,然后查看它返回的 stat
项是如何构建的。其中每一个都是一个目录条目。
是的,您可以使用 fusexmp_fh.c
作为基本文件系统的基础,它具有所有必要的部分,但不支持扩展元数据。 (但是添加它对于环回来说是微不足道的。)
关于linux - 使用 FUSE 时如何将所有现有目录挂载到挂载点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22325773/