环回文件系统存在与文件之中,我们通过将环回文件连接到一个设备文件来进行挂载,环回文件系统的一个例子就是初始化内存文件(/boot/initrd.img),这个文件存储了一个用于内核初始化的文件系统
创建空白文件
使用dd创建一个1GB的空白文件
[root@MIO-2 ~]# dd if=/dev/zero of=loopback.img bs=1G count=1 1+0 records in 1+0 records out 1073741824 bytes (1.1 GB) copied, 4.17963 s, 257 MB/s
使用mkfs命令格式化文件
mkfs.ext4 loopbackfile.img
[root@MIO-2 ~]# mkfs.ext4 loopback.img mke2fs 1.41.12 (17-May-2010) loopback.img is not a block special device. Proceed anyway? (y,n) y ...
检查文件系统
[root@MIO-2 ~]# file loopback.img loopback.img: Linux rev 1.0 ext4 filesystem data (extents) (large files) (huge files)
挂载环回文件
[root@MIO-2 ~]# mount -o loop loopback.img /mnt/test/ [root@MIO-2 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg01-main 97G 2.4G 89G 3% / tmpfs 1.9G 0 1.9G 0% /dev/shm /dev/vda1 194M 27M 157M 15% /boot /root/loopback.img 1008M 34M 924M 4% /mnt/test
这是一种快捷的挂载方法,我们并没有连接到任何设备上,但是在内部,这个环回文件链接到到了一个/dev/loop0-7的某一个设备上
[root@MIO-2 ~]# ll /dev/loo* brw-rw---- 1 root disk 7, 0 Aug 24 20:44 /dev/loop0 brw-rw---- 1 root disk 7, 1 Aug 24 20:44 /dev/loop1 brw-rw---- 1 root disk 7, 2 Aug 24 20:44 /dev/loop2 brw-rw---- 1 root disk 7, 3 Aug 24 20:44 /dev/loop3 brw-rw---- 1 root disk 7, 4 Aug 24 20:44 /dev/loop4 brw-rw---- 1 root disk 7, 5 Aug 24 20:44 /dev/loop5 brw-rw---- 1 root disk 7, 6 Aug 24 20:44 /dev/loop6 brw-rw---- 1 root disk 7, 7 Aug 24 20:44 /dev/loop7
手动指定将环回文件挂载到某一个设备上
[root@MIO-2 ~]# losetup /dev/loop6 loopback.img [root@MIO-2 ~]# mount /dev/loop6 /mnt/test/ [root@MIO-2 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg01-main 97G 2.4G 89G 3% / tmpfs 1.9G 0 1.9G 0% /dev/shm /dev/vda1 194M 27M 157M 15% /boot /dev/loop6 1008M 34M 924M 4% /mnt/test
将ISO文件做为环回文件挂载
ISO文件是任意种类的光学存储介质,我们可以采用环回挂载的方法,像挂载物理光盘一样挂载ISO文件
挂载点就是一个目录,用来作为文件系统的访问路径,我们甚至可以用一个非空的目录做为挂载路径,那么知道设备被卸载,这个挂载路径中包含的都是来自设备的数据,而非原始目录中的内容
mount -o loop test.iso /mnt/iso