使用FUSE时,如何在挂载点挂载所有现有目录?

时间:2014-03-11 12:28:50

标签: linux filesystems mount fuse deduplication

我尝试使用FUSE构建具有重复数据删除功能的新文件系统。

我尝试运行FUSE示例部分中提供的fusexmp_fh.c。但是在将文件系统挂载到挂载点之后,我可以看到挂载点内的所有现有目录。我不需要那些目录。 我希望挂载的文件系统为空。

我尝试搜索fusexmp_fh.c但无法找到添加现有目录的位置。

  • 有人可以向我解释这是如何运作的吗?

另外

  • 可以fusexmp_fh.c作为构建文件系统的基础吗?
  • 它是否具备所有基本功能?

1 个答案:

答案 0 :(得分:1)

您是说您将文件系统挂载到非空目录上,您可以看到该目录的先前内容吗? (在这种情况下,答案是"不要挂载到非空挂载点"。通常会抛出错误告诉您不要这样做。)

如果您所看到的是您用作基本目录的目录中的目录和文件,则这是回送文件系统的正常行为,这是fusexmp_fh.c是。示例文件系统采用挂载点,并将该挂载点上的所有命令传递到后备目录。如果您使用其中包含文件的后备目录,您现在将在两个位置看到这些文件,即原始位置和已安装的fuse目录。

如果您想了解目录填充的工作原理,请先查看readdir,看看它返回的stat项是如何构建的。每个都是一个目录条目。

是的,您可以使用fusexmp_fh.c作为基本文件系统的基础,虽然不支持扩展元数据,但它可以获得所有必要的部分。 (但是对于环回来说,添加它是相当微不足道的。)