文件系统管理

创建文件系统

创建文件系统的命令格式:

mkfs.ext4 <设备名> 创建 ext4 类型的文件系统

mkfs.xfs <设备名> 创建 xfs 类型的文件系统

也可以使用带 -t<fstype> 选项的 mkfs 命令创建各种类型的文件系统。

使用 mount 命令挂载文件系统

mount 的命令格式如下:

格式1:mount [-t<文件系统类型>] [-o<挂载选项>] <设备名> <挂装点>

  • 用于挂载 /etc/fstab 中为列出的文件系统
  • 使用 -t 选项可以指定文件类型
  • 若省略,以此试探 /proc/filesystems 中不包含 nodev 的行
  • 必须同时指定使用<设备名>或<挂装点>

格式2:mount [-o<挂载选项>] <设备名>或<挂装点>

  • 用于挂载 /etc/fstab 中以列出的文件系统
  • 选择使用<设备名>或<挂装点>
  • 若 -o 省略,使用 /etc/fstab 中该文件系统的挂装选项。

格式3:mount -a [-t<文件系统类型>] [-o<挂载选项>]

  • 用于挂载 /etc/fstab 中所有不包含 noauto (非自动挂装)挂装选择的文件系统
  • -t 若指定此参数,则只挂装 /etc/fstab 中指定类型的文件系统
  • -o 用于指定挂装 /etc/fstab 中包含指定挂装选项的文件系统
  • 若同时指定 -t 和 -o ,则为或者的关系

使用 mount 命令可查看当前挂装的文件系统。

挂装点就是文件系统中的一个目录,必须把文件系统挂装在目录树中的某个目录中。

挂装点目录在实施挂装操作之前必须存在,如其不存在则应该使用 mkidir 命令创建。

通常挂装点目录必须是空的,否则目录中原有文件将内系统隐藏。

使用 umount 命令卸载文件系统

格式:umount <设备名或挂装点>

注:如果一个文件系统处于 busy 状态,则不能卸载该文件系统。

fuser 命令

fuser 命令可以根据文件(目录、设备)查找使用它的进程,同时也提供了杀死这些进程的方法。当文件处于 busy 状态时可以使用该命令。

fuser -cu /mount_point 查看挂接点有哪些进程需要杀掉

fuser -ck /mount_point 杀死这些进程,发送 kill -9 命令

fuser -c /mount_point 查看是否还有进程在访问挂接点

umount /mount_point 卸载挂接点上的设备

在系统启动时自动挂载文件系统

使用 mount 命令手动挂装的文件系统在关机时会被自动卸载,但系统再次启动时不会被自动挂装,要在启动时自动挂装文件系统必须修改挂装表配置文件 /etc/fstab。

/etc/fstab 文件每一行书写一个文件系统的挂装情况,以#开头的行为注释行,文件中每一列的说明如下表:

栏名 说明
file system 要挂装的设备,可以使用设备名,也可以通过 UUID=<uuid> 或 LABEL=<label> 来指定。
mount point 挂装点的目录
type 挂装的文件类型
options 挂装选项,挂装设备是可以设置多选项,不同选项间逗号隔开
dump 使用 dump 命令备份文件系统的频率,空白或值为0时,系统认为不需要备份
pass 开机时, fsck 命令会自动检查文件系统 ,pass 规定了检查的顺序。挂装到 / 分区的文件系统,此栏位应是1,其余是2,0表示不需要检查。

修改 /etc/fstab 文件后,执行 mount -a 使当前修改生效。

注:在 mini 情况下的 centos 需要先执行安装命令yum install psmisc,否则不能使用 fuser 命令。

磁盘限额

磁盘限额的概念

在一个多用户的系统上,必须限制每个用户的磁盘使用空间,以免个别用户占用过多的磁盘空间影响系统运行或其他用户使用。

磁盘限额是系统管理员用来监控和限制用户或组对磁盘使用的工具,磁盘限额可以从两个方面限制:

1.限制用户或组可以拥有的 inode 数(文件数)

2.限制分配给用户或组的磁盘块的数目(以千字节为单位的磁盘空间)

