loop設備介紹
在類UNIX系統中,/dev/loop0、/dev/loop1等設備是一種僞設備,也可以說是仿真設備。這些設備使得我們能夠像使用塊設備一樣訪問一個文件。
在使用之前,一個loop設備必須要和一個文件進行鏈接,這種鏈接方式給用戶提供了一個替代塊特殊文件的接口。如果這個文件包含有一個完整的文件系統,則這個文件就可以像一個磁盤一樣被掛載(mount)起來。
比如該文件包含squashfs文件系統,則該文件可以被mount到某一個loop設備。或者該文件是ISO光盤鏡像文件,通過這種loop mount的方式,這些光盤鏡像文件就可以被掛載到當前文件系統的一個目錄下。
losetup命令
losetup命令用來設置loop設備,loop設備可將文件虛擬成塊設備,藉此來模擬整個文件系統,讓用戶將其視爲硬盤驅動、光驅或者軟驅等設備,並掛載到某一個目錄來使用。
命令的語法格式:
losetup [-e encryption] [-o offset] loop_device file
losetup [-d] loop_device
選項-e表示加密的方式;
選項-o設置數據的偏移量;
選項-d表示卸載loop設備;
file表示要與loop設備相關聯的文件名,往往是一個img磁盤鏡像文件,或者內含squashfs文件系統的打包文件等。
例如:
#將文件test.set的偏移12345678處的數據鏈接到loop設備/dev/loop1
losetup -o 12345678 /dev/loop1 test.set
#將/dev/loop1掛載到/home/dist/test,可通過訪問/home/dist/test讀取test.set中相應數據
mount /dev/loop1 /home/dist/test
#卸載/home/dist/test的掛載
umount /home/dist/test
#卸載設備/dev/loop1
losetup -d /dev/loop1