CentOS 磁盘坏道清理与隔离实用技巧
一、先判定坏道类型与健康状态
yum -y install smartmontools 安装 smartctl,用于读取 S.M.A.R.T. 信息;使用 badblocks 检测坏块。smartctl -H /dev/sdX;查看详细属性与错误日志:smartctl -A /dev/sdX、smartctl -l error /dev/sdX、smartctl -l selftest /dev/sdX。smartctl -t short /dev/sdX,长检 smartctl -t long /dev/sdX,后台长检可用 smartctl -l background /dev/sdX;长检期间可用 smartctl -X /dev/sdX 中止。dmesg 出现 I/O error、sense key: Medium Error、Unrecovered read error 等,多半是介质错误,应尽快备份并更换磁盘。二、只读检测定位坏块
umount /dev/sdXn(对分区操作更安全;整盘检测需确保无分区被占用)。badblocks -s -v -o /root/bb.log /dev/sdXn 或整盘 badblocks -s -v -o /root/bb.log /dev/sdX,参数含义:-s 显示进度、-v 详细输出、-o 输出坏块列表。badblocks -b 4096 -c 16 /dev/sdXn -o bb.log 提升准确性与速度。三、逻辑坏道的处理与文件系统修复
e2fsck -l /root/bb.log /dev/sdXn(将 bb.log 中的坏块列表交给文件系统,标记为坏并避免分配)。mkfs.ext4 -c /dev/sdXn(只读检测)或 mkfs.ext4 -cc /dev/sdXn(读写检测,更慢但更彻底)。badblocks -s -v /dev/sdXn(确认范围与数量)。badblocks -s -w /dev/sdXn END START(注意:END 在前,START 在后;会覆盖数据)。完成后再次只读扫描确认。四、物理坏道的隔离与更换策略
fdisk 新建分区时避开坏块区间。五、安全操作清单
smartctl -H /dev/sdX、smartctl -l selftest /dev/sdX、badblocks -s -v /dev/sdXn 确认健康与坏块状态。