通过losetup虚拟出块设备(文件系统)

在Linux系统中,SCSI磁盘最多只支持15个分区(3个主分区sda1-sda3 + 1个扩展分区sda4 + 11个逻辑分区sda5-sda15),而IDE磁盘也只支持63个分区
 
  1. [root@rhel6 ~]# fdisk -l /dev/sda
  2. Disk /dev/sda: 6442 MB, 6442450944 bytes
  3. 16 heads, 63 sectors/track, 12483 cylinders
  4. Units = cylinders of 1008 * 512 = 516096 bytes
  5. Sector size (logical/physical): 512 bytes / 512 bytes
  6. I/O size (minimum/optimal): 512 bytes / 512 bytes
  7. Disk identifier: 0x00053d18
  8. Device Boot Start End Blocks Id System
  9. /dev/sda1 * 1 104 51200 83 Linux
  10. /dev/sda2 104 11076 5529600 8e Linux LVM
  11. /dev/sda3 11076 12116 524288 82 Linux swap / Solaris
  12. /dev/sda4 12116 12483 185320 5 Extended
  13. /dev/sda5 12116 12136 10400+ 83 Linux
  14. /dev/sda6 12137 12157 10552+ 83 Linux
  15. /dev/sda7 12158 12178 10552+ 83 Linux
  16. /dev/sda8 12179 12199 10552+ 83 Linux
  17. /dev/sda9 12200 12220 10552+ 83 Linux
  18. /dev/sda10 12221 12241 10552+ 83 Linux
  19. /dev/sda11 12242 12262 10552+ 83 Linux
  20. /dev/sda12 12263 12283 10552+ 83 Linux
  21. /dev/sda13 12284 12304 10552+ 83 Linux
  22. /dev/sda14 12305 12325 10552+ 83 Linux
  23. /dev/sda15 12326 12346 10552+ 83 Linux
  24. /dev/sda16 12347 12367 10552+ 83 Linux
  25. [root@rhel6 ~]# mkfs.ext4 /dev/sda16 //虽然可以划出15个以上的分区,但无法格式化使用
  26. mke2fs 1.41.12 (17-May-2010)
  27. Could not stat /dev/sda16 --- No such file or directory
  28. The device apparently does not exist; did you specify it correctly?
  29. [root@rhel6 ~]# ls /dev/sda16
  30. ls: cannot access /dev/sda16: No such file or directory
回环设备可以把文件虚拟成块设备(block device),以便模拟整个文件系统,这样用户可以将其看作是硬盘驱动器或者光驱等设备,并挂载当作文件系统来使用。
这样系统还可以额外增加多个分区(默认只有loop0-loop7)
 
  1. losetup
  2. -a 显示所有已经使用的回环设备状态
  3. -d 卸除回环设备
  4. -f 寻找第一个未使用的回环设备
  5. -e <加密选项> 启动加密编码
  6. [root@rhel6 ~]# losetup -f //查找第一个未使用的回环设备
  7. /dev/loop0
  8. [root@rhel6 ~]# losetup -a //显示所有已经使用的回环设备状态
  9. [root@rhel6 ~]# dd if=/dev/zero of=loop.img bs=10M count=10
  10. 10+0 records in
  11. 10+0 records out
  12. 104857600 bytes (105 MB) copied, 0.794912 s, 132 MB/s
  13. [root@rhel6 ~]# losetup -f loop.img //将 loop.img 虚拟成第一个未使用的回环设备
  14. [root@rhel6 ~]# losetup -a
  15. /dev/loop0: [fd00]:26524 (/root/loop.img)
  16. [root@rhel6 ~]# losetup -f
  17. /dev/loop1
  18. [root@rhel6 ~]# mkfs.ext4 /dev/loop0
  19. [root@rhel6 ~]# mount /dev/loop0 /mnt/
  20. [root@rhel6 ~]# df -h
  21. Filesystem Size Used Avail Use% Mounted on
  22. /dev/mapper/Lrhel6-root
  23. 3.9G 2.4G 1.4G 64% /
  24. tmpfs 499M 0 499M 0% /dev/shm
  25. /dev/sda1 49M 27M 20M 59% /boot
  26. /dev/loop0 97M 5.6M 87M 7% /mnt
  27. [root@rhel6 ~]# umount /mnt/
  28. [root@rhel6 ~]# losetup -d /dev/loop0 //卸除回环设备

相关推荐