web-dev-qa-db-fra.com

Erreur FUSE: le noeud final de transport n'est pas connecté

J'essaie d'implémenter le système de fichiers Fuse. Je reçois cette erreur:

impossible d'accéder à MountDir: le noeud final de transport n'est pas connecté

Ce sont les parties pertinentes du programme. Il existe deux répertoires, MirrorDir et MountDir, qui existent avec le même répertoire que tout le code. J'appelle le programme comme ceci:

./myFS -o nonempty -o allow_other MirrorDir MountDir

Quelqu'un peut-il voir ce que je fais mal?

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;
}
47
Alex

Cela est généralement dû au fait que le répertoire de montage est laissé monté en raison d'un crash de votre système de fichiers. Accédez au répertoire parent du point de montage et entrez fusermount -u YOUR_MNT_DIR.

Si cela ne fait pas l'affaire, faites Sudo umount -l YOUR_MNT_DIR.

90
Jonathan Brown

J'ai monté un système de fichiers ssh (ligne de commande sshfs) et l'ai laissé monté et j'ai eu le même problème, fusermount -u YOUR_MNT_DIR a résolu mon problème. Merci

9
user2997418

Vous pouvez vérifier votre/etc/hosts pour vous assurer que le nœud maître porte un nom complet. Plus de détails dans https://community.cloudera.com/t5/CDH-Manuel-Installation/Setting-the-NameNode-port-8020-to-listen-outen- of-localhost/td-p/2257 et dans Comment configurer le fichier hosts pour l'écosystème Hadoop

0
Thiago Mata

Aller au répertoire parent et revenir. Travaillé pour moi.

0
mavesonzini