创建有配额的文件夹主要是利用linux下的loop设备。
Linux中有一种特殊的块设备叫loop device,这种loop device设备是通过影射操作系统上的正常的文件而形成的虚拟块设备。也就是说loop设备是一个虚拟设备,是用于把某个文件虚拟成一个磁盘介质设备的.关联之后对loop可以格式化,实际就是对关联文件进行某种操作,能够让这个文件像磁盘一样被mount,并且使用。
也可以理解成,循环设备可以把文件虚拟成块设备(block device),以便模拟整个文件系统,这样用户可以将其看作是硬盘驱动器,光驱或软驱等设备,并挂入当作目录来使用。
创建配额文件夹的具体步骤:
1. 先用dd命令创建一个20M大小的配额文件
复制代码 代码示例:
dd if=/dev/zero ibs=2M count=10 of=/usr/local/test.img
if=/dev/zero:表示输入文件为/dev/zero,也可以用/dev/null
ibs=2M: IBlockSize表示块大小为2M
of=/usr/local/test.img:输出文件
2. 将test.img文件与loop设备进行关联
复制代码 代码示例:
losetup /dev/loop0 /usr/local/test.img
3. 在虚拟设备上创建文件系统,实际上是针对test.img的操作,因为已经将它关联给了/dev/loop0
复制代码 代码示例:
mkfs /dev/loop0
4. 将文件设备挂载到目标文件夹上,就完成了文件夹(/usr/local/test02)的配额功能
复制代码 代码示例:
mount /dev/loop0 /usr/local/test02
5. 不再使用时需要释放资源
复制代码 代码示例:
umount /usr/local/test02
losetup -d /dev/loop0
设备文件一般存放在/dev目录下,以下是常见设备文件和简单说明:
/dev/hd[a-t]:IDE设备
/dev/sd[a-z]:SCSI设备
/dev/fd[0-7]:标准软驱
/dev/md[0-31]:软raid设备
/dev/loop[0-7]:本地回环设备
/dev/ram[0-15]:内存
/dev/null:无限数据接收设备,相当于黑洞
/dev/zero:无限零资源
/dev/tty[0-63]:虚拟终端
/dev/ttyS[0-3]:串口
/dev/lp[0-3]:并口
/dev/console:控制台