linux FUSE错误:未连接传输终结点

a9wyjsp7  于 2023-02-03  发布在  Linux
关注(0)|答案(6)|浏览(612)

我正在尝试实现FUSE文件系统。我收到此错误:
无法访问MountDir:未连接传输终结点
这是程序的相关部分。有两个目录,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;
}
fafcakar

fafcakar1#

这通常是由于文件系统崩溃导致挂载目录处于挂载状态所造成的。请转到挂载点的父目录并输入fusermount -u YOUR_MNT_DIR
如果这还不行,就执行sudo umount -l YOUR_MNT_DIR

brqmpdu1

brqmpdu12#

我挂载了一个ssh文件系统(sshfs命令行),并让它挂载,我有同样的问题,fusermount -u YOUR_MNT_DIR解决了我的问题。谢谢

svdrlsy4

svdrlsy43#

在Azure中,我尝试使用用户托管标识挂载我的容器。我一直获得Transport endpoint is not connected,直到Storage Blob Data Contributor权限被添加到托管标识。

dluptydi

dluptydi5#

当我使用rclone将Microsoft OneDrive挂载到Ubuntu系统时,我遇到了类似“传输端点未连接”或“权限被拒绝”的问题。我是系统的普通用户,因此默认情况下,只有我可以访问我的主目录。它也只有我可以访问。rclone论坛的版主只是误导我到错误的方向,最后粗鲁地关闭了我的问题时,他意识到他无法回答,所以我自己解决了这个问题,经过几天的调查,我终于发现这些错误信息与文件访问权限模式有关,因为我是普通用户,而fusermount是以root身份运行的,所以挂载时无法访问挂载点目录,卸载时无法访问我的主目录,所以它抱怨了,解决方法很简单:通过将安装点目录和主目录的模式位设置为777,向所有人开放它们的文件访问权限。

k97glaaz

k97glaaz6#

这也许能帮到某人。
每次我尝试读取一个带有无法读取字符的**文件(来自Windows框)时,***临时 * 都会在外部USB驱动器上出现endpoint not connected错误。我可以卸载并重新安装驱动器以唤醒系统,但访问该文件(甚至包含该文件的目录)会重新中断系统。
我将驱动器连接到另一台计算机并重命名文件以进行解析。
详情
我在深夜花了几个小时懒洋洋地浏览维基百科,把更好的图片下载到我的微软表面(Win10)上;有些是亚洲和西里尔字母。
不是我的形象,但或多或少是这样的:

今天我使用pscp -r -p将目录推送到Linux Mint机器中--但是pscp在几个文件上抛出了错误。我不能明确地逐字回忆,但是这非常接近,如果不是相同的话:https://superuser.com/questions/769385/pscp-and-utf-8-characters

"user@remote_host:/Справочник/file.txt" "E:\Справочник\file.txt"
scp: E:/??????????/file.txt: Cannot create file

回到我的Linux系统,尝试访问目录时出现Transport endpoint is not connected错误,然后整个驱动器变得不可用--无论是在thunar文件管理器还是在CLI中,出现“cannot get working directory”之类的错误,以及我们在文件系统损坏时可能遇到的其他问题。
fusermount命令让我毫无进展,但是sudo umount -l工作了好几次。
每次我卸载并重新安装此驱动器(格式化为exFAT)时,一切都恢复正常(读/写/删除按预期工作)--*直到 * 我尝试使用不可读(UTF-8?)字符读取/重命名/删除目录,此时整个驱动器再次变得无法访问。
我把驱动器连接到WinBox上,重命名了文件--一切都好多了。
我也许可以添加一个字符集支持,但这是20年来我第一次遇到这种情况,所以我怀疑我是否会费心。
乔纳森·布朗的回答帮助我诊断了这个问题,并得出结论,把驱动器搬到楼上的简单解决方案可能是解决办法。
谢谢乔纳森!

相关问题