要查系统磁盘错误和修复日志,需用journalctl定位内核(-k)、systemd-fsck服务(-u)及fsck/e2fsck进程(_COMM)日志,结合时间过滤与关键词搜索进行关联分析。

要查系统磁盘错误和修复过程的日志,核心是定位到内核层、文件系统工具(如 e2fsck、fsck)以及 systemd 服务(如 systemd-fsck)产生的日志条目。journalctl 能精准捕获这些内容,因为它们全由 journald 统一收集。
查看内核层磁盘报错(如 I/O 错误、坏块、设备离线)
磁盘硬件异常、读写失败、SMART 告警等首先反映在内核日志中。用 -k 直接过滤:
-
journalctl -k | grep -i "ata\|nvme\|sd\|error\|fail\|timeout\|offline"—— 快速抓取 ATA/NVMe/SCSI 设备相关错误 -
journalctl -k --since "1 week ago" | grep -E "(I/O|sector|bad|uncorrect)"—— 查近一周的 I/O 或扇区级问题 - 注意:
-k等价于--dmesg,输出与dmesg一致,但支持时间过滤和分页搜索
追踪启动时的文件系统检查(fsck)日志
系统启动过程中若检测到文件系统不一致,会自动运行 fsck。这类日志由 systemd-fsck@.service 单元生成,可通过单元名过滤:
-
journalctl -u systemd-fsck@-.service -b—— 查本次启动中所有分区的 fsck 日志(@-匹配任意设备) -
journalctl -u systemd-fsck@dev-sda1.service -b—— 查特定分区(如/dev/sda1)的 fsck 过程 - 常见关键词:
clean(正常)、recovered(已恢复)、reboot required(需重启)、corruption(损坏)、lost+found(已移入该目录)
查找手动运行的磁盘修复命令记录
管理员执行 fsck、e2fsck、xfs_repair 或 smartctl 时,命令本身不会直接记入 journal,但其调用的 systemd 服务或 shell 执行痕迹可被捕捉:
-
journalctl _COMM=fsck -n 50—— 查最近 50 条由fsck进程产生的日志(_COMM匹配可执行文件名) -
journalctl _COMM=e2fsck -n 30—— 同理查 e2fsck 执行记录 -
journalctl MESSAGE_ID=9a68c7e4f3f24f5ba4b5b1d6b9e2a7c7—— 某些发行版为 fsck 事件分配固定 MESSAGE_ID,可结合journalctl -o verbose查看某条日志的完整字段确认
关联分析:把磁盘错误和后续修复串起来
单看某类日志容易断片。建议组合时间与上下文:
- 先用
journalctl -k --since "3 days ago" | grep -A2 -B2 "error"找出报错时间点 - 再用
journalctl -b --since "2026-07-06 02:15:00" --until "2026-07-06 02:20:00"(替换为你找到的具体时间)查看该时段内所有日志,观察是否紧随出现systemd-fsck或kernel: EXT4-fs类消息 - 加
-o short-precise显示微秒级时间戳,便于比对毫秒级先后顺序










