Linux losetup命令
Linux losetup命令用於設置迴圈設備。
迴圈設備可把檔虛擬成區塊設備,籍以模擬整個檔系統,讓用戶得以將其視為硬碟驅動器,光驅或軟驅等設備,並掛入當作目錄來使用。
語法
losetup [-d][-e <加密方式>][-o <平移數目>][迴圈設備代號][檔]
參數:
- -d 卸除設備。
- -e<加密方式> 啟動加密編碼。
- -o<平移數目> 設置數據平移的數目。
實例
(1)創建空的磁片鏡像檔,這裏創建一個1.44M的軟碟
$ dd if=/dev/zero of=floppy.img bs=512 count=2880
(2)使用 losetup將磁片鏡像檔虛擬成快設備
$ losetup /dev/loop1 floppy.img
(3)掛載塊設備
$ mount /dev/loop0 /tmp
經過上面的三步之後,我們就可以通過/tmp目錄,像訪問真實快設備一樣來訪問磁片鏡像檔floppy.img。
(4) 卸載loop設備
$ umount /tmp $ losetup -d /dev/loop1
一個完整測試實例
1. 首先創建一個 1G 大小的空文件:
# dd if=/dev/zero of=loopfile.img bs=1G count=1 1+0 records in 1+0 records out 1073741824 bytes (1.1 GB) copied, 69.3471 s, 15.5 MB/s
2. 對該檔格式化為 ext4 格式:
# mkfs.ext4 loopfile.img 。。。。
3. 用 file 命令查看下格式化後的檔類型:
# file loopfile.img loopfile.img: Linux rev 1.0 ext4 filesystem data, UUID=a9dfb4a0-6653-4407-ae05-7044d92c1159 (extents) (large files) (huge files)
4. 準備將上面的檔掛載起來:
# mkdir /mnt/loopback # mount -o loop loopfile.img /mnt/loopback
mount 命令的 -o loop 選項可以將任意一個 loopback 檔系統掛載。
上面的 mount 命令實際等價於下麵兩條命令:
# losetup /dev/loop0 loopfile.img # mount /dev/loop0 /mnt/loopback
因此實際上,mount -o loop 在內部已經默認的將檔和 /dev/loop0 掛載起來了。
然而對於第一種方法(mount -o loop)並不能適用於所有的場景。比如,我們想創建一個硬碟檔,然後對該檔進行分區,接著掛載其中一個子分區,這時就不能用 -o loop 這種方法了。因此必須如下做:
# losetup /dev/loop1 loopfile.img # fdisk /dev/loop1
6. 卸載掛載點:
# umount /mnt/loopback