有一种特殊的块设备叫loop device,这种loop device设备是通过影射操作系统上的正常的文件而形成的虚拟块设备。因为这种设备的存在,就为我们提供了一种创建一个存在于其他文件中的虚拟文件系统的机制.如果我们在使用一种集群需要使用其他盘符而没有新设备的时候可以采取这种方式,在虚拟机下需要设备的时候也可以采取这种方式:
第一步:用dd命令创建一个文件,文件大小即为你的新设备的大小
dd if=/dev/zero of=sd1 bs=4M count=1000
这样就创建了一个大小为4G的文件sd1
第二步:使用losetup命令创建一个loop 设备
losetup /dev/loop0 sd1
第三步:创建一个文件系统
mkfs.ext3 /dev/loop0
最后:如果要删除刚才创建的这些对象
losetup -d /dev/loop0
rm sd1
默认情况下linux支持的loop设备是8个
如果需要超过8个loop device,那么使用losetup命令的时候可能会遇到类似的错误 'no such device',这是因为超过了可用loop device设备的最大限制,依据你的Linux系统,可以通过修改
/etc/modprobe.conf
配置文件,增加如下参数的方式进行扩展
options loop max_loop=20 --比如我增加到20个
保存退出,如果要了马上生效的话,可以通过
modprobe -v loop
命令立即加载该模块。
[root@vm11g dev]# cat /etc/modprobe.conf|grep loop
options loop max_loop=20
[root@vm11g dev]# modprobe -v loop
insmod /lib/modules/2.6.39.4/kernel/drivers/block/loop.ko max_loop=20
[root@vm11g dev]# ls -ltr /dev/loop*