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