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