You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何从已被擦除且变为未分配状态的整个ext4磁盘恢复数据?

如何从已被擦除且变为未分配状态的整个ext4磁盘恢复数据?

先别慌!你这种情况——刚擦除磁盘就失败,之后完全没挂载或写入过数据,恢复的概率其实非常高,毕竟ext4的核心文件系统结构还没被新数据覆盖。下面是一步步的实操建议:

  • 第一优先级:绝对别碰这块磁盘
    别挂载它,别往上面写任何东西,哪怕是临时文件也不行。现在磁盘上的残留数据还完整,一旦写入新内容,就可能彻底覆盖掉要恢复的文件,到时候神仙也救不了。

  • 先做磁盘镜像,再在镜像上操作
    直接在原磁盘上恢复有风险,最好先给整个磁盘做个镜像文件,后续操作都在镜像上进行:

    sudo dd if=/dev/sdX of=/path/to/external/disk/recovery.img bs=4M status=progress
    

    /dev/sdX换成你要恢复的磁盘(比如原来的sdb),/path/to/external/disk/要选一个空间足够大的外部存储路径,bs=4M是加快镜像速度,status=progress能看到实时进度。

  • 先用TestDisk尝试恢复分区表
    TestDisk是专门恢复分区和文件系统的工具,适合你这种分区被擦除但文件内容还在的情况:

    1. 如果是NixOS,先进入包含TestDisk的shell:nix-shell -p testdisk
    2. 运行sudo testdisk,选择要恢复的磁盘(或者刚才做的镜像文件recovery.img
    3. 选择分区表类型(一般是Intel/PC partition),然后按Analyze -> Quick Search
    4. 如果扫描到原来的ext4分区,选中它按P就能预览里面的文件,确认是你要的内容后,按Write恢复分区表,重启系统后就能正常挂载磁盘了。
  • 如果TestDisk没找到分区,用PhotoRec按文件签名恢复
    要是分区表彻底找不回来,PhotoRec可以跳过分区表,直接通过文件的签名(比如JPG的开头标识、PDF的特征码)来恢复文件:

    1. 运行sudo photorec,同样选择目标磁盘或镜像文件
    2. 选择要扫描的区域(这里选Free空间,因为磁盘现在是未分配状态)
    3. 选择恢复文件的保存目录必须是外部磁盘,绝对不能选要恢复的磁盘本身
    4. 开始扫描,它会自动识别并恢复各种类型的文件,恢复后可能会给文件重命名,需要你自己慢慢整理分类。
  • 额外提醒

    • 恢复出来的文件可能有损坏,但大部分完整的文件都能正常打开
    • 如果是极其重要的数据,自己操作没把握的话,可以找专业数据恢复公司,但成本会比较高,不过你的情况自己操作应该就能搞定

备注:内容来源于stack exchange,提问作者0x9c

火山引擎 最新活动