loop设备介绍
在类UNIX系统中,/dev/loop0、/dev/loop1等设备是一种伪设备,也可以说是仿真设备。这些设备使得我们能够像使用块设备一样访问一个文件。
在使用之前,一个loop设备必须要和一个文件进行链接,这种链接方式给用户提供了一个替代块特殊文件的接口。如果这个文件包含有一个完整的文件系统,则这个文件就可以像一个磁盘一样被挂载(mount)起来。
比如该文件包含squashfs文件系统,则该文件可以被mount到某一个loop设备。或者该文件是ISO光盘镜像文件,通过这种loop mount的方式,这些光盘镜像文件就可以被挂载到当前文件系统的一个目录下。
losetup命令
losetup命令用来设置loop设备,loop设备可将文件虚拟成块设备,借此来模拟整个文件系统,让用户将其视为硬盘驱动、光驱或者软驱等设备,并挂载到某一个目录来使用。
命令的语法格式:
losetup [-e encryption] [-o offset] loop_device file
losetup [-d] loop_device
选项-e表示加密的方式;
选项-o设置数据的偏移量;
选项-d表示卸载loop设备;
file表示要与loop设备相关联的文件名,往往是一个img磁盘镜像文件,或者内含squashfs文件系统的打包文件等。
例如:
#将文件test.set的偏移12345678处的数据链接到loop设备/dev/loop1
losetup -o 12345678 /dev/loop1 test.set
#将/dev/loop1挂载到/home/dist/test,可通过访问/home/dist/test读取test.set中相应数据
mount /dev/loop1 /home/dist/test
#卸载/home/dist/test的挂载
umount /home/dist/test
#卸载设备/dev/loop1
losetup -d /dev/loop1