Linux 文件系统嵌套和系统调用挂钩

Linux filesystem nesting and syscall hooking

使用 2.6.32 linux 内核,我需要在块设备分区上使用特定的文件系统,我不想将 open/write/read/close(以及其他一些)系统调用挂接到 read/write,以另一种方式表示特定的文件系统,应该在这个分区上写什么。

这将只针对这个分区,其他使用这个文件系统的分区将照常运行。

Fuse 非常适合这个,但由于内存消耗(对于目标系统而言太大)我无法使用它

我如何在 VFS 和挂载的文件系统之间挂钩系统调用,例如有一个中间索引并缓冲所有读/写?

我试过类似的东西:

mount -t ext3 /dev/sda1 /my/mount/data
mkfs.vfat /my/mount/data/big_file
mount -o loop -t vfat /my/mount/data/big_file /my_mount/custom_data

其中 vfat 将是我的自定义文件系统,但调试显示 vfat 从不引用 jfs 文件操作,其中文件操作在 custom_data mount 中完成。

关于我应该如何进行的任何提示?

我发现了可堆叠文件系统。 Wrapfs 很有趣,应该符合我的需要:http://wrapfs.filesystems.org/

它允许在 vfs 和较低的 fs 之间的中间层捕获所有系统调用。

解决。