loop裝置介紹
在類 UNIX 系統裡,loop 裝置是一種僞裝置(pseudo-device),或者也可以說是仿真裝置。它能使我們像塊裝置一樣通路一個檔案。
在使用之前,一個 loop 裝置必須要和一個檔案進行連接配接。這種結合方式給使用者提供了一個替代塊特殊檔案的接口。是以,如果這個檔案包含有一個完整的檔案系統,那麼這個檔案就可以像一個磁盤裝置一樣被 mount 起來。
上面說的檔案格式,我們經常見到的是 CD 或 DVD 的 ISO CD光牒鏡像檔案或者是軟碟(硬碟)的 *.img 鏡像檔案。通過這種 loop mount (回環mount)的方式,這些鏡像檔案就可以被 mount 到目前檔案系統的一個目錄下。
至此,順便可以再了解一下 loop 之含義:對于第一層檔案系統,它直接安裝在我們計算機的實體裝置之上;而對于這種被 mount 起來的鏡像檔案(它也包含有檔案系統),它是建立在第一層檔案系統之上,這樣看來,它就像是在第一層檔案系統之上再繞了一圈的檔案系統,是以稱為 loop。
1.建立一個100M大小的映像檔案
[root@Server ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root 14G 2.7G 11G 21% /
tmpfs 940M 72K 940M 1% /dev/shm
/dev/sda1 485M 39M 421M 9% /boot
[root@Server ~]# dd if=/dev/zero of=test.img bs=10M count=100
100+0 records in
100+0 records out
1048576000 bytes (1.0 GB) copied, 3.2612 s, 322 MB/s
[root@Server ~]# du -sh test.img
1001M test.img
/dev/mapper/VolGroup-lv_root 14G 3.7G 9.4G 29% /
[root@Server ~]#
2.查找空閑的loop裝置
[root@Server ~]# losetup -f
/dev/loop0
[root@Server ~]#
3.将映像檔案挂接到loop0中。
[root@Server ~]# losetup /dev/loop0 test.img
[root@Server ~]# fdisk -l /dev/loop0
Disk /dev/loop0: 1048 MB, 1048576000 bytes
255 heads, 63 sectors/track, 127 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
4.對loop4進行分區
[root@Server ~]# fdisk -cu /dev/loop0
[root@Server ~]# partprobe /dev/loop0
[root@Server ~]# fdisk -l /dev/loop0
Disk identifier: 0x38d505d4
Device Boot Start End Blocks Id System
/dev/loop0p1 1 4 32098+ 83 Linux
/dev/loop0p2 5 11 56227+ 83 Linux
5.使用kpartx将分區裝載到映像檔案中
[root@Server ~]# kpartx -av test.img
add map loop1p1 (253:3): 0 64197 linear /dev/loop1 63
add map loop1p2 (253:4): 0 112455 linear /dev/loop1 64260
6.格式化分區
mkfs.ext4 /dev/loop0p1
這時,我們已經可以在/dev/mapper下看到loop4的映射,然後挂載之:
mount /dev/mapper/loop0p1 /mnt
解除安裝:
umount /mnt
kpartx -dv /dev/loop4
losetup -d /dev/loop4
如果挂載的映像檔案,本身有分區,通過空間的loop裝置挂接以後,可通過kpartx -av直接進行裝載。
losetup -f
losetup /dev/loop4 test.img
kpartx -av /dev/loop4
mount /dev/loop4p1 /mnt
本文轉自 dengaosky 51CTO部落格,原文連結:http://blog.51cto.com/dengaosky/1852755,如需轉載請自行聯系原作者