Watch at Ease看见世界,读懂生活。

Technology · 实用指南

Linux 报“Input/output error”?运行 fsck 前先证明故障层

停止写入,把准确路径映射到挂载点与后端,保存第一条内核或服务错误,只修复已证明的层并核对原字节。

原创技术示意图:把 Linux 故障路径映射到挂载点、文件系统、传输与存储层。
原创技术示意图:EIO 只描述失败操作,选择修复前必须先映射路径。 Watch at Ease

“Input/output error”只是 EIO,并不是根因。它可能来自本地设备或线缆、文件系统元数据、网络传输、失效的 FUSE/9p 会话,或实现用户态文件系统的程序。盲目重启或修复可能清除第一条关键证据。

先停止对受影响路径的新写入,记录准确操作和时间,把路径映射到挂载点及后端,保存第一条底层错误与仍可读取的数据,再选择一个分支,并用已知字节验证原路径。

1. 冻结事故并保护唯一可读副本

记录完整命令、路径、时间、退出状态和第一行 stderr。停止所有触碰该挂载点的写入、定时任务、数据库服务和自动清理。

仍有数据可读时,先复制不可替代的部分到独立存储,记录跳过文件和哈希;部分复制不能冒充已验证备份。

2. 把路径映射到真实挂载点与后端

记录路径解析、挂载命名空间、文件系统类型、来源和选项,区分本地块设备、LVM、加密、RAID、远程共享、FUSE、容器挂载与 WSL 9p。

逐层映射路径到挂载点、来源、映射器或阵列,再到物理或远程端点;无关磁盘健康不代表目标路径健康。

3. 保存第一条底层错误

重启前按时间读取内核和服务日志,保存第一条 I/O、传输、文件系统或控制器错误及其设备、块、inode、服务器或会话身份。

远程或用户态文件系统还要保存客户端与服务端日志;若独立只读挂载可读取同一字节而旧会话仍 EIO,应保留会话边界证据。

4. 只修复已证明的责任层

本地块设备先检查线缆、电源、控制器和设备健康;阵列、映射器或远程共享使用对应恢复流程,先稳定硬件再信任元数据修复。

只运行与真实文件系统匹配的检查器,尽量在已验证救援环境和卸载状态执行;不要因 EIO 就对 NTFS、XFS、Btrfs 或网络挂载运行 e2fsck。

5. 验证原路径与数据契约

修复或重挂后,经相同命名空间与服务路径重放原操作,读取已知文件、比较哈希,并确认来源、类型和错误计数稳定。

保存事故账本:首错、责任层、保全结果、修复命令、工具输出和验收证据;若再次出现 I/O 错误,立即回到保全阶段。

原创技术示意图:展示 Linux EIO 的保全、分类、修复与字节核验流程。
原创技术示意图:修复前先保全可读数据和首错证据,再核对已知字节。 Watch at Ease