您的位置:首页 > 运维架构 > Linux

linux loop device介绍

2011-05-10 13:50 344 查看
Linux
中,有一种特殊的块设备叫loop
device
,这种loop
device
设备是通过影射操作系统上的正常的文件而形成的虚拟块设备。因为这种设备的存在,就为我们提供了一种创建一个存在于其他文件中的虚拟文件系统的机制.下面是一个示例:

第一步:create a file with 'dd' command:

dd if=/dev/zero of=FS_on_file bs=1k count=10000

这样就在当前目录下创建了一个10Mb的文件"FS_on_file"

第二步:使用losetup命令创建一个loop
device

losetup /dev/loop0 FS_on_file

第三步:创建一个文件系统

mkfs -t ext3 /dev/loop0

第四步:挂载这个文件系统

(the mount point '/mnt/FS_file0' has been created before by 'mkdir'):

mount /dev/loop0 /mnt/FS_file0

最后:如果要删除刚才创建的这些对象,依次执行如下步骤:

$ umount /dev/loop0

$ losetup -d /dev/loop0

$ rm FS_on_file

说明

:1)详细的losetup命令如下

[root@vm11g ~]# losetup

usage:

losetup loop_device # give info

losetup -d loop_device # delete

losetup [ -e encryption ] [ -o offset ] loop_device file # setup

[root@vm11g ~]#

其中加密选项有如下几种方式:

NONE use no encryption (default).

XOR use a simple XOR encryption.

DES use DES encryption.

DES encryption is only available if the optional DES package has been added to the kernel.

DES encryption uses an additional start value that is used to protect passwords against dictionary attacks.

2)默认情况下系统支持的loop
device
是8个

[root@vm11g dev]# ls -ltr /dev/loop
*

brw-r----- 1 root disk 7, 0 Jul 19 2009 /dev/loop0

brw-r----- 1 root disk 7, 1 Jul 19 2009 /dev/loop1

brw-r----- 1 root disk 7, 2 Jul 19 2009 /dev/loop2

brw-r----- 1 root disk 7, 3 Jul 19 2009 /dev/loop3

brw-r----- 1 root disk 7, 4 Jul 19 2009 /dev/loop4

brw-r----- 1 root disk 7, 5 Jul 19 2009 /dev/loop5

brw-r----- 1 root disk 7, 6 Jul 19 2009 /dev/loop6

brw-r----- 1 root disk 7, 7 Jul 19 2009 /dev/loop7

[root@vm11g dev]#

 

如果需要超过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.9-42.0.0.0.1.ELsmp/kernel/drivers/block/loop
.ko max_loop=20

[root@vm11g dev]# ls -ltr /dev/loop
*

brw-rw---- 1 root disk 7, 8 Jul 19 07:44 /dev/loop8

brw-rw---- 1 root disk 7, 9 Jul 19 07:44 /dev/loop9

brw-rw---- 1 root disk 7, 10 Jul 19 07:44 /dev/loop10

brw-rw---- 1 root disk 7, 11 Jul 19 07:44 /dev/loop11

brw-rw---- 1 root disk 7, 12 Jul 19 07:44 /dev/loop12

brw-rw---- 1 root disk 7, 13 Jul 19 07:44 /dev/loop13

brw-rw---- 1 root disk 7, 14 Jul 19 07:44 /dev/loop14

brw-rw---- 1 root disk 7, 15 Jul 19 07:44 /dev/loop15

brw-rw---- 1 root disk 7, 16 Jul 19 07:44 /dev/loop16

brw-rw---- 1 root disk 7, 17 Jul 19 07:44 /dev/loop17

brw-rw---- 1 root disk 7, 18 Jul 19 07:44 /dev/loop18

brw-rw---- 1 root disk 7, 19 Jul 19 07:44 /dev/loop19

brw-rw---- 1 root disk 7, 0 Jul 19 2009 /dev/loop0

brw-rw---- 1 root disk 7, 1 Jul 19 2009 /dev/loop1

brw-rw---- 1 root disk 7, 2 Jul 19 2009 /dev/loop2

brw-rw---- 1 root disk 7, 3 Jul 19 2009 /dev/loop3

brw-rw---- 1 root disk 7, 4 Jul 19 2009 /dev/loop4

brw-rw---- 1 root disk 7, 5 Jul 19 2009 /dev/loop5

brw-rw---- 1 root disk 7, 6 Jul 19 2009 /dev/loop6

brw-rw---- 1 root disk 7, 7 Jul 19 2009 /dev/loop7

有了这个东西,在Linux
下就可以借助file来测试学习ASM了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: