0%

文件系统命令

Linux 文件系统命令详解:从磁盘配额到分区管理

在 Linux 系统中,文件系统命令用于管理磁盘空间、查看存储使用情况、配置配额限制及处理分区问题。本文将系统介绍磁盘配额配置、空间查看、分区管理等核心命令,帮助你高效管理系统存储资源。

磁盘配额管理:限制用户 / 组的存储使用

磁盘配额(Quota)用于限制用户或组对特定文件系统的存储空间或文件数量的使用,防止单个用户耗尽磁盘资源。

配额配置步骤

(1)准备文件系统

编辑 /etc/fstab,在需要设置配额的分区挂载参数中添加 usrquota(用户配额)或 grpquota(组配额):

1
2
3
vi /etc/fstab
# 示例:为 /dev/sda5 启用用户和组配额
/dev/sda5 /data ext4 defaults,usrquota,grpquota 0 0
(2)重新挂载文件系统

使 /etc/fstab 配置生效:

1
2
umount /data  # 卸载分区
mount /data # 重新挂载(或使用 mount -a 挂载所有分区)
(3)创建配额数据库文件

在挂载目录下生成配额数据库(记录用户 / 组的存储使用情况):

1
2
3
4
5
6
7
# 创建用户配额文件
touch /data/aquota.user
# 创建组配额文件(如需)
touch /data/aquota.group

# 设置权限(确保系统可读写)
chmod 600 /data/aquota.*
(4)初始化配额数据库

使用 quotacheck 扫描文件系统,生成 / 更新配额数据库:

1
2
# -u:用户配额;-g:组配额;-a:扫描/etc/fstab中启用配额的分区;-v:显示过程
quotacheck -ugavmc
  • -c:重新扫描并创建数据库(覆盖旧数据);
  • -m:强制扫描已挂载的文件系统(通常不建议,可能有风险)。
(5)设置用户 / 组配额

使用 edquota 编辑配额限制:

1
2
3
4
5
# 编辑用户 rose 的配额
edquota -u rose

# 编辑组 dev 的配额(如需)
edquota -g dev

执行后会打开编辑器,配置以下参数:

1
2
Filesystem    blocks    soft    hard    inodes    soft    hard
/dev/sda5 102400 512000 1024000 100 500 1000
  • blocks:当前使用的磁盘块(1 块 = 1KB);
  • soft:软限制(超过会警告,宽限期内允许暂时超过);
  • hard:硬限制(绝对不能超过);
  • inodes:文件数量限制(类似空间限制,针对文件个数)。
(6)设置宽限期

指定用户超过软限制后的宽限时间(默认 7 天):

1
edquota -t

编辑示例(单位:天、小时、分钟、秒):

1
2
3
4
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem Block grace period Inode grace period
/dev/sda5 7days 7days
(7)启用配额
1
2
3
4
5
# 启用指定目录的配额
quotaon /data

# 启用所有配置的配额
quotaon -avug
  • 禁用配额:quotaoff -avug
(8)测试与查看配额
  • 查看用户配额:quota -v rose
  • 复制配额(将 rose 的配额应用到 u1、u2):edquota -up rose u1 u2
  • 检查配额使用情况:repquota -a(显示所有分区的配额统计)

磁盘空间查看命令

df:查看文件系统整体使用情况

df(Disk Free)用于查看各分区的总空间、已用空间、可用空间及挂载点。

1
2
3
4
5
6
7
8
# 常用选项:-h(人性化显示,单位为K/M/G)
df -h

# 显示文件系统类型
df -T

# 显示inode使用情况(而非空间)
df -i

输出示例

1
2
3
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1 50G 20G 28G 42% /
/dev/sdb1 100G 30G 65G 32% /data
  • Use%:使用率超过 90% 时需警惕磁盘空间不足。

du:查看目录 / 文件的磁盘占用

du(Disk Usage)用于统计目录或文件占用的磁盘空间,比 df 更聚焦于具体文件。

1
2
3
4
5
6
7
8
# 查看当前目录总占用(-s:汇总;-h:人性化)
du -sh

# 查看 /lib 目录下各子目录的占用(-d 1:只深入1层)
du -h -d 1 /lib

# 统计所有文件并排序(按大小升序)
du -hs * | sort -h

选项说明

  • -a:显示每个文件的占用(默认只显示目录);
  • -c:最后添加总计;
  • -k/-m:分别以 KB/MB 为单位。

磁盘分区与管理

fdisk:磁盘分区工具

fdisk 用于查看和管理磁盘分区表,支持 MBR 分区格式(最大支持 2TB 磁盘)。

1
2
3
4
5
# 查看所有磁盘及分区
fdisk -l

# 对 /dev/sdb 进行分区操作(需root权限)
fdisk /dev/sdb

进入交互模式后,常用命令:

  • n:新建分区(主分区 / 扩展分区 / 逻辑分区);
  • d:删除分区;
  • p:显示分区表;
  • w:保存修改并退出;
  • q:放弃修改并退出。

lsblk:查看磁盘分区与挂载情况

lsblk(List Block Devices)以树状结构显示磁盘、分区及挂载点,更直观。

1
2
3
4
5
# 显示分区类型和UUID
lsblk -f

# 显示详细信息(包括权限、所有者)
lsblk -l

输出示例

1
2
3
4
NAME   FSTYPE LABEL UUID                                 MOUNTPOINT
vda
└─vda1 ext4 9f2d3e15-a78a-4f3d-8385-0165b4b67864 /
vdb ext4 122184c4-b2f9-4254-9a56-db416c2a1674 /data

dumpe2fs:查看文件系统详细信息

dumpe2fs 用于显示 ext 系列文件系统(ext2/ext3/ext4)的超级块和块组信息。

1
2
# 查看 /dev/sda1 的超级块信息(-h:仅显示超级块)
dumpe2fs -h /dev/sda1

输出包括文件系统版本、块大小、inode 总数、已用 / 空闲块数等底层信息,适合分析文件系统结构。

磁盘检查与修复:fsck

fsck(File System Check)用于检查和修复文件系统错误(如断电导致的损坏),必须在文件系统未挂载时使用,否则可能导致数据丢失。

1
2
3
4
5
6
7
8
9
# 检查 /dev/sda1(需先卸载)
umount /dev/sda1
fsck /dev/sda1

# 自动修复错误(无需手动确认)
fsck -a /dev/sda1

# 检查/etc/fstab中所有分区
fsck -A

注意

  • 修复前备份重要数据;
  • 针对不同文件系统,可使用专用工具(如 e2fsck 针对 ext 系列,xfs_repair 针对 XFS)

欢迎关注我的其它发布渠道