硬盘坏道检测脚本抢救服务器重要业务数据

服务器硬盘一旦出现坏道,业务数据就可能随时丢失。
本文要解决的核心问题是:如何用硬盘坏道检测脚本快速确认磁盘状态,并在坏道扩散前把重要业务数据完整抢救出来。
适合没接触过底层命令的站长和运维新手,跟着操作就能得到一个可执行的救急流程。

动手前先看清磁盘状态

坏道初期往往没有明显征兆,等系统出现 I/O 报错或文件读取卡顿再处理,风险已经很高。
所以第一步不是直接跑检测脚本,而是先确认哪块盘有异常。

登录服务器后执行:

smartctl -a /dev/sda

重点看 Reallocated_Sector_CtCurrent_Pending_Sector 两个指标,只要其中任意一个值大于 0,就说明硬盘已经出现物理坏道或正在重映射扇区,需要立刻启动抢救流程。
建议把这两项数值写进检测脚本,每次巡检自动输出告警。

用检测脚本圈定坏道范围

确认有坏道后,别急着全盘扫描,先按分区粒度缩小范围。
查看磁盘分区表:

fdisk -l /dev/sda

把疑似损坏的分区记录下来,再用 badblocks 做只读扫描,避免写入加重损坏:

badblocks -b 4096 -s -o /root/badblocks.txt /dev/sda1

参数说明:-b 4096 指定块大小,-s 显示进度,-o 把坏块列表输出到文件。
扫描期间服务器负载会明显上升,如果业务不能停,建议用 nice -n 19 降低优先级:

nice -n 19 badblocks -b 4096 -s -o /root/badblocks.txt /dev/sda1

这个脚本会把每个坏块的偏移量记录下来,后续恢复数据时就能跳过这些区域。

抢救数据的核心一步:ddrescue 镜像备份

检测到坏道后,最稳妥的做法不是直接在原盘上读取文件,而是把整个分区做成镜像。ddrescue 是专门应对坏道的工具,遇到读取错误会跳过并记录位置,不会卡死。

先安装:

# Debian/Ubuntu
apt install gddrescue
# CentOS/RHEL
 yum install ddrescue

备份到另一块健康硬盘或网络存储,命令如下:

ddrescue -d -r 3 /dev/sda1 /mnt/backup/sda1.img /root/ddrescue.log

关键参数解释:-d 直接读取绕过系统缓存,-r 3 对失败块最多重试 3 次,日志文件记录恢复进度。
如果第一次中断,下次执行同一命令会从日志断点继续,不需要重头开始。

镜像完成后,用 mount -o loop,ro /mnt/backup/sda1.img /mnt/recover 只读挂载,然后复制出数据库文件、网站源码和配置目录。

避坑:这些操作会让数据更难救回

第一,不要对坏盘执行 fsck 或强制挂载写入,这会扩大物理损伤。
第二,不要反复重启服务器,电源浪涌可能让坏道区域磁头受损。
第三,检测脚本扫描时尽量避免高并发读写业务,最好在业务低峰期运行。
第四,badblocks 输出的是坏块编号,不是文件路径,千万别拿它直接去删除文件,否则可能误删好数据。

如果服务器同时有 RAID 阵列,处理方式不同:先确认阵列状态,不要随意把单块盘拔出来离线重建,建议先把整块盘做成镜像,再由阵列控制器做后续恢复。

验证抢救结果并建立日常巡检

数据复制出来后,先核对文件数量和大小:

diff -r /mnt/recover/www /var/www_backup 2>/dev/null | head -20

数据库文件最好用对应引擎的恢复工具做完整性校验,比如 MySQL 的 innodb_force_recovery 只适合应急读取,不要长期启用。

抢救完成后,把 smartctl 检查命令写进 cron 定时任务,每天自动巡检硬盘健康状态,发现异常立即通知你:

0 2 * * * smartctl -a /dev/sda | grep -E "Reallocated|Pending" >> /var/log/disk_health.log

硬盘坏道检测脚本的价值在于尽早发现、及时止损。
如果你正在处理这类故障,建议先按本文步骤做镜像备份,再根据备份恢复业务数据;
遇到扫描结果异常或命令报错,优先回看避坑部分,不要盲目重试写操作。
数据安全没有后悔药,提前具备这套救急流程,遇到坏道时才不会手忙脚乱。

分享到:
上一篇
内存爆满一键缓存清理脚本快速恢复站点访问
下一篇
数据库读写分离高并发外贸站点完整部署方案
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意