POST

硬盘快挂了,先克隆再抢救:ddrescue 怎么用

SMART 报警、读盘卡顿的时候,别在坏盘上直接恢复数据。先做镜像,再对镜像动手。

硬盘开始出问题的时候,很多人第一反应是「赶紧把文件拷出来」。这个反应不算错,但顺序可以更好。

对一块不稳定的盘做文件级拷贝,会反复读取坏区域,越读越糟。正确的做法是先做整盘镜像。

为什么要做镜像

  • 只读一次:镜像过程是顺序读盘,对坏盘压力最小;
  • 可反复操作:拿到镜像后,可以慢慢尝试提取文件,不再折腾原盘;
  • 可跳过坏块:工具会自动跳过严重损坏的区域,先把好数据抢出来。

ddrescue 就是干这个的,Linux 下最常用。

基本用法

先确认设备名(千万别搞错):

lsblk

然后镜像:

ddrescue -d -r3 /dev/sdb /mnt/存储/坏盘镜像.img /mnt/存储/mapfile

参数含义:

  • -d:直接访问设备,绕过缓存;
  • -r3:对坏区域重试 3 次;
  • mapfile:记录进度,中断后可以续跑。

分阶段跑更稳

一次性跑完可能很慢。常用策略:

# 第一遍:快速抓好数据
ddrescue -n /dev/sdb 镜像.img mapfile

# 第二遍:补读坏区域
ddrescue -r3 /dev/sdb 镜像.img mapfile

第一遍遇到坏块立刻跳过,先把能读的读出来;第二遍再回头啃硬骨头。这样即使盘中途彻底挂了,也已经拿到大部分数据。

镜像之后

  • 挂载镜像:mount -o loop 镜像.img /mnt/检查,然后像正常目录一样翻文件;
  • 提取文件:常用的有 photorec、testdisk,能按文件类型扫描;
  • 保留镜像:在确认数据都取出来之前,别删。

适用场景

  • 硬盘 SMART 报警但还能识别;
  • 读某些文件时卡死、报 I/O 错误;
  • 意外格式化之后(先镜像再恢复);
  • 阵列重建失败,想从单盘抢救。

注意

  • 不要在坏盘上写任何东西,包括修复工具;
  • 镜像空间够不够:整盘镜像需要等同于盘容量的空间,可用压缩或截断;
  • 坏块很多时,镜像可能跑几十小时,要有耐心;
  • 机械盘异响(咔哒声):立刻断电,别再通电尝试,找专业恢复。

常见的坑

在盘上直接跑恢复软件:越跑越坏。

镜像写到同一块盘:空间和寿命都不够。

忘了 mapfile:中断后只能从头再来。

以为镜像就是备份:镜像只是抢救的第一步,救出来的文件还是要正常备份。

小结

遇到快坏的盘,顺序是:停止写入 → 整盘镜像 → 从镜像里提取。

镜像这一步看起来慢,实际上是最省时间的选择。

👁 - 次浏览

留言

← 返回首页