我想知道如何使用FUSE从远程机器安装目录。 this link中给出的教程将一个本地目录挂载到另一个本地目录上。
这实际上发生在 fuse_main 函数中。有谁知道如何对远程计算机上的目录执行相同的操作?

函数调用如下
fuse_main(argc, argv, &bb_oper, bb_data);
注意:我不能使用sshfs

谢谢。

最佳答案

就像任何其他网络文件系统一样,FUSE将需要一个基础传输层。除非远程计算机上的某些设备能够为您处理实际的I/O,否则它对您没有帮助。

在 fuse 参数中,为希望文件系统能够处理的事情设置处理程序,例如:

static struct fuse_operations const myfs_ops = {
        .getattr = my_getattr,
        .mknod = my_mknod,
        .mkdir = my_mkdir,
        .unlink = my_rm,
        .rmdir = my_rmdir,
        .truncate = my_truncate,
        .open = my_open,
        .read = my_read,
        .write = my_write,
        .readdir = my_readdir,
        .create = my_create,
        .destroy = my_destroy,
        .utime = my_utime,
        .symlink = my_symlink
};

那是我目前的FUSE实现之一的代码,通常经过重写。如您所见,对于功能最少的FS,您至少需要实现openreadwriteclose

这些成员是执行这些操作的功能。他们可以根据需要使用HTTP,SSH,FTP,自定义协议(protocol)。但是,您必须编写它们,并且远程服务器上的某些内容需要响应它们。

要直接回答您的问题,除非您自己实现该功能,否则FUSE(靠它自己)将不会做您想要的事情。

关于linux - 如何使用 fuse 在远程计算机中挂载目录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8251088/

10-11 08:04