FUSE错误:未连接传输端点

And*_*Dev 53 linux mount fuse

我正在尝试实现FUSE文件系统.我收到此错误:

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

这是该计划的相关部分.有两个目录,MirrorDir并且MountDir与所有代码存在相同的目录.我正在调用这样的程序:

./myFS -o nonempty -o allow_other MirrorDir MountDir
Run Code Online (Sandbox Code Playgroud)

谁能看到我做错了什么?

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;
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*own 103

这通常是由于文件系统崩溃导致挂载安装目录而导致的.转到挂载点的父目录并输入fusermount -u YOUR_MNT_DIR.

如果这不起作用,那就行sudo umount -l YOUR_MNT_DIR.

  • 我不得不sudo umount让它工作.fusermount给了我:/ etc/mtab中找不到<mount>的条目 (3认同)
  • 对我来说只有“fusermount -uz YOUR_MNT_DIR”有效(注意额外的“z”) (3认同)
  • 同样,这是第二个对我有用的建议. (2认同)
  • 同样也是如此。`sudo umount -l YOUR_MNT_DIR` 对我有用。我使用的是 root 用户,我使用了 `su -`。非常感谢 :) (2认同)

小智 13

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

  • 完整的命令应该是`fusermount -u YOUR_MNT_DIR`,正如Tanner的回答所示.=) (5认同)