温馨提示×

ubuntu如何检测文件系统健康

小樊
45
2025-11-20 18:41:37
栏目: 智能运维

Ubuntu 文件系统健康检查指南

一 快速巡检

  • 查看挂载与可用空间,确认是否有分区**100%**或异常掉线:
    • 命令:df -h
  • 查看目录占用,定位异常膨胀的目录:
    • 命令:du -sh /var /home /tmp
  • 查看内核与系统日志中的 I/O 或文件系统报错:
    • 命令:dmesg | grep -iE "error|filesystem|I/O"sudo journalctl -xe | grep -i "filesystem|fsck"

二 一致性检查与修复 fsck

  • 基本原则:对要检查的分区先卸载;对系统盘(如 /)需在救援/单用户模式或使用LiveCD/安装U盘启动后再检查,避免在线修复导致数据损坏。
  • 常用用法:
    • 非交互自动修复:sudo fsck -y /dev/sda1
    • 强制检查(即使标记“干净”):sudo fsck -f /dev/sda1
    • 指定类型检查:sudo fsck -t ext4 /dev/sda1
    • 批量检查所有文件系统(按 /etc/fstab):sudo fsck -A
  • 提示:运行 fsck 时目标分区必须处于未挂载状态;对根分区请使用救援环境执行。

三 硬盘健康与坏块检测

  • S.M.A.R.T. 健康状态(先装工具:sudo apt-get install smartmontools
    • 查看健康与全部信息:sudo smartctl -H /dev/sdasudo smartctl -a /dev/sda
    • 查看/配置自动监控:编辑 /etc/smartd.conf,例如
      • 监控并邮件告警:/dev/sda -H -m admin@example.com
      • 安排自检计划:/dev/sda -s L/../../7/00(每周日 00:00 长自检)
      • 使配置生效:sudo systemctl restart smartd
  • 坏块检测(耗时,建议在离线环境进行)
    • 只读扫描:sudo badblocks -sv /dev/sda
    • 读写破坏性扫描(会擦除数据,谨慎):sudo badblocks -wsv /dev/sda1
    • 可将结果交由 e2fsck 使用以标记坏块(适用于 ext2/3/4)。

四 定期自检与自动化

  • 查看当前挂载计数与检查间隔(以 ext2/3/4 为例):sudo tune2fs -l /dev/sda1
  • 设置每 30 次挂载检查一次:sudo tune2fs -c 30 /dev/sda1
  • 设置每 3 个月检查一次:sudo tune2fs -i 3m /dev/sda1
  • 验证设置:sudo tune2fs -l /dev/sda1 | egrep "Mount count|Maximum mount count|Check interval|Last checked"

五 图形化工具与实用建议

  • 图形化工具:使用 GNOME 磁盘(Disks)查看 S.M.A.R.T. 状态、执行磁盘自检与挂载选项管理,更直观。
  • 实用建议:
    • 重要数据先做备份,再进行修复或坏块扫描。
    • 修复时优先使用只读检查确认问题,再执行修复。
    • 出现大量 I/O 错误、文件系统频繁变为只读或 smartctl 报告 FAILING,应尽快更换磁盘。

0