2013-04-14 41 views
40

Tôi đang cố triển khai hệ thống tệp FUSE. Tôi nhận được lỗi này:Lỗi cầu chì: Điểm cuối giao thông không được kết nối

cannot access MountDir: Transport endpoint is not connected

Đây là các phần liên quan của chương trình. Có hai thư mục, MirrorDirMountDir, có cùng thư mục với tất cả mã. Tôi đang gọi chương trình như thế này:

./myFS -o nonempty -o allow_other MirrorDir MountDir 

Có ai có thể nhìn thấy những gì tôi đang làm sai không?

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

Trả lời

73

Điều này thường do thư mục gắn kết được gắn trái do sự cố hệ thống tệp của bạn. Chuyển đến thư mục chính của điểm gắn kết và nhập fusermount -u YOUR_MNT_DIR.

Nếu cách này không thực hiện thủ thuật, hãy làm sudo umount -l YOUR_MNT_DIR.

+2

Tôi phải sudo umount để làm cho nó hoạt động. fusermount đã cho tôi: mục nhập cho không tìm thấy trong/etc/mtab –

+0

'fusermount -u' không hoạt động trong trường hợp của tôi, vì vậy tôi đã thử' sudo umount -l' nhưng tôi nhận được thông báo lỗi này: 'umount: MOUNT_DIR: chặn thiết bị không được phép trên fs' Bất kỳ ý tưởng? –

+1

Tương tự, đó là gợi ý thứ hai làm việc cho tôi. – otocan

5

Tôi đã lắp hệ thống tệp ssh (dòng lệnh sshfs) và để nó được gắn và tôi gặp sự cố tương tự, fusermount -u đã giải quyết được sự cố của tôi. Cảm ơn

+5

lệnh hoàn chỉnh phải là 'fusermount -u YOUR_MNT_DIR', như câu trả lời của Tanner đã cho thấy. =) – zhkzyth

0

Đi tới thư mục mẹ và đăng nhập lại. Làm việc cho tôi.