HeJ小鼠,
在Linux中使用losetup
模拟块设备相对容易:
任何人都可以给我一个提示,如果我想编写我自己的块设备,这是基于我正在从中获取内容的几个文件,我该怎么办?为了您的理解,我想让文件1中的字节1-500和1.000-3.000以及文件2中的字节501-999和字节3.001到5.000将它们作为组合块设备提供。我首选的编程语言是Python,我想尽可能在用户空间编写我的程序。
对于Windows,我发现了这样的实现。它叫做FileDisk和HttpDisk,可以在这里找到:
在此先感谢和问候, 赖
答案 0 :(得分:4)
您无需编程任何内容。您可以使用Linux的多设备(a.k.a。md
)子系统来构建一个由多个较小设备组成的块设备。
为此,您可以使用mdadm
从较小的设备中组装LINEAR
raid设备。
<强>更新强>
所以这就是我所做的:
$ cd /images
$ dd if=/dev/zero bs=1M count=100 of=a.img
$ dd if=/dev/zero bs=1M count=50 of=b.img
$ dd if=/dev/zero bs=1M count=150 of=c.img
$ losetup -f
/dev/loop0
$ for i in a b c; do losetup -f $i.img; done
$ mdadm --build /dev/md0 -l linear -n 3 /dev/loop[012]
mdadm: array /dev/md0 built and started.
$ cat /proc/mdstat
Personalities : [linear]
md0 : active linear loop2[2] loop1[1] loop0[0]
307200 blocks super non-persistent 64k rounding
请注意,我使用$
作为提示,不要混淆自动语法突出显示;)
就这么简单。
干杯。
PS:现在这真的有资格获得超级用户,不是吗?
答案 1 :(得分:2)
如果您希望使用简单的API完全保留在用户空间中,我强烈建议FUSE使用Python relatively simple to do。