FUSE错误:传输端点未连接

我试图实现FUSE文件系统。 我收到这个错误:

无法访问MountDir:传输端点未连接

这是程序的相关部分。 有两个目录, MirrorDirMountDir ,存在与所有代码相同的目录。 我正在调用这样的程序:

 ./myFS -o nonempty -o allow_other MirrorDir MountDir 

任何人都可以看到我做错了什么?

 static struct fuse_operations xmp_oper = { .getattr = xmp_getattr, .readdir = xmp_readdir, .open = xmp_open, .read = xmp_read, }; int main(int argc, char *argv[]) { int fuse_stat; char* mirrorDir; mirrorDir = malloc(sizeof(strlen(argv[argc-2]+1))); if (mirrorDir == NULL) { perror("main calloc"); abort(); } // Pull the rootdir out of the argument list and save it in my internal data mirrorDir = realpath(argv[argc-2], NULL); argv[argc-2] = argv[argc-1]; argv[argc-1] = NULL; argc--; // turn over control to fuse fprintf(stderr, "about to call fuse_main\n"); fuse_stat = fuse_main(argc, argv, &xmp_oper, mirrorDir); fprintf(stderr, "fuse_main returned %d\n", fuse_stat); return fuse_stat; } 

这通常是由于文件系统崩溃而导致挂载目录被挂载。 转到挂载点的父目录并inputfusermount -u YOUR_MNT_DIR

如果这不起作用,请执行sudo umount -l YOUR_MNT_DIR

我挂载了一个ssh文件系统(sshfs命令行)并将其挂载,并且遇到同样的问题, fusermount -u解决了我的问题。 谢谢

您可以检查/ etc / hosts以validation主节点是否具有完全限定的名称。 更多详细信息在https://community.cloudera.com/t5/CDH-Manual-Installation/Setting-the-NameNode-port-8020-to-listen-outside-of-localhost/td-p/2257和How toconfigurationHadoop生态系统的主机文件

去父目录,回来。为我工作。