当前位置: 首页 > 科技观察

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

时间:2023-03-14 14:19:23 科技观察

当您在Linux系统上删除文件时,它不必永远消失,尤其是如果您最近才删除它。除非您使用shred之类的工具擦除它,否则数据仍会保留在您的磁盘上,而用于恢复已删除文件的最佳工具之一testdisk可以帮助您挽救它。虽然testdisk具有广泛的功能,包括恢复丢失或损坏的分区以及使非活动磁盘可重新启动,但它也经常用于恢复被意外删除的文件。在本文中,让我们看看如何使用testdisk恢复已删除的文件,以及该过程中的每个步骤是什么样的。由于此过程需要很多步骤,因此在完成几次后您可能会感觉更自如。安装testdisk可以使用aptinstalltestdisk或yuminstalltestdisk等命令安装testdisk。有趣的是,它不仅是一个Linux工具,而且还适用于MacOS、Solaris和Windows。可以在cgsecurity.org找到文档。恢复文件首先,您必须以root身份登录,或者具有sudo权限才能使用testdisk。如果您没有sudo访问权限,您将在进程开始时被踢出,如果您选择创建日志文件,您将以以下消息结束:TestDisketednormally.jdoeisnotinthesudoersfile.Thisincidentwillbereported。当你用testdisk恢复时被删除,你最终会在你启动该工具的目录中找到恢复的文件,这些文件将属于根目录。出于这个原因,我喜欢引导到/home/recovery这样的目录。一旦文件成功恢复和验证,就可以将它们移回它们所属的位置并恢复其所有权。从您选择的可以写入的目录开始:$cd/home/recovery$testdisktestdisk提供的信息的第一页描述了该工具并显示了一些选项。创建日志文件是一个好主意,至少在开始时是这样,因为它提供的信息可能很有用。操作方法如下:使用箭头键进行选择,然后按Enter键:>[Create]Createanewlogfile[Append]Appendinformationtologfile[NoLog]Don'trecordanything>在左侧,您看到的反转字体和背景颜色表示按Enter后将发生什么。使用的选项。在这个例子中,我们选择创建一个日志文件。然后系统将提示您输入密码(除非您最近使用过sudo)。下一步是选择存储已删除文件的磁盘分区(如果尚未突出显示)。根据需要使用向上和向下箭头移动到它。然后单击向右箭头两次,并在突出显示“继续”时按Enter键。选择媒体(使用箭头键,然后按Enter):Disk/dev/sda-120GB/111GiB-SSD2SC120G1CS1754D117-551>Disk/dev/sdb-500GB/465GiB-SAMSUNGHE502HJDisk/dev/loop0-13MB/13MiB(RO)Disk/dev/loop1-101MB/96MiB(RO)Disk/dev/loop10-148MB/141MiB(RO)Disk/dev/loop11-36MB/35MiB(RO)Disk/dev/loop12-52MB/49MiB(RO)Disk/dev/loop13-78MB/75MiB(RO)Disk/dev/loop14-173MB/165MiB(RO)Disk/dev/loop15-169MB/161MiB(RO)>[Previous][Next][Proceed][Quit]本例中删除的文件在Under/dev/sdb的主目录。此时testdisk应该已经选择了合适的分区类型。Disk/dev/sdb-500GB/465GiB-SAMSUNGHE502HJ请选择分区表类型,完成后回车。[Intel]Intel/PCpartition>[EFIGPT]EFIGPTpartitionmap(Maci386,somex86_64...)[Humax]Humaxpartitiontable[Mac]Applepartitionmap(legacy)[None]Nonpartitionedmedia[Sun]SunSolarispartition[XBox]XBoxpartition[Return]Returntodiskselection在下一步中,按向下箭头“[Advanced]FilesystemUtils”。[Analyse]Analysecurrentpartitionstructureandsearchforlostpartitions>[Advanced]FilesystemUtils[Geometry]Changediskgeometry[Options]Modifyoptions[Quit]Returntodiskselection接下来查看选中的分区。PartitionStartEndSizeinsectors>1PLinuxfilesys.data2048910155775910153728[drive2]然后按右箭头选择最下面的“[List]”,回车。[Type][Superblock]>[List][ImageCreation][Quit]请注意,看起来我们是从根目录/开始的,但实际上这是我们正在处理的文件系统的基点。在此示例中,即/home。目录/<==起点>drwxr-xr-x00409623-Sep-202017:46.drwxr-xr-x00409623-Sep-202017:46..drwx————001638422-Sep-202011:30lost+founddrwxr-xr-x100810984096-Jul-201914:10dorothydrwxr-xr-x10011001409622-Sep-202012:12nemodrwxr-xr-x10051005409619-Jan-202011:49eeldrwxrwxrwx00409625-Sep-202008:08恢复指向我们的主目录drwxr-xr-x10161016409617-Feb-202016:40gino>drwxr-xr-x100010002048025-Sep-202008:00shs按回车键移动到该目录,然后向下箭头根据需要移动到子目录。请注意,如果您输入错误,您可以选择列表顶部附近的..返回。如果找不到该文件,可以按/(就像在vi中开始搜索时一样),这会提示您输入文件名或部分文件名。目录/shs<==currentlocationPrevious...-rw-rw-r—100010004268-Apr-201919:092-min-topics>-rw-rw-r—10001000246678-Feb-201908:57Up_on_the_Roof.pdf一旦找到需要要恢复文件,请按c选择它。注意:您将在屏幕底部看到有用的说明:使用向左箭头返回,向右更改目录,hto隐藏已删除的文件qtoquit,:选择当前文件,atoselectallfilesCtocopytheselectedfiles,ctocopythecurrentfile<==此时,您可以选择将文件还原到起始目录中的位置(请参阅前面的说明,在将文件移回其原始位置之前检查合适的位置)。在本例中,/home/recovery目录没有子目录,因此这是我们的恢复点。注意:您会在屏幕底部看到有用的说明:请选择目标位置/shs/Up_on_the_Roof.pdf将被复制。键:箭头键选择另一个目录CwhenthedestinationiscorrectQtoquitDirectory/home/recovery<==restorelocation一旦您看到“复制完成!1成功,0失败”为绿色,你会知道文件已经恢复。在这种情况下,文件保留在/home/recovery/shs下(主目录,其他选定目录)。在将文件移回其原始位置之前,您可能应该验证恢复的文件看起来是否正确。确保您还恢复了原始所有者和组,因为此时文件归root所有。注意:对于文件恢复过程中的许多步骤,您可以使用退出(按q或“[退出]”)返回上一步。如果愿意,您可以选择退出选项以一直返回到过程的第一步,或者您可以按^c立即退出。恢复训练使用testdisk恢复文件相对轻松,但有些复杂。在恐慌时刻到来之前,最好练习恢复文件,让自己有机会熟悉该过程。