Linux下如何創建loop device

原文來自:http://tomszrp.itpub.net/post/11835/487815

 

在Linux中,有一種特殊的塊設備叫loop device,這種loop device設備是通過影射操作系統上的正常的文件而形成的虛擬塊設備。因爲這種設備的存在,就爲我們提供了一種創建一個存在於其他文件中的虛擬文件系統的機制.下面是一個示例:

第一步:create a file with 'dd' command:
dd if=/dev/zero of=FS_on_file bs=1k count=10000

這樣就在當前目錄下創建了一個10Mb的文件"FS_on_file"


第二步:使用losetup命令創建一個loop device
losetup /dev/loop0 FS_on_file


第三步:創建一個文件系統
mkfs -t ext3 /dev/loop0

第四步:掛載這個文件系統
(the mount point '/mnt/FS_file0' has been created before by 'mkdir'):
mount /dev/loop0 /mnt/FS_file0

最後:如果要刪除剛纔創建的這些對象,依次執行如下步驟:
$ umount /dev/loop0
$ losetup -d /dev/loop0
$ rm FS_on_file

說明:1)詳細的losetup命令如下

[root@vm11g ~]# losetup
usage:
losetup loop_device # give info
losetup -d loop_device # delete
losetup [ -e encryption ] [ -o offset ] loop_device file # setup
[root@vm11g ~]#

其中加密選項有如下幾種方式:

NONE use no encryption (default).
XOR use a simple XOR encryption.
DES use DES encryption.

DES encryption is only available if the optional DES package has been added to the kernel.
DES encryption uses an additional start value that is used to protect passwords against dictionary attacks.

2)默認情況下系統支持的loop device是8個

[root@vm11g dev]# ls -ltr /dev/loop*
brw-r----- 1 root disk 7, 0 Jul 19 2009 /dev/loop0
brw-r----- 1 root disk 7, 1 Jul 19 2009 /dev/loop1
brw-r----- 1 root disk 7, 2 Jul 19 2009 /dev/loop2
brw-r----- 1 root disk 7, 3 Jul 19 2009 /dev/loop3
brw-r----- 1 root disk 7, 4 Jul 19 2009 /dev/loop4
brw-r----- 1 root disk 7, 5 Jul 19 2009 /dev/loop5
brw-r----- 1 root disk 7, 6 Jul 19 2009 /dev/loop6
brw-r----- 1 root disk 7, 7 Jul 19 2009 /dev/loop7
[root@vm11g dev]#

 

如果需要超過8個loop device,那麼使用losetup命令的時候可能會遇到類似的錯誤 'no such device',這是因爲超過了可用loop device設備的最大限制,依據你的Linux系統,可以通過修改

/etc/modprobe.conf

配置文件,增加如下參數的方式進行擴展

options loop max_loop=20 --比如我增加到20個

保存退出,如果要了馬上生效的話,可以通過

modprobe -v loop

命令立即加載該模塊。

[root@vm11g dev]# cat /etc/modprobe.conf|grep loop
options loop max_loop=20

[root@vm11g dev]# modprobe -v loop
insmod /lib/modules/2.6.9-42.0.0.0.1.ELsmp/kernel/drivers/block/loop.ko max_loop=20
[root@vm11g dev]# ls -ltr /dev/loop*
brw-rw---- 1 root disk 7, 8 Jul 19 07:44 /dev/loop8
brw-rw---- 1 root disk 7, 9 Jul 19 07:44 /dev/loop9
brw-rw---- 1 root disk 7, 10 Jul 19 07:44 /dev/loop10
brw-rw---- 1 root disk 7, 11 Jul 19 07:44 /dev/loop11
brw-rw---- 1 root disk 7, 12 Jul 19 07:44 /dev/loop12
brw-rw---- 1 root disk 7, 13 Jul 19 07:44 /dev/loop13
brw-rw---- 1 root disk 7, 14 Jul 19 07:44 /dev/loop14
brw-rw---- 1 root disk 7, 15 Jul 19 07:44 /dev/loop15
brw-rw---- 1 root disk 7, 16 Jul 19 07:44 /dev/loop16
brw-rw---- 1 root disk 7, 17 Jul 19 07:44 /dev/loop17
brw-rw---- 1 root disk 7, 18 Jul 19 07:44 /dev/loop18
brw-rw---- 1 root disk 7, 19 Jul 19 07:44 /dev/loop19
brw-rw---- 1 root disk 7, 0 Jul 19 2009 /dev/loop0
brw-rw---- 1 root disk 7, 1 Jul 19 2009 /dev/loop1
brw-rw---- 1 root disk 7, 2 Jul 19 2009 /dev/loop2
brw-rw---- 1 root disk 7, 3 Jul 19 2009 /dev/loop3
brw-rw---- 1 root disk 7, 4 Jul 19 2009 /dev/loop4
brw-rw---- 1 root disk 7, 5 Jul 19 2009 /dev/loop5
brw-rw---- 1 root disk 7, 6 Jul 19 2009 /dev/loop6
brw-rw---- 1 root disk 7, 7 Jul 19 2009 /dev/loop7

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章