日期:2014-05-16  浏览次数:20750 次

Linux 循环设备 /dev/loop 解惑

/dev/loop(或称vnd (vnode disk)、lofi(循环文件接口))是一种伪设备,这种设备使得文件可以如同块设备一般被访问。

在使用之前,循环设备必须与现存文件系统上的文件相关联。这种关联将提供给用户一个应用程序接口,接口将允许文件视为块特殊文件(参见设备文件系统)使用。因此,如果文件中包含一个完整的文件系统,那么这个文件就能如同磁盘设备一般被挂载。

这种设备文件经常被用于光盘或是磁盘镜像(IOS、IMG)。通过循环挂载来挂载包含文件系统的文件,便使处在这个文件系统中的文件得以被访问。这些文件将出现在挂载点目录。


在一个目录上挂载包含包含文件系统的文件的步骤:

1. 使用一个循环设备(/dev/loop)连接文件(使用命令 losetup)

2. 在目录上挂载该循环设备(使用命令 mount)


例如:有一个包含文件系统的文件 sample.img,/mnt/point 为目录,如果将 sample.img 挂载到 /mnt/point 上可以使用下列命令

losetup /dev/loop0 sample.img
mount /dev/loop0 /mnt/point
# 可以使用一条mount命令替换以上两条命令
mount -o loop sample.img /mnt/point

# 卸载
umount /mnt/point
# 查看所有与文件相关联的 loop 设备
# losetup -a
losetup -d /dev/loop0