如何提高gddrescue提取数据的速度

如何提高gddrescue提取数据的速度

提高 gddrescue 数据提取速度的核心逻辑是:优先抢出健康数据、减少坏道重试 / 卡死、消除硬件瓶颈。以下是分维度的实操优化方案,从「硬件层→参数层→策略层」逐步落地,新手也能直接套用:

一、硬件层优化(最易见效,优先做)

硬件瓶颈是速度慢的首要原因,先解决这一步能立竿见影:

1. 优化源盘连接方式(减少传输损耗)

  • ❌ 避免:USB 2.0 转接、劣质 USB 延长线、硬盘盒(尤其是故障盘)。

  • ✅ 推荐:

    • 机械硬盘(HDD):SATA 直连主板(拆盘接电脑内部 SATA 口),比 USB 快 3-5 倍。

    • 必须用 USB:选 USB 3.0/3.1 硬盘盒(带独立供电),短线直连电脑后置 USB 口。

  • 关键:故障盘若有物理卡顿,禁用硬盘盒的 "节能 / 休眠" 功能(多数硬盘盒工具可设置),避免频繁启停拖慢速度。

2. 目标存储必须用高速设备(避免写入瓶颈)

  • ❌ 绝对不要:目标是 U 盘、低速移动硬盘、网络存储(NAS)。

  • ✅ 最优选择:空的高速 SSD(SATA/NVMe 均可),写入速度≥300MB/s,完全匹配源盘读取速度。

  • 次选:7200 转机械硬盘(HDD),避免 5400 转低速盘。

3. 减少源盘额外负载(避免拖慢读取)

  • 故障盘不要挂载umount 所有分区),gddrescue 直接读裸盘(如 /dev/sda),绕过文件系统层损耗。

  • 恢复过程中,关闭电脑其他高 IO 操作(如下载、拷贝文件、虚拟机),让 CPU / 内存资源优先给 gddrescue

二、参数层优化(核心,定制化调参)

通过精准设置 gddrescue 参数,减少无效重试、提升读取效率,以下是分场景的最优参数组合:

基础参数(所有场景必加)

# 核心提速参数(通用模板) sudo gddrescue -d -b 4096 -n [源盘] [目标/镜像] [日志文件]-d:直接磁盘访问(绕过系统缓存,减少内核层耗时,速度提升 10-20%)。

  • -b 4096:按 4K 扇区读取(匹配现代硬盘的物理扇区,避免 512B 小扇区的读写损耗,健康盘提速 30%+)。

  • -n:「no-split」第一遍只读取健康块,跳过坏道(优先抢出 80%+ 数据,速度最快)。

针对坏道场景(减少卡死,提升有效速度)

如果源盘有坏道,加以下参数避免无限重试:

# 少量坏道(偶尔卡顿) sudo gddrescue -d -b 4096 -n --min-read-rate=1M --timeout=5s [源盘] [目标] [日志] # 大量坏道(频繁卡死) sudo gddrescue -d -b 4096 -n --min-read-rate=512K --timeout=10s -r 1 [源盘] [目标] [日志]


--min-read-rate=1M:读取速度低于 1MB/s 时自动跳过该区域(避免卡死在极坏扇区,节省大量时间)。

  • --timeout=5s:单个扇区读取超 5 秒直接放弃(默认无限等待,坏道盘必加)。

  • -r 1:坏扇区仅重试 1 次(默认无限重试,改 1 次可减少 90% 以上的无效耗时)。

进阶提速参数(健康盘 / 逻辑故障)

如果源盘无坏道(仅误删 / 分区损坏),加以下参数拉满速度:

sudo gddrescue -d -b 65536 -n -c 128 [源盘] [目标] [日志]


  • -b 65536:增大块大小到 64KB(健康盘最优,进一步提升连续读取速度)。

  • -c 128:每次读取 128 个块(合并 IO 请求,减少磁盘寻道耗时)。

三、策略层优化(最大化效率,避免返工)

1. 分阶段恢复(先抢核心,再补坏道)

不要一次性硬扫全程,分两步:
  • 第一步(快):用 -n --min-read-rate=1M 抢健康数据(1TB 健康盘 4-8 小时,坏道盘也能 1 天内抢出 80%)。

  • 第二步(慢,可选):仅对第一步标记的坏道区域重试(用 -r 3,不浪费时间在健康区)。

2. 利用日志文件续传(避免重跑)

必须指定日志文件(如 /root/rescue.map),中断后执行相同命令即可续传:

# 中断后,再次执行原命令,自动从断点继续 sudo gddrescue -d -b 4096 -n /dev/sda /mnt/ssd/disk.img /root/rescue.map

3. 避开磁盘高温 / 卡顿时段

  • 机械硬盘温度超过 45℃会降速,恢复时保持通风,避免硬盘叠放。

  • 若源盘读取时频繁卡死,可暂停 10-30 分钟再续传(部分故障盘冷却后读取效率提升)。

4. 禁用内核磁盘错误重试(系统层优化)

Linux 内核默认会对坏道重试,可临时禁用减少卡顿:


# 查看当前重试次数(默认15) cat /sys/block/sda/device/timeout # 临时改为5秒(替换sda为源盘) sudo echo 5 > /sys/block/sda/device/timeout

重启后失效,仅对当前恢复有效。

四、效果验证(看速度是否达标)

执行命令后,终端会显示实时速度:
  • 健康盘:正常速度应≥60MB/s(SATA)/ ≥100MB/s(USB 3.0)。

  • 少量坏道:平均速度≥10MB/s(若低于此,检查参数 / 硬件)。

  • 大量坏道:能稳定在 1-5MB/s 即可(避免卡死比极致速度更重要)。

总结

  1. 硬件层优先:SATA 直连 + 高速 SSD 目标盘 是提速基础,能解决 70% 的速度问题。

  2. 参数层核心:健康盘用 -d -b 4096/65536 -n,坏道盘加 --min-read-rate --timeout -r 1,减少无效重试。

  3. 策略层关键:分阶段恢复 + 日志续传,优先抢健康数据,不纠结坏道的极致恢复。

如果能补充你的源盘类型(HDD/SSD/U 盘)、容量、坏道情况,我可以给你生成直接复制即用的最优命令,并预估提速后的耗时!



1、本站资源长期持续更新。
2、本资源基本为原创,部分来源其他付费资源平台或互联网收集,如有侵权请联系及时处理。
3、本站大部分文章的截图来源实验测试环境,请不要在生产环境中随意模仿,以免带来灾难性后果。

转载请保留出处:  www.zh-cjh.com珠海陈坚浩博客 » 如何提高gddrescue提取数据的速度

作者: 小编


手机扫一扫,手机上查看此文章:

一切源于价值!

其他 模板文件不存在: ./template/plugins/comment/pc/index.htm

未雨绸缪、居安思危!

数据安全、有备无患!

注意操作、数据无价!

一切源于价值!