Подтвердить что ты не робот

Ошибка FUSE: конечная точка транспортного средства не подключена

Я пытаюсь реализовать файловую систему FUSE. Я получаю эту ошибку:

не удается получить доступ к MountDir: конечная точка транспорта не подключена.

Это соответствующие части программы. Существует два каталога MirrorDir и MountDir, которые существуют с тем же каталогом, что и весь код. Я вызываю программу следующим образом:

./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;
}
4b9b3361

Ответ 1

Это обычно вызвано тем, что каталог монтирования остается установленным из-за сбоя вашей файловой системы. Перейдите в родительский каталог точки монтирования и введите fusermount -u YOUR_MNT_DIR.

Если это не делает трюк, сделайте sudo umount -l YOUR_MNT_DIR.

Ответ 2

Я установил файловую систему ssh (командная строка sshfs) и оставил ее установленной, и у меня была та же проблема, fusermount -u решил мою проблему. Благодаря

Ответ 4

Перейдите в родительский каталог и обратно. Работал для меня.