You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用dd从上次中断位置继续擦除200GB HDD?

解决dd中断后确保HDD末尾区域被擦除的方法

别慌,我们不用重新跑完整的200GB擦除,可以精准只处理未写入的末尾部分,既省时间又安全。下面是分步操作:

1. 先确保硬盘处于可操作状态

  • 首先卸载该硬盘的所有挂载分区(避免权限冲突和数据损坏):
    sudo umount /dev/sdX*
    
    这里的/dev/sdX是你的HDD设备路径(比如/dev/sdb),一定要确认准确,别误写成系统盘!
  • 后续所有命令都用root权限执行(加sudo),避免再次出现Permission denied。

2. 确定需要补写的起始位置

如果你还记得dd中断时的终端输出(比如显示184320+0 records in/out),这个数字就是已写入的块数(假设你用的bs=1M参数)。比如184320块×1MB=180GB,剩下的20GB就是需要补写的区域。

如果记不清具体进度,也可以直接选择覆盖最后一段区域(比如最后20GB)——就算之前写到了更后面,多覆盖一点也没坏处:

  • 先获取硬盘总大小(转成MB单位):
    sudo blockdev --getsize64 /dev/sdX | awk '{print $1/1024/1024}'
    
    200GB硬盘的结果大概是204800MB,若要覆盖最后20GB(20480MB),起始块数就是204800 - 20480 = 184320。

3. 补写末尾区域的零数据

用dd的seek参数跳过已写入部分,只写剩余区域:

sudo dd if=/dev/zero of=/dev/sdX bs=1M seek=184320
  • seek=184320表示跳过前184320个1MB块,直接从该位置开始写零;
  • 如果你想固定写某一段大小(比如20GB),可以加count=20480:
    sudo dd if=/dev/zero of=/dev/sdX bs=1M seek=184320 count=20480
    

4. 验证擦除结果

写完后,检查末尾区域是否全为零:

sudo dd if=/dev/sdX bs=1M skip=184320 | hexdump -C | head

如果输出全是00 00 00 00 ...,就说明末尾区域已经成功擦除。

额外注意事项

  • 全程不要挂载硬盘分区,否则可能导致写入失败或数据损坏;
  • 再次确认设备路径/dev/sdX正确,擦错硬盘会丢失所有数据;
  • 若担心硬盘自动卸载,可以临时关闭自动休眠:
    sudo hdparm -S 0 /dev/sdX
    
    完成擦除后再改回原设置(比如-S 60表示10分钟休眠)。

内容的提问来源于stack exchange,提问作者Hashim Aziz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:52:54