基于的loop设备的详细介绍-
一、简单介绍
首先我们在命令行终端中输入manloop
出现如下内容:
摘要:
Loop设备是一种块设备,然而它并不指向硬碟或则硬盘,而是指向一个文件块或则另一种块设备。
一种应用的事例:将另外一种文件系统的镜像文件保存到一个文件中,比如iso文件,之后将一个Loop设备指向该文件,紧接着就可以通过mount挂载该loop设备到主文件系统的一个目录下了,我们就可以正常访问该镜像中的内容,如同访问一个文件系统一样。
二、详细介绍
loop设备是一种伪设备,是使用文件来模拟块设备的一种技术,文件模拟成块设备后,如同一个c盘或光碟一样使用。在使用之前linux device命令,一个loop设备必需要和一个文件进行联接。这些结合形式给用户提供了一个代替块特殊文件的插口。因而,假如这个文件包含有一个完整的文件系统,这么这个文件就可以像一个c盘设备一样被mount上去。之所以叫loop设备(回环),虽然是从文件系统这一层来考虑的,由于这些被mount上去的镜像文件它本身也包含有文件系统,通过loop设备把它mount上去,它如同是文件系统之上再绕了一圈的文件系统linux device命令,所以称为loop。
回环设备('loopbackdevice')准许用户以一个普通c盘文件虚拟一个块设备。构想一个c盘设备,对它的所有读写操作都将被重定向到读写一个名为disk-image的普通文件而非操作实际c盘或分区的轨道和磁道。(其实linux基础教程,disk-image必须存在于一个实际的c盘上,而这个c盘必须比虚拟的c盘容量更大。)回环设备容许你这样使用一个普通文件。
回环设备以/dev/loop0、/dev/loop1等命名。每位设备可虚拟一个块设备。注意只有超级用户才有权限设置回环设备。
三、简单使用
通常在linux中会有8个loop设备,通常是/dev/loop0~loop7,可用通过losetup-a查看所有的loop设备,假如命令没有输出就说明所有的loop设备都没有被占用,你可以根据以下步骤创建自己的loop设备。
命令losetup可以对loop设备进行操作。
下边简单的说明loop设备映射或则指向一个文件的简单步骤:
创建一个文件
1、ddif=/dev/zeroof=/var/loop.imgbs=1Mcount=10240
使用losetup将文件转化为块设备
2、losetup/dev/loop0/var/loop.img
通过lsblk查看刚才创建的块设备
lsblk|greploop0
losetup–a
3、2步骤之后linux桌面,我们就获得了一个c盘,在这c盘上我们可以重构任何文件系统,一般来说,使用默认的文件系统(即操作系统的当前的文件系统格式)就行了。怎样创建一个文件系统,须要另外了解。
4、挂载该c盘到主文件系统下的一个目录。
首先创建一个目录:
Mkdir/myloopdev
接着挂载:
Mount/dev/loop0/myloopdev
5、就可以步入myloopdev目录,对该虚拟c盘进行操作了。如同使用真实c盘一样,比如:echo“helloworld!”>hello_world.txt
6、使用结束,我们卸载该c盘,umount/myloopdev
7、接着删掉该loop设备,losetup–d/dev/loop0
四、使用loop设备完成一些功能
里面三简单介绍了怎样使用Loop指向一个文件,接下介绍使用loop的一些场景。
借助Loop设备作为一个虚拟硬盘或则虚拟光驱
1、回环设备关联文件。
losetup/dev/loop0a.iso
losetup命令拿来实现回环设备和文件的关联。这个命令还可以实现文件系统的加密,有兴趣的同学可以查看指南。
2、挂载回环设备到特定目录,我们假定要挂载到/mnt/下边。
mount/dev/loop0/mnt/
这样/mnt/下边就是a.iso的内容了。可以通过shell去访问它了。
3、用完以后,须要卸载会换设备。
umount/mnt/
这样设备就卸载,/mnt/下边就不是a.iso的文件了。
4、回环设备和关联文件分离。其实早已在系统中卸载了回环设备,并且这个设备和文件的关联还存在。如果你还要用这个设备关联其他的文件,系统会提示这个设备正在忙。所以须要让回环设备和关联文件分离。
losetup-d/dev/loop0
这样一个光碟镜像的使用就完成了。其实同理也可以通过回环设备挂载其他的虚拟文件,例如虚拟软驱img等。