免费拯救你误删的文件(Windows, Linux, Mac)

本文介绍如何使用TestDisk在Linux环境下恢复误删的NTFS格式文件。通过具体步骤演示了如何选择磁盘分区、扫描待恢复文件及复制文件到指定位置。适用于因意外操作丢失重要数据的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

如果你的文件被误删了, 别着急, 做好如下准备:

  • 首先, 不要往被删除文件所在的磁盘分区创建/复制新文件
  • 如果是Windows系统, 那么你基本上可以在回收站里找到
  • 如果是Linux系统, 如果是右击删除的, 也可以到回收站里看看. 但是如果是用 rm 命令删除的, 那么你在回收站里找不到哦, 可以试试本文方法.

简介有点长, 不感兴趣, 可以略过…

今天在使用vscode时,手残点了Discard All Changes 按钮, 在点击该按钮前,还特意复制了一份数据. 然而!!! 点击之后发现: 这几天辛辛苦苦编写的代码和造的数据全都不见了, 连同刚刚复制的副本!!!.

为何副本也会被一起删掉, 都不在一个目录下. 由于很长一段时间没有改过该代码,也没注意哪个文件夹在用Git管理. 仔细查看后发现, 副本与原始数据文件夹在同一个Git目录下, vscode 那个功能是取消自上次git 提交之后的所有的改变, 自然就将副本也删除了. 手残!!! 手残!!! 手残!!!

无奈之下, 只能寻找数据恢复软件, 期望能恢复出来(此处抱有侥幸心里, 实在恢复不出来就只能重写了). 由于是Linux系统, 之前用的Windows上的恢复软件用不了. 也不知道重启进Windows系统再恢复可靠不. 不过还是不愿冒这个险.

于是寻找Linux下的数据恢复软件, 首先试了 extundelete, 结果很抱歉, 报如下错误

Bad magic number in super-block when trying to open filesystem

原来是不支持该分区的格式, 经查证发现是支持Linux下的ext3, ext4 这些. 而我的刚好是 NTFS 格式 (因为当时是在Windows下进行分区, 选择了次格式). 运气好像就是那么差!

无奈之下, 继续寻找, OK, 主角登场.

使用TestDisk恢复数据

首先看下官网介绍, 如TestDisk官网所述, 使用TestDisk可以实现以下功能 (对照翻译了一下):

  • Fix partition table, recover deleted partition (修复分区表, 恢复删除的分区)
  • Recover FAT32 boot sector from its backup (从备份中恢复FAT32引导/启动扇区)
  • Rebuild FAT12/FAT16/FAT32 boot sector (重建FAT12/FAT16/FAT32 引导/启动扇区)
  • Fix FAT tables (修复FAT表)
  • Rebuild NTFS boot sector (重建 NTFS 引导/启动扇区)
  • Recover NTFS boot sector from its backup (从备份中恢复NTFS引导扇区)
  • Fix MFT using MFT mirror (使用MFT镜像修复MFT)
  • Locate ext2/ext3/ext4 Backup SuperBlock (定位 ext2/ext3/ext4 备份 超级块)
  • Undelete files from FAT, exFAT, NTFS and ext2 filesystem (从FAT, exFAT, NTFS and ext2文件系统中恢复删除的文件)
  • Copy files from deleted FAT, exFAT, NTFS and ext2/ext3/ext4 partitions. (从删除的FAT, exFAT, NTFS and ext2/ext3/ext4 分区中复制文件)

`功能好全啊!!! 而且支持多系统, 特别是后两个, 是我现在想要的. 再定睛一看: TestDisk is powerful free data recovery software!, 没错 功能强大的免费数据恢复软件 ! 此处省略1000字.

此外, 如官网所述, 如果testdisk不能恢复文件, 可以用它的 photorec 尝试恢复.

好的, 废话说完了, 下面以: Linux (Ubuntu) 下恢复误删的 NTFS 格式分区下的文件为例说明. 从官网上找到了类似的说明文档 Undelete files from NTFS with TestDisk, 简要列举步骤如下.

  1. 首先, 需要下载并解压软件(如 testdisk-7.2-WIP.linux26-x86_64.tar.bz2) 得到(testdisk-7.2). 注意不要将其放到想恢复的文件所在磁盘分区.

  2. 执行 sudo testdisk-7.2/testdisk_static 启动软件, 如下图所示, 选择创建日志文件
    在这里插入图片描述

  3. 接下来选择被删除文件所在磁盘
    在这里插入图片描述

  4. 择磁盘分区表类型并回车
    在这里插入图片描述

  5. 选择功能并回车, 此处务必选择正确!
    在这里插入图片描述

  6. 进一步选择被删除文件所在分区, 然后选择 undelete 扫描待恢复文件
    在这里插入图片描述

  7. 出现扫描结果, 浏览查看是否有想恢复的文件
    在这里插入图片描述

  8. 根据提示操作选择复制你想恢复的文件
    在这里插入图片描述

  9. 为待拷贝文件选择目的地路径, 此处未截图, 按照提示选择即可. 然后你应该可以在目的路径下看到复制的文件.

  10. 恢复的文件只有管理员能读取, 可以修改其归属于你的用户. Linux下执行 sudo chown -R user 即可, 注意替换 user 为你的用户名.

OK, 至此完毕, 其它功能, 请参阅管阀文档TestDisk.

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值