文件系统命令
Linux 文件系统命令详解:从磁盘配额到分区管理
在 Linux 系统中,文件系统命令用于管理磁盘空间、查看存储使用情况、配置配额限制及处理分区问题。本文将系统介绍磁盘配额配置、空间查看、分区管理等核心命令,帮助你高效管理系统存储资源。
磁盘配额管理:限制用户 / 组的存储使用
磁盘配额(Quota)用于限制用户或组对特定文件系统的存储空间或文件数量的使用,防止单个用户耗尽磁盘资源。
配额配置步骤
(1)准备文件系统
编辑 /etc/fstab,在需要设置配额的分区挂载参数中添加 usrquota(用户配额)或 grpquota(组配额):
vi /etc/fstab
# 示例:为 /dev/sda5 启用用户和组配额
/dev/sda5 /data ext4 defaults,usrquota,grpquota 0 0
(2)重新挂载文件系统
使 /etc/fstab 配置生效:
umount /data # 卸载分区
mount /data # 重新挂载(或使用 mount -a 挂载所有分区)
(3)创建配额数据库文件
在挂载目录下生成配额数据库(记录用户 / 组的存储使用情况):
# 创建用户配额文件
touch /data/aquota.user
# 创建组配额文件(如需)
touch /data/aquota.group
# 设置权限(确保系统可读写)
chmod 600 /data/aquota.*
(4)初始化配额数据库
使用 quotacheck 扫描文件系统,生成 / 更新配额数据库:
# -u:用户配额;-g:组配额;-a:扫描/etc/fstab中启用配额的分区;-v:显示过程
quotacheck -ugavmc
-c:重新扫描并创建数据库(覆盖旧数据);-m:强制扫描已挂载的文件系统(通常不建议,可能有风险)。
(5)设置用户 / 组配额
使用 edquota 编辑配额限制:
# 编辑用户 rose 的配额
edquota -u rose
# 编辑组 dev 的配额(如需)
edquota -g dev
执行后会打开编辑器,配置以下参数:
Filesystem blocks soft hard inodes soft hard
/dev/sda5 102400 512000 1024000 100 500 1000
blocks:当前使用的磁盘块(1 块 = 1KB);soft:软限制(超过会警告,宽限期内允许暂时超过);hard:硬限制(绝对不能超过);inodes:文件数量限制(类似空间限制,针对文件个数)。
(6)设置宽限期
指定用户超过软限制后的宽限时间(默认 7 天):
edquota -t
编辑示例(单位:天、小时、分钟、秒):
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)启用配额
# 启用指定目录的配额
quotaon /data
# 启用所有配置的配额
quotaon -avug
- 禁用配额:
quotaoff -avug
(8)测试与查看配额
- 查看用户配额:
quota -v rose - 复制配额(将 rose 的配额应用到 u1、u2):
edquota -up rose u1 u2 - 检查配额使用情况:
repquota -a(显示所有分区的配额统计)
磁盘空间查看命令
df:查看文件系统整体使用情况
df(Disk Free)用于查看各分区的总空间、已用空间、可用空间及挂载点。
# 常用选项:-h(人性化显示,单位为K/M/G)
df -h
# 显示文件系统类型
df -T
# 显示inode使用情况(而非空间)
df -i
输出示例:
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 更聚焦于具体文件。
# 查看当前目录总占用(-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 磁盘)。
# 查看所有磁盘及分区
fdisk -l
# 对 /dev/sdb 进行分区操作(需root权限)
fdisk /dev/sdb
进入交互模式后,常用命令:
n:新建分区(主分区 / 扩展分区 / 逻辑分区);d:删除分区;p:显示分区表;w:保存修改并退出;q:放弃修改并退出。
lsblk:查看磁盘分区与挂载情况
lsblk(List Block Devices)以树状结构显示磁盘、分区及挂载点,更直观。
# 显示分区类型和UUID
lsblk -f
# 显示详细信息(包括权限、所有者)
lsblk -l
输出示例:
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)的超级块和块组信息。
# 查看 /dev/sda1 的超级块信息(-h:仅显示超级块)
dumpe2fs -h /dev/sda1
输出包括文件系统版本、块大小、inode 总数、已用 / 空闲块数等底层信息,适合分析文件系统结构。
磁盘检查与修复:fsck
fsck(File System Check)用于检查和修复文件系统错误(如断电导致的损坏),必须在文件系统未挂载时使用,否则可能导致数据丢失。
# 检查 /dev/sda1(需先卸载)
umount /dev/sda1
fsck /dev/sda1
# 自动修复错误(无需手动确认)
fsck -a /dev/sda1
# 检查/etc/fstab中所有分区
fsck -A
注意:
- 修复前备份重要数据;
- 针对不同文件系统,可使用专用工具(如
e2fsck针对 ext 系列,xfs_repair针对 XFS)