2009-10-27 125 views
6

我的项目涉及通过远程主机模拟块设备。Linux块设备仿真和保险丝

为了测试我使用FUSE,我的文件系统是“你好”示例应用程序,在那里,而不是返回一个字符串常量我只是从文件中读取数据,直接的简单变化。

当我尝试正常安装文件(安装邻环=的/ dev/LOOP1)效果很好。 当我加载保险丝并通过它暴露此文件时,所有正常的文件操作工作。但安装失败,并显示“权限被拒绝”。

任何人有一个想法,其中拒绝“权限”是哪里来的?

任何其他方法来,让我来创建一个虚拟设备(只支持块访问)的用户空间,这将是安装?

在此先感谢

+0

什么发行版是否与你一起开发?它可能就像需要将用户添加到“保险丝”组一样简单。 – 2009-10-27 14:50:24

+0

Ubuntu 9. Mount与根。 – Boris 2009-10-28 16:55:40

回答

1

mount命令是一个真正的地狱,当它开始打印错误使用。尝试“-v”,但更多的,往往不是额外的输出将不利于:(

+0

可悲的是-v表示绝对没有问题,直到可怕的“权限被拒绝” – Boris 2009-10-28 16:56:16

4

想必问题是,FUSE文件系统不支持对它有环坐骑所需的功能。

你有没有使用网络块设备代替,如NBD或iSCSI目标考虑?

+0

不会出现适合作为NBD服务器将满足块请求本身很遗憾。虽然我需要我的应用程序来提供块。 – Boris 2009-10-28 17:09:07

+0

您的应用程序可以通过实现NBD服务器或iscsi目标来提供块;然后您可以使用内核的现有NBD或iscsi驱动程序通过网络使其可用,然后将其挂载。 – MarkR 2009-10-28 23:00:02

+0

我错误地认为编写我自己的NBD服务器将是一个很大的痛苦。 刚刚在python中发现了一个nbd-server草案: “http://lists.canonical.org/pipermail/kragen-hacks/2004-May/000397.html” 适合我的“Python原型”实验 谢谢! – Boris 2009-10-29 08:53:08

2

你以root权限执行,你可以跟踪程序以“使用strace”,然后检查哪儿失败。