现在该怎么做
- 不要初始化磁盘、不要新建分区,也不要再对它运行任何 diskpart 命令。
- 确认执行的是几秒钟就结束的 clean,还是要跑好几个小时的 clean all。
- 以只读方式在整块物理磁盘上搜索丢失的分区,并把文件保存到另一块磁盘。
操作步骤
停下来,保持磁盘原样
用 exit 退出 diskpart。打开磁盘管理时,这块磁盘通常显示为未知、没有初始化,并弹出初始化提示。请取消这个对话框。初始化会写入新的分区表,之后再新建分区还会写入新的文件系统。
在命令窗口中向上翻看
如果窗口还开着,list disk 的输出里有每块磁盘的编号和容量。由此可以知道实际选中的是哪块磁盘、容量多大,之后辨认正确分区时很有帮助。同时记下它是固态硬盘还是机械硬盘。
判断是 clean 还是 clean all
两者结束时都显示同一句清除磁盘成功的提示。clean 几乎瞬间完成;clean all 要覆盖每个扇区,在大容量机械硬盘上往往要几个小时。如果它已跑完,数据就没有了;如果中途停止,只有已经覆盖到的区域丢失。
以管理员身份运行 FileFix Ultimate
从 U 盘或另一块驱动器运行便携版,确保不向被清除的磁盘写入任何内容。读取没有分区的磁盘需要管理员权限。
在物理磁盘上搜索分区
在已删除文件恢复中,把被清除的磁盘作为整块物理磁盘选中。程序会寻找 NTFS、FAT32、exFAT 等引导扇区以及每个分区末尾的 NTFS 备份引导扇区,然后列出找到的分区及其起始位置、大小和文件系统。
扫描正确的候选
挑选与您记忆中的磁盘布局和容量相符的候选,分别运行均衡扫描。如果一个分区都没找到,就对整块磁盘运行深度签名扫描,文件会以无名形式回来,但内容可能完整。
全部保存到另一块磁盘
恢复到另一块物理磁盘,并在重新分区或重新使用被清除的磁盘之前检查结果。
clean 与 clean all 的区别
根据 Microsoft 的文档,clean 会从所选磁盘上删除所有分区和卷格式信息。在 MBR 磁盘上,它覆盖 MBR 分区信息和隐藏扇区;在 GPT 磁盘上,它覆盖包括保护性 MBR 在内的 GPT 分区信息。实际中它通常只把磁盘开头和结尾约 1MB 写零,在 GPT 磁盘上也会顺带清掉末尾的备份分区表。
Windows 通常从 1MB 处开始第一个分区,所以各分区的引导扇区及其后面的数据一般都没被动过。这就是为什么丢失分区搜索往往能把所有分区都找回来。clean all 则是另一个命令:它向磁盘的每个扇区写零。一旦执行完毕,任何软件或数据恢复机构都无法找回数据。
为什么会选错磁盘
常见的情形是正在准备 U 盘或新硬盘。list disk 列出磁盘 0、1、2,容量看起来差不多,select disk 时选错了编号。重启或插拔设备后磁盘编号可能变化,之前记下的编号现在可能指向另一块磁盘。
Windows 会拒绝清除当前正在运行的系统盘,所以如果电脑还能正常启动,被清除的就不是系统盘。风险更高的是 Windows 安装程序里的命令提示符,那时内置磁盘没有被占用,可以毫无提示地被清除。
固态硬盘为何不同
在固态硬盘上,clean 可能导致 Windows 对整块磁盘发送 TRIM。随后硬盘可能在内部擦除所有块,扫描只能看到零。是否会这样取决于硬盘型号、连接方式和 Windows 版本,所以仍值得扫描。FileFix Ultimate 会把只含零的结果标为很可能无法恢复,而不是保存成空文件。
无法恢复的情况
- clean all 已执行完毕,每个扇区都被零覆盖。
- 磁盘是固态硬盘,clean 之后 TRIM 擦除了整块盘。
- 磁盘已被初始化、重新分区、格式化,并复制了新数据。
- 被清除的磁盘上已安装了 Windows 或其他系统。
- 分区是 ReFS、APFS,或属于 RAID 6、RAID 10 阵列,这些不在分析范围内。
FileFix Ultimate 能做什么
- 以只读方式读取被清除的磁盘,绝不写入分区表、引导扇区或其他任何内容。
- 借助备份引导扇区,在整块物理磁盘上查找丢失的 NTFS、FAT32、exFAT、ext4 和 HFS+ 分区。
- 没有剩余分区结构时,改用支持 68 种文件签名的深度签名扫描。
- 磁盘有读取错误时可以先创建驱动器映像,再扫描映像。
- 个人使用免费,没有恢复量限制,可从 U 盘便携运行。
FileFix Ultimate 个人使用免费、可离线使用,并且不会向你正在恢复的驱动器写入数据。工作或商业用途需为每台电脑购买一年期许可。运行前请检查签名。
常见问题
diskpart clean 有撤销命令吗?
没有。diskpart 不提供撤销。通过搜索磁盘往往能重新找到分区并把文件复制出来,但在 diskpart 内部无法撤回这个命令。
提示说 DiskPart 成功地清除了磁盘,是不是数据全没了?
不一定。clean 和 clean all 显示的是同一句话。关键在于花了多长时间。一两秒就结束的命令清掉的是分区表,而不是数据。
能不能直接恢复旧分区表,而不是复制文件?
分区修复工具可以根据找到的分区重写分区表,但一旦猜错就可能造成新的损坏。先把重要文件复制到另一块磁盘,之后再尝试恢复分区表就几乎没有风险。
clean all 运行几分钟后我就停止了,还剩下什么?
clean all 从磁盘开头往后写,所以第一个分区及其文件系统记录所在的前部很可能已被写零。更靠后的数据可能还在,通常可以用深度签名扫描找到,但一般没有文件名。