首先,介绍一下现在的环境,我们需要为/home目录进行配额,但是呢,/home目录并非独立文件系统,而使用Quota进行配额需要在独立文件系统上进行。
问题环境:须配额目录为非独立文件系统并且磁盘无可分配分区的情况。
解决方案:增加磁盘容量
因为我这里使用的虚拟机,所以我可以通过虚拟机增加一块磁盘空间。这里就不赘述关于虚拟机增加磁盘空间的方式了。
使用“fdisk -l”命令查看磁盘状况,注意:这里要使用root用户,使用一般用户会报“Unable to open /dev/sdb”错误。
我们看到有一块sdb的设备,接下来我们为它分区并格式化:
分区:fdisk /etc/sdb
我这里是10G,我给这里分配了5G的主分区。
最后一步记得w一下,写入分区表。
现在我们看一下我们的磁盘分区情况:
分区进行好了,然后咱们进行格式化:
出现了这种问题,什么原因呢?
我们试着刷新一下分区表:
执行partprobe
命令刷新一下内存的分区表
partprobe包含在parted的rpm软件包中。
partprobe可以修改kernel中分区表,使kernel重新读取分区表。
因此,使用该命令就可以创建分区并且在不重新启动机器的情况下系统能够识别这些分区。
如果没有安装,可以“yum install parted”安装指令。
然后我们重新格式化分区:mkfs -t ext4 /dev/sdb1就会成功了(注意我这里的分区可能和大家不一样)。
接下来,我们先建立一个临时目录/mnt/thome,然后将我们的新的分区进行挂载,最后备份我们的需要配额的目录,比如我这边是/home目录。
编辑/etc/fstab。
磁盘手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中,否则下次开机启动时仍然需要重新挂载。
系统开机时会主动读取/etc/fstab这个文件中的内容,根据文件里面的配置挂载磁盘。这样我们只需要将磁盘的挂载信息写入这个文件中我们就不需要每次开机启动之后手动进行挂载了。
我们在文本最后加入如上一行内容。
解释一下这几列数据:
第一列:Device:设备名和label或者UUID
设备的UUID获取方式:例如:blkid /dev/sdb1 ,我们可以获取设备的UUID以及磁盘文件格式。
使用设备名和label及uuid作为标识的不同:
使用设备名称(/dev/sda)来挂载分区时是被固定死的,一旦磁盘的插槽顺序发生了变化,就会出现名称不对应的问题。因为这个名称是会改变的;不过使用label挂载就不用担心插槽顺序方面的问题。不过要随时注意你的Label name;至于UUID,每个分区被格式化以后都会有一个UUID作为唯一的标识号。使用uuid挂载的话就不用担心会发生错乱的问题了。
第二列:Mount point:设备的挂载点,就是你要挂载到哪个目录下。
第三列:filesystem:磁盘文件系统的格式,包括ext2、ext3、reiserfs、nfs、vfat等
第四列:parameters:文件系统的参数
Async/sync | 设置是否为同步方式运行,默认为async |
auto/noauto | 当下载mount -a 的命令时,此文件系统是否被主动挂载。默认为auto |
rw/ro | 是否以以只读或者读写模式挂载 |
exec/noexec | 限制此文件系统内是否能够进行"执行"的操作 |
user/nouser | 是否允许用户使用mount命令挂载 |
suid/nosuid | 是否允许SUID的存在 |
Usrquota | 启动文件系统支持磁盘配额模式 |
Grpquota | 启动文件系统对群组磁盘配额模式的支持 |
Defaults | 同事具有rw,suid,dev,exec,auto,nouser,async等默认参数的设置 |
第五列:能否被dump备份命令作用:dump是一个用来作为备份的命令。通常这个参数的值为0或者1
0 | 代表不要做dump备份 |
1 | 代表要每天进行dump的操作 |
2 | 代表不定日期的进行dump操作 |
第六列:是否检验扇区:开机的过程中,系统默认会以fsck检验我们系统是否为完整(clean)。
0 | 不要检验 |
1 | 最早检验(一般根目录会选择) |
2 | 1级别检验完成之后进行检验 |
第一列我们使用标签,并设置为/home;第二列表示挂载在/home这个目录,也就是我们最终需要配额的目录。
我们的第四、五、六列使用默认值就好了。
我们在/etc/fstab里面将标签为/home的分区挂载在了/home目录上,那么我们就需要将我们之前的设备进行标签设置:
e2label /dev/sdb1 /home,这里的意思就是为设备/dev/sdb1设置标签/home,即进行设备和标签的绑定。
然后使用dumpe2fs命令查看文件系统信息。
mount -a 查看是否可以正确挂载
df查看文件系统
取消/mnt/thome的挂载
到此,我们已经将/home目录转移,设置成了独立的文件系统。可以进行quota配额了。