2013-04-14 71 views
40

我試圖實現FUSE文件系統。我收到此錯誤:FUSE錯誤:傳輸端點未連接

cannot access MountDir: Transport endpoint is not connected

這是程序的相關部分。有兩個目錄,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; 
} 

回答

73

這通常是由於文件系統崩潰而導致掛載目錄被掛載。轉到安裝點的父目錄並輸入fusermount -u YOUR_MNT_DIR

如果這不起作用,請做sudo umount -l YOUR_MNT_DIR

+2

我不得不sudo umount才能正常工作。 fusermount給了我:在/ etc/mtab中找不到的條目 –

+0

'fusermount -u'在我的情況下不起作用,所以我嘗試了'sudo umount -l'但是我得到這個錯誤信息:'umount:MOUNT_DIR:block devices不允許fs'任何想法? –

+1

同樣,這是第二個爲我工作的建議。如Tanner的答案所示, – otocan

5

我掛載了一個ssh文件系統(sshfs命令行),並將其掛載並且出現同樣的問題,fusermount -u解決了我的問題。謝謝

+5

完整的命令應該是'fusermount -u YOUR_MNT_DIR' =) – zhkzyth

0

轉到父目錄並返回。爲我工作。

相關問題