2023-11-15
如何在任意平台(windows、linux、mac、安卓)上恢复误删文件
支持的系统
1 | DOS/Windows 9x |
推荐使用PhotoRec, 该工具适用于windows、Mac、linux、android手机
PhotoRec官方网站
如何从Windows上恢复误删的文件
前言
当你不小心误删了你的某些文件,并且没有备份,回收站也清空了。这个时候你可能会去找到处搜索安装一些文件恢复之类的软件,当然这也能解决你的问题,在这里提供一种微软官方的工具免费恢复你的数据。
-
首先可能你的系统可能由于错误或者病毒攻击或者人为因素从而将你的文件隐藏了,可以使用attrib命令将其恢复
注意:如果文件丢失的话,则attrib命令并不起作用。可以忽略第一步。
例如:以管理员方式打开cmd输入下列命令该命令恢复G盘中所有隐藏的文件,命令的具体说明见:attrib
1
attrib -h -r -s /s /d G:\*.*
-h 清除隐藏文件属性。
-r 清除只读文件属性。
-s 清除系统文件属性。
/s 将attrib和任何命令行选项应用于当前目录及其所有子目录中的匹配文件。
/d 将属性和任何命令行选项应用于目录。 -
使用微软官方工具恢复你误删的文件微软官方工具地址 Windows File Recovery
Windows File Recovery是微软的一款命令行应用程序,没有图形用户界面。此程序仅适用 Windows 10 2004及更高版本。
Windows文件恢复(WINFR)是一个命令行应用程序,用于免费恢复Windows 10中已删除的文件。它可以从健康/格式化/损坏的HDD/SSD/USB/存储卡中恢复文件,包括JPEG、PDF、PNG、MOV、ZIP等。在Windows文件系统中,我们通常将被删除文件所在的空间视为空闲空间。如果你想 使用 Windows File Recovery 来恢复丢失的文件,请避免使用你的电脑,防止数据被覆盖,以增加恢复删除文件和文件夹的可能。因为如果可用空间已被新数据覆盖,则无法找回。该实用程序有4种模式:Regular、Extensive、Segment和Signature。
✍ 注意:
✬ 基本命令格式:1
winfr source drive: destination drive: [/mode [/switches](winfr 源驱动器:目标驱动器:[/模式] [/开关]
✬ 目标驱动器和源驱动器不能相同。
✬ 检查文件系统:单击进入“此电脑” > 右键单击丢失文件的源驱动器 > 点击“属性”。

-
下载完成后以管理员身份运行

-
检查文件系统后选择合适的模式和开关
文件系统 场景 模式mode NTFS 最近删除 Regular NTFS 删除一段时间 Extensive NTFS 格式化磁盘 Extensive NTFS 损坏的磁盘 Extensive FAT/exFAT 任何 Extensive switches 意义 模式mode /n 过滤扫描范围;扫描特定文件及文件名/路径/类型 所有 /y 恢复文件系统 NTFS segment /u 恢复未删除的文件;例如回收站恢复 NTFS segment 例如,如果你要从 E: 盘恢复文件到 D: 盘,你将使用段模式,而你丢失的文件是Docx文件,那么你的命令将是这样的:
1
winfr E: D: /segment /n *.docx

-
输入“y”继续,耐心等待。然后你恢复的文件将保存在你选择的目标驱动器中
如何从linux上恢复误删的文件
前言
虽然有软件可以对误删的数据进行恢复,但是完全恢复数据的概率并不是百分百的。因此,使用rm命令删除文件的时候,一定要小心;重要的数据一定要有备份;并且恢复删除的数据前,删除文件的目录内不能往进存放新东西,否则覆盖掉的信息无法找回。下面介绍几种linux上如何恢复文件的方法(可能需要一点专业水平)
使用extundelete工具
原理
使用存储在分区日志中的信息,尝试恢复已从ext3或ext4的分区中删除的文件优点:相比于ext3grep只能恢复ext3文件系统的文件,其适用范围更广,恢复速度更快官网说明下载地址
安装
1 | centos安装操作 |
如何恢复文件操作
-
查看要恢复文件的分区的文件系统
1 | df -Th |
-
对要恢复文件的分区解除挂载
1 | umount /mnt |
-
查看可以恢复的数据指定误删文件的分区进行查找 最后一列标记为Deleted的文件,即为删除了的文件
1 | extundelete /dev/vdb1 --inode 2 (根分区的inode值是2) |
-
恢复单个目录指定要恢复的目录名 如果是空目录,则不会恢复
1 | extundelete /dev/vdb1 --restore-directory ferris |
当执行恢复文件的命令后,会在执行命令的当前的目录下生成RECOVERED_FILES目录,恢复的文件都会放入此目录中。如未生成目录,即为失败。
5. 恢复单个文件指定要恢复的文件名 如果几k大小的小文件,有很大几率恢复失败
1 | extundelete /dev/vdb1 --restore-file openssh-7.7p1.tar.gz |
-
恢复全部删除的文件无需指定文件名或目录名,恢复全部删除的数据
1 | extundelete /dev/vdb1 --restore-all |
使用TestDisk工具
如何从linux上真正删除文件并且不可恢复
为确保一个文件不能被恢复,可以使用一个命令来 “擦除” 硬盘。擦除硬盘实际上是向硬盘中写入无意义的数据。例如,许多擦除程序向硬盘中写入零,随机字母或随机数据。不会有空间被占用或丢失,擦除程序只是对空位进行重写覆盖。假如存储单元被文件占满而没有空余空间,则所有先前被删除的文件将会消失而不能恢复。擦除硬盘的目的是确保隐私数据不被他人看见。举个例子,一个公司可能预订了一些新的电脑,总经理决定将旧的电脑卖掉,然而,新的电脑拥有者可能会看到公司的一些机密或诸如信用卡号码,地址等顾客信息。幸好,公司的电脑技术人员可以在卖掉这些旧电脑之前,擦除这些硬盘。为了安装擦除程序 secure-delete,键入
1 | sudo apt-get install secure-delete |
这个命令将会安装一个包含 4 个程序的程序集,用以确保被删除的文件不能被恢复。
-
srm - 永久删除一个文件。使用方法
1
srm -f ./secret_file.txt
-
sfill - 擦除空白空间。使用方法
1
sfill -f /mount/point/of/partition
-
sswap - 擦除 swap 空间。使用方法
1
sswap -f /dev/SWAP_DEVICE