在Linux中,有一种特殊的块设备叫loop device,这种loop device设备是通过影射操作系统上的正常的文件而形成的虚拟块设备。因为这种设备的存在,就为我们提供了一种创建一个存在于其他文件中的虚拟文件系统的机制。

示例
第一步:使用dd命令创建文件
dd if=/dev/zero of=FS_on_file bs=1k count=10000
第二步:使用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@linuxprobe ~]# losetup
usage:
losetup loop_device # give info
losetup -d loop_device # delete
losetup [ -e encryption ] [ -o offset ] loop_device file # setup

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

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@linuxprobe ~]# 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

如果需要超过8个loop device,那么使用losetup命令的时候可能会遇到类似的错误 'no such device',这是因为超过了可用loop device设备的最大限制,依据你的Linux系统,可以通过修改 /etc/modprobe.conf 配置文件,增加如下参数的方式进行扩展

options loop max_loop=20 --比如我增加到20个

如果要了马上生效的话,可以执行以下命令立即加载该模块。

modprobe -v loop
[root@linuxprobe ~]# cat /etc/modprobe.conf|grep loop
options loop max_loop=20 [root@linuxprobe ~]# modprobe -v loop
insmod /lib/modules/2.6.9-42.0.0.0.1.ELsmp/kernel/drivers/block/loop.ko max_loop=20
[root@linuxprobe ~]# 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了。

本文转载自:http://www.linuxprobe.com/linux-loop-device-introduction.html

linux loop device介绍的更多相关文章

  1. Linux下如何创建loop device

    在Linux中,有一种特殊的块设备叫loop device,这种loop device设备是通过映射操作系统上的正常的文件而形成的虚拟块设备 因为这种设备的存在,就为我们提供了一种创建一个存在于其他文 ...

  2. 一、Linux 设备驱动介绍及开发环境搭建

    1.1 Linux 设备驱动介绍 1.1.1 分类及特点 计算机系统的硬件主要由 CPU.存储器和外设组成. 当前 CPU 内部都集成有存储器和外设适配器. 外设适配器有入 UART.IIC 控制器. ...

  3. Linux实战教学笔记07:Linux系统目录结构介绍

    第七节 Linux系统目录结构介绍 标签(空格分隔):Linux实战教学笔记 第1章 前言 windows目录结构 C:\windows D:\Program Files E:\你懂的\精品 F:\你 ...

  4. Linux性能工具介绍

    l  Linux性能工具介绍 p  CPU高 p  磁盘I/O p  网络 p  内存 p  应用程序跟踪 l  操作系统与应用程序的关系比喻为“唇亡齿寒”一点不为过 l  应用程序的性能问题/功能问 ...

  5. Linux 启动参数介绍

    Linux 启动参数介绍 取自2.6.18 kernel Documentation/i386/boot.txt 文件中介绍 vga= 这里的不是一个整数(在C语言表示法中,应是十进制,八进制或者十六 ...

  6. Linux内核策略介绍

      Linux内核策略介绍学习笔记   主要内容 硬件 策略 CPU 进程调度.系统调用.中断 内存 内存管理 外存 文件IO 网络 协议栈 其他 时间管理 进程调度 内核的运行时间 系统启动.中断发 ...

  7. Linux DTS(Device Tree Source)设备树详解之二(dts匹配及发挥作用的流程篇)【转】

    转自:https://blog.csdn.net/radianceblau/article/details/74722395 版权声明:本文为博主原创文章,未经博主允许不得转载.如本文对您有帮助,欢迎 ...

  8. Linux系统性能监控工具介绍之-tsar

    Linux系统性能监控工具介绍之-tsar Linux系统性能监控工具介绍之-tsar 2017-03-02 20:25 175人阅读 评论(0) 收藏 举报  分类: LINUX调优(9)    目 ...

  9. Linux lsof工具介绍

    引言 在<Linux fuser工具介绍>一文中,与大家一起学习了fuser工具的使用方法."lsof"——list open files,lsof也是Linux下用于 ...

随机推荐

  1. ONVIF开发实例

    <开发过过程中的经验总结> ➤工具的使用     (1)首先将文件soapClientLib.c 中"代码"的第二行和第三行注释掉,实际上该文件根本没有用,为了保险起见 ...

  2. tomcat启动startup.bat一闪而过的问题处理方式

    tomcat在启动时,会读取环境变量的信息,需要一个CATALINA_HOME 与JAVA_HOME的信息,CATALINA_HOME即tomcat的主目录,JAVA_HOME即Java安装的主目录, ...

  3. css平移动画的实现

    参考这位大佬的帖子:https://www.jianshu.com/p/5d8e77ef7f84

  4. Bzoj1018[SHOI2008]堵塞的交通traffic(线段树)

    这题需要维护连通性,看到有连接删除,很容易直接就想LCT了.然而这题点数20w操作10w,LCT卡常估计过不去.看到这个东西只有两行,考虑能否用魔改后的线性数据结构去维护.我想到了线段树. 考虑如果两 ...

  5. [BZOJ5317][JSOI2018]部落战争(闵可夫斯基和)

    对于点集$A$,$B$,闵可夫斯基和$C=\{(x1+x2,y1+y2)|(x1,x2)\in A,(y1,y2)\in B\}$.由此可知,对于两个凸包$A$,$B$的闵可夫斯基和$C$满足,$C$ ...

  6. Go Web编程 第四章--处理请求

    请求和响应 Request结构 URL字段 Header字段 Body字段 Form, PostForm, MultipartForm字段 在处理器函数中,我们可以通过Request获取各个字段的详细 ...

  7. 【洛谷】2602: [ZJOI2010]数字计数【数位DP】

    P2602 [ZJOI2010]数字计数 题目描述 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. 输入输出格式 输入格式: 输入文件中仅包含一行两个整数a ...

  8. 开发移动端web页面click事件失效问题

    这两天在做一个WAP页面,在chrome上模拟移动端的时候,都好好的,然而放到手机上测试时, 发现有些点击事件直接无反应,但是有些有反应: 难道是由于我页面上有用到滚动插件,里面的touch事件的pr ...

  9. Java_慎用方法级别的synchronized关键字

    为什么要这么说呢, 因为笔者被这个坑过(其实是自己坑自己)╮(╯_╰)╭ 先看一段synchronized 的详解: synchronized 是 java语言的关键字,当它用来修饰一个方法或者一个代 ...

  10. HDU 4499 Cannon (搜索)

    Cannon Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total Subm ...