Linux系统中频繁出现磁盘读写错误,往往意味着底层存储设备已经存在隐患。这类错误会表现为文件拷贝失败、服务异常退出、dmesg中大量I/O报错等。及时排查并正确处理,可以避免数据丢失与业务中断。

查看系统日志定位错误
首先应通过内核日志确认报错细节。使用如下命令查看近期的磁盘相关错误:
dmesg | grep -i error journalctl -p 3 -xb | grep -i "sd|nvme"
若输出中包含 sdb 设备超时或 I/O error,说明对应磁盘存在问题。
使用smartctl检测磁盘健康
smartctl 可读取磁盘自检信息,判断是否存在坏扇区或寿命耗尽:
sudo smartctl -a /dev/sdb sudo smartctl -t short /dev/sdb
关注 Reallocated_Sector_Ct 与 Current_Pending_Sector 数值,若不为0则说明有不稳定扇区。
卸载并修复文件系统
确认设备后,先卸载分区再执行文件系统检查:
sudo umount /dev/sdb1 sudo fsck -y /dev/sdb1
修复完成后重新挂载,观察错误是否消失。
隔离故障磁盘与备份数据
若磁盘持续报错,应在 /etc/fstab 中注释对应挂载项,防止开机卡死:
# /dev/sdb1 /data ext4 defaults 0 2
同时用 rsync 将重要数据迁移到正常磁盘:
rsync -av /data/ /mnt/healthy_disk/data/
| 处理步骤 | 目的 |
|---|---|
| 查日志 | 定位故障设备 |
| smartctl | 评估磁盘寿命 |
| fsck | 修复文件系统 |
| 隔离与备份 | 防止扩散损失 |
预防建议
- 定期执行 smartctl 自检
- 使用 RAID 或异地备份
- 避免服务器长期高负载写入
磁盘读写错误不可忽视,早发现早处理才能保障Linux系统长期稳定运行。