在Linux中对由多个文件组成的回送设备进行编程
收藏

嘿,
在Linux中使用losetup模拟块设备的文件相对容易:
http://www.walkernews.net/2007/07/01/create-linux-loopback-file-system-on-disk-file/
有谁能给我一个提示,我想找什么,以防我自己的程序块设备是基于几个文件,我正在采取的内容从我的基础上?为了便于理解,我想假设从file1获取bytes 1-500和1.000-3.000,从file2获取bytes 501-999和bytes 3.001-5.000作为组合块设备。我更喜欢的编程语言是python,我希望尽可能在用户空间编写我的程序。
对于windows,我发现了这样一个实现。它叫做filedisk和httpdisk,可以在这里找到:
http://www.acc.umu.se/~bosse/
提前感谢并致以问候,
雷纳


最佳答案:

你不需要编写任何程序。您可以使用Linux的多设备(也称为md)子系统来构建一个由许多较小设备组成的块设备。
为此,您可以使用mdadmLINEARRAID设备从较小的设备中组装出来。
更新
下面是我所做的:

$ 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

注意,我使用$作为提示,以避免混淆自动语法突出显示;)
就这么简单。
干杯。
附言:现在这真的是超级用户的资格,不是吗?

公众号