設(shè)定與控制循環(huán)(loop)設(shè)備
losetup命令 用來(lái)設(shè)置循環(huán)設(shè)備。循環(huán)設(shè)備可把文件虛擬成塊設(shè)備,籍此來(lái)模擬整個(gè)文件系統(tǒng),讓用戶(hù)得以將其視為硬盤(pán)驅(qū)動(dòng)器,光驅(qū)或軟驅(qū)等設(shè)備,并掛入當(dāng)作目錄來(lái)使用。
losetup [ -e encryption ] [ -o offset ] loop_device file
losetup [ -d ] loop_device
-a 顯示所有循環(huán)設(shè)備的狀態(tài)。
-d 卸除設(shè)備。
-e <加密選項(xiàng)> 啟動(dòng)加密編碼 。
-f 尋找第一個(gè)未使用的循環(huán)設(shè)備。
-o <偏移量>設(shè)置數(shù)據(jù)偏移量,單位是字節(jié)。
在類(lèi) UNIX 系統(tǒng)里,loop 設(shè)備是一種偽設(shè)備(pseudo-device),或者也可以說(shuō)是仿真設(shè)備。它能使我們像塊設(shè)備一樣訪問(wèn)一個(gè)文件。在使用之前,一個(gè) loop 設(shè)備必須要和一個(gè)文件進(jìn)行連接。這種結(jié)合方式給用戶(hù)提供了一個(gè)替代塊特殊文件的接口。因此,如果這個(gè)文件包含有一個(gè)完整的文件系統(tǒng),那么這個(gè)文件就可以像一個(gè)磁盤(pán)設(shè)備一樣被 mount 起來(lái)。
上面說(shuō)的文件格式,我們經(jīng)常見(jiàn)到的是 cd 或 DVD 的 ISO 光盤(pán)鏡像文件或者是軟盤(pán)(硬盤(pán))的 *.img 鏡像文件。通過(guò)這種 loop mount (回環(huán)mount)的方式,這些鏡像文件就可以被 mount 到當(dāng)前文件系統(tǒng)的一個(gè)目錄下。
至此,順便可以再理解一下 loop 之含義:對(duì)于第一層文件系統(tǒng),它直接安裝在我們計(jì)算機(jī)的物理設(shè)備之上;而對(duì)于這種被 mount 起來(lái)的鏡像文件(它也包含有文件系統(tǒng)),它是建立在第一層文件系統(tǒng)之上,這樣看來(lái),它就像是在第一層文件系統(tǒng)之上再繞了一圈的文件系統(tǒng),所以稱(chēng)為 loop。
創(chuàng)建空的磁盤(pán)鏡像文件,這里創(chuàng)建一個(gè)1.44M的軟盤(pán):
dd if=/dev/zero of=floppy.img bs=512 count=2880
使用 losetup將磁盤(pán)鏡像文件虛擬成快設(shè)備:
losetup /dev/loop1 floppy.img
掛載塊設(shè)備:
mount /dev/loop0 /tmp
經(jīng)過(guò)上面的三步之后,我們就可以通過(guò)/tmp目錄,像訪問(wèn)真實(shí)快設(shè)備一樣來(lái)訪問(wèn)磁盤(pán)鏡像文件floppy.img。
卸載loop設(shè)備:
umount /tmp
losetup -d /dev/loop1