Linux块设备模拟&;熔丝

Linux块设备模拟&;熔丝,linux,embedded,fuse,Linux,Embedded,Fuse,我的项目涉及通过远程主机模拟块设备 为了测试我使用的FUSE,我的文件系统是对“hello”示例应用程序的一个简单更改,在该应用程序中,我不返回常量字符串,而是直接从文件读取数据 当我尝试正常装载文件时(mount-o loop=/dev/loop1),它工作得很好。 当我加载fuse并通过它公开这个文件时,所有正常的文件操作都会工作。但装载失败,并且“权限被拒绝” 有人知道“拒绝许可”是从哪里来的吗 有没有其他方法可以让我在用户空间中创建一个虚拟设备(仅支持块访问),并且可以挂载 提前感谢当m

我的项目涉及通过远程主机模拟块设备

为了测试我使用的FUSE,我的文件系统是对“hello”示例应用程序的一个简单更改,在该应用程序中,我不返回常量字符串,而是直接从文件读取数据

当我尝试正常装载文件时(mount-o loop=/dev/loop1),它工作得很好。 当我加载fuse并通过它公开这个文件时,所有正常的文件操作都会工作。但装载失败,并且“权限被拒绝”

有人知道“拒绝许可”是从哪里来的吗

有没有其他方法可以让我在用户空间中创建一个虚拟设备(仅支持块访问),并且可以挂载


提前感谢

当mount命令开始打印错误时,它是一个真正的地狱。尝试“-v”,但更多情况下,额外的输出不会有帮助:(

可能问题在于FUSE文件系统不支持在其上装载循环所需的功能


您是否考虑过改用网络块设备,如NBD或iSCSI目标?

是否使用Root权限执行。您可以使用“strace”跟踪程序然后检查失败的地方。

您使用哪个发行版进行开发?它可以很简单,只需将您的用户添加到“fuse”组。Ubuntu 9。使用root安装。遗憾的是-v显示出绝对没有问题,直到可怕的“权限被拒绝”不幸的是,这似乎不适合,因为NBD服务器本身将满足块请求。而我需要我的应用程序来提供块。您的应用程序可以通过实现NBD服务器或iscsi目标来提供块;然后您可以使用内核的现有NBD或iscsi驱动程序使其在网络上可用,然后装载它。I错误地认为编写自己的NBD服务器太痛苦了。刚刚找到了一个用python编写的NBD服务器草稿:“非常适合我的“python原型”实验谢谢!