用 testdisk 恢复 Linux 上已删除的文件


用 testdisk 恢复 Linux 上已删除的文件

文章插图
 
这篇文章介绍了 testdisk,这是恢复最近删除的文件(以及用其他方式修复分区)的工具之一,非常方便 。
• 来源:linux.cn • 作者:Sandra Henry-stocker • 译者:Xingyu.Wang •
(本文字数:5385,阅读时长大约:6 分钟)
 
当你在 Linux 系统上删除一个文件时,它不一定会永远消失,特别是当你最近才刚刚删除了它的时候 。
除非你用 shred 等工具把它擦掉,否则数据仍然会放在你的磁盘上 —— 而恢复已删除文件的最佳工具之一 testdisk 可以帮助你拯救它 。虽然 testdisk 具有广泛的功能,包括恢复丢失或损坏的分区和使不能启动磁盘可以重新启动,但它也经常被用来恢复被误删的文件 。
在本篇文章中,我们就来看看如何使用 testdisk 恢复已删除的文件,以及该过程中的每一步是怎样的 。由于这个过程需要不少的步骤,所以当你做了几次之后,你可能会觉得操作起来会更加得心应手 。
安装 testdisk可以使用 apt install testdisk 或 yum install testdisk 等命令安装 testdisk 。有趣的是,它不仅是一个 Linux 工具,而且还适用于 macOS、Solaris 和 windows 。
文档可在 cgsecurity.org 中找到 。
恢复文件首先,你必须以 root 身份登录,或者有 sudo 权限才能使用 testdisk 。如果你没有 sudo 访问权限,你会在这个过程一开始就被踢出,而如果你选择创建了一个日志文件的话,最终会有这样的消息:
TestDisk exited normally.jdoe is not in the sudoers file.  This incident will be reported.当你用 testdisk 恢复被删除的文件时,你最终会将恢复的文件放在你启动该工具的目录下,而这些文件会属于 root 。出于这个原因,我喜欢在 /home/recovery 这样的目录下启动 。一旦文件被成功地还原和验证,就可以将它们移回它们的所属位置,并将它们的所有权也恢复 。
在你可以写入的选定目录下开始:
$ cd /home/recovery$ testdisktestdisk 提供的第一页信息描述了该工具并显示了一些选项 。至少在刚开始,创建个日志文件是个好主意,因为它提供的信息可能会被证明是有用的 。下面是如何做的:
Use arrow keys to select, then press Enter key:>[ Create ] Create a new log file [ Append ] Append information to log file [ No Log ] Don’t record anything左边的 > 以及你看到的反转的字体和背景颜色指出了你按下回车键后将使用的选项 。在这个例子中,我们选择了创建日志文件 。
然后会提示你输入密码(除非你最近使用过 sudo) 。
下一步是选择被删除文件所存储的磁盘分区(如果没有高亮显示的话) 。根据需要使用上下箭头移动到它 。然后点两次右箭头,当 “Proceed” 高亮显示时按回车键 。
Select a media (use Arrow keys, then press Enter): Disk /dev/sda - 120 GB / 111 GiB - SSD2SC120G1CS1754D117-551>Disk /dev/sdb - 500 GB / 465 GiB - SAMSUNG HE502HJ Disk /dev/loop0 - 13 MB / 13 MiB (RO) Disk /dev/loop1 - 101 MB / 96 MiB (RO) Disk /dev/loop10 - 148 MB / 141 MiB (RO) Disk /dev/loop11 - 36 MB / 35 MiB (RO) Disk /dev/loop12 - 52 MB / 49 MiB (RO) Disk /dev/loop13 - 78 MB / 75 MiB (RO) Disk /dev/loop14 - 173 MB / 165 MiB (RO) Disk /dev/loop15 - 169 MB / 161 MiB (RO)>[Previous]  [  Next  ]  [Proceed ]  [  Quit  ]在这个例子中,被删除的文件在 /dev/sdb 的主目录下 。
此时,testdisk 应该已经选择了合适的分区类型 。
Disk /dev/sdb - 500 GB / 465 GiB - SAMSUNG HE502HJPlease select the partition table type, press Enter when done. [Intel  ] Intel/PC partition>[EFI GPT] EFI GPT partition map (Mac i386, some x86_64...) [Humax  ] Humax partition table [Mac    ] Apple partition map (legacy) [None   ] Non partitioned media [Sun    ] Sun Solaris partition [XBox   ] XBox partition [Return ] Return to disk selection在下一步中,按向下箭头指向 “[ Advanced ] Filesystem Utils” 。
[ Analyse  ] Analyse current partition structure and search for lost partitions>[ Advanced ] Filesystem Utils [ Geometry ] Change disk geometry [ Options  ] Modify options [ Quit     ] Return to disk selection接下来,查看选定的分区 。
Partition                  Start        End    Size in sectors> 1 P Linux filesys. data         2048  910155775  910153728 [drive2]


推荐阅读