loop设备的使用
以下引自zh.wikipedia.org
/dev/loop(或称vnd (vnode disk)、lofi(循环文件接口))在类Unix系统中是一种伪设备,这种设备使得文件可以如同块设备一般被访问。
在使用之前,循环设备必须与现存文件系统上的文件相关联。这种关联将提供给用户一个应用程序接口,接口将允许文件视为块特殊文件(参见设备文件系统)使用。因此,如果文件中包含一个完整的文件系统,那么这个文件就能如同磁盘设备一般被挂载。
用法
在目录上挂载包含文件系统的文件一般需要两步:
- 用一个循环设备节点连接文件。
- 在目录上挂载该循环设备
方法一
1
2
| losetup /dev/loop0 example.img
mount /dev/loop0 /home/you/dir
|
方法二
1
| mount -o loop example.img /home/you/dir
|
设备卸载
之后设备便能用下列命令实现卸载:
1
2
3
4
5
| umount /home/you/dir
# 或者通过诸如 mount | grep "/home/you/dir"
# 或是 losetup -a | grep example.img 的查找找到与文件相关联的loop设备号码
# 并执行下列命令:(<N>代表设备号)
umount /dev/loop<N>
|
总结
将文件挂载为loop
设备,前提是要挂载的文件内包含完整的文件系统。
实例
1
2
3
4
5
| $ sudo mount -o rootfs.cramfs /mnt/ #rootfs.cramfs是自己用busybox制作的cramfs格式的根文件系统
$ ls /mnt
# 可以看到根文件系统中的内容
$ losetup -a
/dev/loop10: []: (/home/kevin/rootfs.cramfs) # 可以看到设备loop10和rootfs.cramfs文件系统绑定了
|
此方法可以用于调试根文件系统,以及挂载本地的iso光盘镜像
1
| mount -o loop -t iso9660 /usr/local/tooldisk/mydisk4.iso /mnt/vcdrom
|