2013-04-14 6 views
40

मैं FUSE फाइल सिस्टम को लागू करने की कोशिश कर रहा हूं। मुझे यह त्रुटि मिल रही है:FUSE त्रुटि: परिवहन एंडपॉइंट कनेक्ट नहीं है

cannot access MountDir: Transport endpoint is not connected

यह कार्यक्रम के प्रासंगिक भाग हैं। दो निर्देशिकाएं हैं, 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; 
} 

उत्तर

73

यह आमतौर पर आपके फाइल सिस्टम के दुर्घटना के कारण माउंट निर्देशिका को घुमाया जा रहा है। माउंट पॉइंट की मूल निर्देशिका पर जाएं और fusermount -u YOUR_MNT_DIR दर्ज करें।

यदि यह चाल नहीं करता है, तो sudo umount -l YOUR_MNT_DIR करें।

+2

मुझे इसे काम करने के लिए सूडो उमाउंट करना पड़ा। fusermount ने मुझे दिया: के लिए प्रविष्टि/etc/mtab –

+0

'fusermount -u' में नहीं मिला मेरे मामले में काम नहीं किया, इसलिए मैंने 'sudo umount -l' की कोशिश की लेकिन मुझे यह त्रुटि संदेश मिला:' umount: MOUNT_DIR: ब्लॉक डिवाइस fs' पर कोई अनुमति नहीं है? –

+1

इसी तरह, यह दूसरा सुझाव था जो मेरे लिए काम करता था। – otocan

5

मैंने एक एसएसएच फाइल सिस्टम (एसएसएफएस कमांड लाइन) लगाया और इसे घुमाया और मुझे एक ही समस्या थी, fusermount -u मेरी समस्या हल हो गई। धन्यवाद

+5

पूर्ण आदेश 'fusermount -u YOUR_MNT_DIR' होना चाहिए, क्योंकि टैनर के उत्तर से पता चला है। =) – zhkzyth

0

मूल निर्देशिका पर जाएं और वापस आएं। मेरे लिए काम किया।

संबंधित मुद्दे