设置磁盘限额还涉及如下与限制策略相关的3个概念:

  • 硬限制:超过此设定值后不能继续存储新的文件
  • 软限制:超过此设定值后仍旧可以继续存储新的文件,同时系统发出警告信息,建议用户清理自己的文件,释放出更多空间。
  • 宽限期:超过软限制多长时间之内(默认7天)可以继续存储新的文件。

centos 下的磁盘限额支持

磁盘限额有 linux 的内核支持, centos 提供 cfsold(v1)、vsfv0(v2)、xfs 三种不同的配额支持。

对于 ext3/4 文件系统,磁盘限额的配置和查看工具由 quota 软件包提供,对于 xfs 文件系统,磁盘限额的配置和查看工具由 xfsprogs 软件包的 xfs_quota 提供。

quota 提供的常用的磁盘配额管理工具:

工具 说明
quota 查看磁盘的使用和限额
requota 显示文件系统的磁盘限额汇总信息
quotacheck 从 /etc/mtab 中扫描支持配额的文件系统、生成、检查、修复限额文件
edquota 使用编辑器编辑用户或组的限额
setquota 使用命令行设置用户或组的限额
quotaon 启用文件系统的磁盘限额
convertquota 停用文件系统的磁盘限额
quotastats 显示内核的限额统计信息

配置磁盘限额

在 centos 下配置磁盘限额的步骤如下:

配置步骤 ext3 / 4文件系统 xfs 文件系统
编辑 /etc/fstab文件
启用文件系统的 quota 挂装选项
usrquota
grpquota
uquota
gquota
创建 quota 数据库文件并启用 quota quotacheck -cmvug <文件系统>
quotaon -avug
xfs 文件系统的 quota 结构信息包含在数据和日志中,无需此步骤
设置 quota 使用 setquota 或 edquota 配置 使用 xfs_quota 配置

setquota 命令设置磁盘限额的方法:

功能 命令
为指定的用户设置配额 setquota [-u] <用户名> <块软限制 块硬设置 inode 软设置 inode 硬设置> < -a 文件系统>
为指定组的设置配额 setquota -g <块软限制 块硬设置 inode 软设置 inode 硬设置> < -a 文件系统>
将参考用户的限额设置复制给待设置的新用户 setquota [-u] -p <参考用户> <新用户> <-a 文件系统>
将参考组的限额设置复制给待设置的新组 setquota -g -p <参考组> <新组> <-a 文件系统>
为指定用户的设置配额宽限期 setquota -t [-u] <块宽限期 inode 宽限期> <-a 文件系统>
为指定组的设置配额时间限期 setquota -t -g <块宽限期 inode 宽限期> <-a 文件系统>

xfs_quota 命令设置磁盘限额的方法:

功能 命令
为指定的用户设置配额 xfs_quota -x -c ‘limit -u bsoft=N nhaird=N isoft=N ihard=N <用户名>’ <文件系统>
为指定组的设置配额 xfs_quota -x -c ‘limit -u bsoft=N nhaird=N isoft=N ihard=N <组名>’ <文件系统>
为指定用户的设置配额宽限期 xfs_quota -x -c ‘timer -u -b <块宽限期>’ <文件系统>
xfs_quota -x -c ‘timer -u -i <inode 宽限期>’ <文件系统>
为指定组的设置配额宽限期 xfs_quota -x -c ‘timer -g -b <块宽限期>’ <文件系统>
xfs_quota -x -c ‘timer -g -i <inode 宽限期>’ <文件系统>
功能 ext3 / 4 文件系统 xfs 文件系统
查看指定用户的配额 quota -uv <用户名> xfs_quota -c ’quota -bi -uv <用户名>‘ <文件系统>
查看指定组的配额 quota -gv <组名> xfs_quota -c ’quota -bi -gv <组名>‘ <文件系统>
查看所有文件系统的磁盘限额汇总信息 requota -a
requota -au
requota -ag
xfs_quota -x -c ‘report -a’
xfs_quota -x -c ‘report -u -a’
xfs_quota -x -c ‘report -g -a’
显示指定文件系统的磁盘限额汇总信息 requota <文件系统>
requota -u <文件系统>
requota -g <文件系统>
xfs_quota -x -c report <文件系统>
xfs_quota -x -c ’report -u’ <文件系统>
xfs_quota -x -c ‘report -g’ <文件系统>