Linux

服务器坏道诊断与修复

·3 分钟阅读·1077 字

Linux 服务器磁盘坏道排查与处理:逻辑坏道修复、物理坏道隔离、smartctl/badblocks 工具使用

📋 目录

服务器坏道诊断与修复

1. 先卸载分区(必须)

umount /dev/sdb1

2. 只读扫描(安全,不破坏数据)

badblocks -v -s /dev/sdb1 > bad.log


- 有输出具体块号 → **物理坏道**

- 无输出、但 `fsck` 报错 → **逻辑坏道**

---

## 2. 逻辑坏道:修复方法(能修好)

特征:smartctl 正常、dmesg 只有 filesystem 错误、badblocks 无坏块。

### ext4 修复(最常见)

umount /dev/sdb1

fsck.ext4 -y /dev/sdb1 # 自动修复

3. 或更稳:e2fsck -fy /dev/sdb1

mount /dev/sdb1 /mnt


### XFS 修复(主流新服务器)

umount /dev/sdb1

xfs_repair /dev/sdb1

mount /dev/sdb1 /mnt


修复后判断:

- 错误消失 → 逻辑坏道,已解决

- 反复出现 → 底层物理即将坏,尽快备份换盘

---

## 3. 物理坏道:只能隔离,不能修复

特征:smartctl 重分配/待映射 > 0、dmesg 报 bad sector、badblocks 扫出坏块。

### 步骤 1:立刻备份(最重要)

物理坏道会扩散,先备份所有数据!

### 步骤 2:扫描并导出坏块列表

umount /dev/sdb1

badblocks -v -s /dev/sdb1 > bad.log


### 步骤 3:让文件系统屏蔽这些坏块(ext4)

e2fsck -l bad.log /dev/sdb1


作用:文件系统以后绝不往这些块写数据,防止扩散。

### 步骤 4:XFS/Btrfs 无法拉黑,只能分区隔离

把坏块所在范围单独分一个区,不挂载/不格式化/隐藏,系统即绕开。

### 步骤 5:最终建议

| 情况 | 处理 |

|------|------|

| 少量坏块 + 不增长 | 可临时隔离使用 |

| 坏块持续增加 / 有异响 / SMART 指标恶化 | **直接换盘** |

---

## 4. 一句话总结

> `dmesg` + `smartctl` 全绿、只有文件系统报错 → **逻辑坏道**:`fsck`/`xfs_repair` 修复
>
> SMART 重分配/待映射 > 0、dmesg 有 bad sector → **物理坏道**:备份 + 隔离 + 尽快换盘


---

*最后更新:2026-06-01*


关联文档

Yanche Blog

记录云原生、Linux、数据库等技术领域的学习心得,以及日常生活的思考与感悟。

© 2026 Yanche Blog. All rights reserved.

Powered by Astro