Linux操作系统下你可能还不知道的一些工具之loop设备

在Linux操作系统下面有很多很实用的小工具或者特性,我们可以利用其实现平时无法完成的任务。这里工具很多,我们会慢慢介绍,今天我们介绍一下loop设备

loop设备作为一类设备自然也在设备目录中。我们在/dev目录下面经常可以看到名称如loopX的设备,这些设备就是loop设备了。/dev/loop(或称vnd (vnode disk)、lofi(循环文件接口))在类Unix系统中是一种伪设备,这种设备使得文件可以如同块设备一般被访问

之所以叫loop设备(回环),其实是从文件系统这一层来考虑的。因为loop设备本身是通过本地文件系统的一个文件生成的,而后有被格式化后挂载到文件系统上。它就像是文件系统之上再绕了一圈的文件系统,所以称为 loop。

Linux操作系统下你可能还不知道的一些工具之loop设备

这种设备文件经常被用于光盘或是磁盘镜像。通过循环挂载来挂载包含文件系统的文件,便使处在这个文件系统中的文件得以被访问。这些文件将出现在挂载点目录。如果挂载目录中本身有文件,这些文件在挂载后将被禁止使用。

基本配置及使用

loop设备的使用很简单。根据前面的描述,它是将一个文件映射为一个块设备,因此在使用之前我们需要先准备一个文件,具体方法如下:

dd if=/dev/zero of=image1 bs=1M count=100

然后就可以将该文件映射为块设备了。

losetup /dev/loop10 image1

Linux操作系统下你可能还不知道的一些工具之loop设备

此时/dev/loop10就是一个块设备了。我们可以像使用普通块设备(例如/dev/sdb)一样使用该设备了。比如对其进行格式化操作。

mkfs.ext4 /dev/loop10

完成格式化后,就可以挂载使用该块设备了。是不是确实很简单。

基于loop设备的其它应用

有的时候我们在学习一些东西的时候需要很多块设备,而我们的电脑上又没有那么多块设备,此时就可以借助loop设备。

比如我们想学习Linux的软Raid,此时可以生成多个loop设备进行学习。假设我们要创建一个Raid1,就可以执行如下命令:

mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/loop10 /dev/loop11

当然,除此之外还可以做其它很多事情,具体怎么使用还请自行发挥吧。

相关推荐