linux磁盘与文件系统运维核心是“看得清、管得住、防得早”:通过df/du定位空间瓶颈,journalctl清理日志;e2fsck检查修复ext4异常;fstab优选uuid+nofail保障挂载健壮性;smartctl定期监测硬盘健康并自动化巡检。

Linux 磁盘与文件系统运维的核心在于“看得清、管得住、防得早”。不靠盲目重启,而靠命令直击关键指标;不等故障爆发,而靠日常巡检提前干预。
快速定位磁盘空间瓶颈
磁盘满是高频故障源,但真正卡住服务的往往不是根分区整体 95%,而是某个日志目录或临时文件夹单点占满。先用 df -h 看各挂载点使用率,重点关注 /var/log、/tmp、/home 这类易膨胀路径。若发现某分区接近 100%,立刻执行:
- du -sh /* 2>/dev/null | sort -hr | head -5 —— 快速列出根下前五大目录
- du -sh /var/log/* 2>/dev/null | sort -hr | head -3 —— 定向排查日志子目录
- 对确认可清理的旧日志,优先用 journalctl --vacuum-size=100M 清理 systemd 日志,而非直接删 .log 文件(避免服务写入异常)
识别并修复常见文件系统异常
系统异常断电或强制关机后,ext4 文件系统可能标记为“dirty”,下次挂载时自动触发检查;若跳过检查或检查失败,后续会出现文件丢失、inode 损坏等问题。判断方式:
- 启动日志中出现 "EXT4-fs (sda1): re-mounted. Opts: (null)" 后无 "clean" 字样,需警惕
- 手动检查:e2fsck -n /dev/sda1(只读扫描,不修改),确认是否有错误项
- 修复操作必须在 卸载状态 下进行:umount /dev/sda1 && e2fsck -y /dev/sda1;若为根分区,需从 Live CD 或 rescue 模式操作
合理规划挂载与自动挂载策略
/etc/fstab 是持久化挂载的中枢,但硬编码 UUID 或设备名易出错。建议:
- 用 blkid 获取设备真实 UUID,而非依赖 /dev/sdX(热插拔或多盘时会变)
- 关键业务盘添加 nofail 选项(如 UUID=xxx /data ext4 defaults,nofail 0 2),避免某盘故障导致整个系统无法启动
- 对 NFS 或 CIFS 类网络存储,加上 _netdev,x-systemd.automount,确保网络就绪后再挂载,避免开机卡住
监控磁盘健康与预防性维护
SMART 信息比 df 更早预警硬件风险。对 SATA/SAS 盘,定期运行:
- smartctl -a /dev/sda 查看整体健康状态(关注 Reallocated_Sector_Ct、Current_Pending_Sector、UDMA_CRC_Error_Count)
- smartctl -t short /dev/sda 执行短自测(2 分钟内),配合 smartctl -l selftest /dev/sda 查结果
- 将常用检查脚本加入 cron,例如每周日凌晨跑一次 SMART 自测 + df 告警,输出重定向到日志便于回溯










