转载:http://my.oschina.net/orion/blog/28016
如果你是刚从Windows转到Linux的话,你可能要问Windows下面有虚拟光驱,Linux下面有没有呢?一般来说Windows能做的事情,Linux都能做到,并且做得更好。但是概念上面可能和Windows有点儿不同,需要你以Linux的思维来考虑问题。本文就准备介绍一下Linux的虚拟设备——回环设备——进而讲解怎样通过回环设备实现虚拟光驱,虚拟软驱等等虚拟设备。
在Linux下面,光驱,软驱都是设备,在Linux对应于一个位于/dev/下面的设备文件。如果你细心的话,你会在/dev/下面发现里面有一系列的设备loop0,loop2……。这些设备是什么设备?有什么作用的呢?这些设备统称为回环设备(Loop device)。
回环设备可以与当前文件系统的一个文件相关联,并把回环设备虚拟成一个块设备(硬盘,光盘,软盘等)。如果关联文件包含有特定文件系统(iso的文件系统是iso9660,虚拟软盘img也有特定的文件系统),则该设备可以用mount命令挂载到某个目录下。这样我们就可以像普通文件系统一样访问这个文件系统了。
通过上面的回环设备的定义,我们可以知道回环设备相当于Windows下面的虚拟光驱,虚拟软驱。Windows下面我们可能只有一个虚拟光驱,但是在Linux下面我们可以同时加载多个虚拟光驱,因为Linux中有多个回环设备。这点儿Linux做的比Windows要出色。
那么我们怎么使用回环设备呢?下面我一个光盘镜像a.iso为例来说明怎么使用。
1、回环设备关联文件。
losetup /dev/loop0 a.iso
losetup命令用来实现回环设备和文件的关联。这个命令还可以实现文件系统的加密,有兴趣的朋友可以查看手册。
2、挂载回环设备到特定目录,我们假设要挂载到/mnt/下面。
mount /dev/loop0 /mnt/
这样/mnt/下面就是a.iso的内容了。可以通过shell去访问它了。
3、用完之后,需要卸载会换设备。
umount /mnt/
这样设备就卸载,/mnt/下面就不是a.iso的文件了。
4、回环设备和关联文件分离。虽然已经在系统中卸载了回环设备,但是这个设备和文件的关联还存在。假如你还要用这个设备关联其他的文件,系统会提示这个设备正在忙。所以需要让回环设备和关联文件分离。
losetup -d /dev/loop0
这样一个光盘镜像的使用就完成了。当然同理也可以通过回环设备挂载其他的虚拟文件,比如虚拟软盘img等等。
如果你发现有项功能Windows能实现而Linux不能,那肯定是你的没有找到方法。我们要相信Linux可以做任何事情,前提是我们要多加学习。
参考资料: