有时,您可能会丢失重要数据 - 无论是偶然还是由于缺乏知识。该详细的分步指南提供了一种结构化方法,可以使用实时USB环境和恢复工具(例如TestDisk,Photorec和Extundundelete)在Linux中恢复丢失的文件。
目录
由于硬件故障,停电或自然灾害等外部因素,很少有人丢失数据。更多的是,我们由于自己的错误而丢失了数据,对吗?
图片:您刚刚在Linux系统上执行了CommandSudo RM -RF /*。您不完全确定它的作用,但是无论如何您都会运行它,并繁荣!您所有的数据都消失了。很久以前,当我是Linux的新手时,我犯了这个错误。
偶然地运行sudo rm -rf /*是您可以在Linux系统上执行的最具破坏性命令之一。对于那些可能不知道的人,它几乎可以擦拭所有内容,包括系统文件,个人文档和配置。
这是一个经典(且痛苦的)例子,说明当您在不完全理解命令的情况下运行命令时会发生什么。
这是Doessudo rm -rf /*命令做什么的分解。
合并后,sudo rm -rf /*告诉系统从文件系统的根部开始有效并递归删除每个文件和目录。
尽管操作系统本身无法恢复,但如果您迅速采取行动并遵循正确的步骤,您的某些文件仍然可以检索。
重要的是:如果数据至关重要,请寻求专业帮助。
如果数据至关重要,并且您需要以任何代价恢复数据,我强烈建议将其留给专业数据恢复专家。
他们使用高级工具(例如出色的数据恢复工具包)来检索丢失的文件。它可能很昂贵,但是您可能会收回数据,更重要的是,安心。
如果您想使用自由可用的Linux数据恢复工具自行恢复文件,则本指南适合您。阅读。
我在安全的虚拟环境中测试了以下步骤。我创建了一个没有重要数据的测试虚拟机(VM)。
我故意删除文件,然后尝试使用本指南中提到的工具来恢复它们。我的目标是了解数据恢复的工作原理。
我想强调的是,数据恢复并不总是100%成功。根据情况,您可能会或可能不会恢复所有丢失的数据。
以下是要记住的一些关键点:
1。文件名可能会丢失
2。SSD与HDD
3。使用外部驱动器来存储恢复的数据
4。数据恢复是一个耗时的过程
通过了解这些因素,您可以在尝试在Linux中恢复文件恢复之前设置现实的期望并充分准备。
让我们开始!
受影响驱动器的每一秒都会增加覆盖可回收数据的风险。如果系统仍在运行,请立即将其关闭。避免在驱动器上重新启动或安装任何新软件。
由于已安装的操作系统不再起作用,因此请使用实时Linux环境进行恢复。建议的选项包括:
如果您还没有实时USB,请在另一台计算机上使用:
我的建议:始终保留持久的现场USB供紧急使用
如果您有备用的外部USB驱动器,请考虑创建持久的实时USB 。您可以在外部驱动器上完整安装操作系统,也可以使用支持持久性的Live USB发行版。持久性使您可以将已安装的软件包,配置和永久更改为外部驱动器。
您可以使用Ventoy或Mkusb工具来创建持久的实时USB:
在紧急情况下,拥有持久的现场USB非常有用,例如意外删除分区,格式化驱动器或遇到突然的数据丢失,无可置信的OS或其他灾难性情况。您的触手可及您会有一个即时恢复工具。
专家提示:用独特的标签标记紧急拇指驱动器,因此在其他闪存驱动器中很容易识别。
出于演示目的,我正在启动Ubuntu 24.04 LTS实时环境。
一旦启动到实时环境,打开终端并运行:
LSBLK
或者
fdisk -L
这将显示可用的磁盘和分区(例如, /dev /sda, /dev /nvme0n1)。记下受影响的磁盘。
样本输出:
名称jaw:最小RM大小RO类型Mountpoints loop0 7:0 0 1.6g 1循环 /rofs Loop1 7:1 0 457.5m 1循环 Loop2 7:2 0 868.1m 1循环 Loop3 7:3 0 4K 1循环/扣/裸露/5 LOOP4 7:4 0 74.2M 1循环/snap/core22/1380 Loop5 7:5 0 10.7m 1循环/快照/固件 - 上升/127 Loop6 7:6 0 91.7m 1循环/snap/gtk-common-themes/1535 Loop7 7:7 0 505.1m 1循环/snap/gnome-42-2204/176 LOOP8 7:8 0 269.6M 1循环/snap/firefox/4173 loop9 7:9 0 10.3m 1循环/快照/快照/1124 Loop10 7:10 0 116.7m 1循环/snap/ubuntu-desktop-bootstrap/171 Loop11 7:11 0 137.3m 1循环/snap/the thunderbird/470 Loop12 7:12 0 38.7m 1循环/snap/snapd/21465 Loop13 7:13 0 476K 1循环/snap/snapd-desktop-integration/157 SDA 8:0 0 50G 0磁盘 ├ - SDA1 8:1 0 1M 0零件 sda2 8:2 0 513m 0零件 └─SDA38:3 0 49.5G 0零件 SDB 8:16 0 10G 0磁盘/媒体/ubuntu/备份 SR0 11:0 1 5.7G 0 ROM /CDROM
如您在上面的输出中所看到的,/dev/sda是我的本地驱动器,带有三个分区(/dev/sda1,/dev/dev/sda2和/dev/sda3)。和 /dev /sdb是用于备份目的的外部驱动器。
请参阅以下文章,以获取更多方法在类似Unix的系统中列出磁盘分区:
在尝试文件恢复之前,请创建整个磁盘的备份图像,以避免进一步的数据丢失。
首先,连接一个具有足够空间的外部驱动器,可以保存磁盘映像和我们将要在后续步骤中恢复的数据。如果可能,请使用两个外部驱动器。一个用于保存磁盘图像,另一个用于保存恢复的数据。
请注意,目标驱动器应大于源驱动器。例如,如果要从50GB磁盘(IE源驱动器)中恢复数据,则目标驱动器(IE目标驱动器)必须大于50GB。
接下来,运行以下命令创建完整的磁盘映像:
sudo dd if =/dev/sda of =/媒体/ubuntu/backup/recovery.img bs = 4m状态=进度
(用正确的磁盘标识符,/媒体/ubuntu/backup/用外部驱动器的路径替换/dev/sda,并确保将图像存储在外部驱动器上。
这可能是有用的,原因有几个:
TestDisk是一种功能强大的开源工具,用于恢复丢失的分区和删除文件。它可以在Linux,Windows和MacOS上使用。
sudo apt更新&& sudo apt install testdisk -y
启动测试台:
sudo testdisk
当TestDisk启动时,它将要求您创建一个日志文件。 SelectCreateto继续。选择[创建]以创建一个新的日志文件。
TestDisk将列出所有可用的磁盘。使用箭头键选择要从中恢复数据的磁盘,然后按Enter。选择源(影响)驱动器→ [继续] 。
Christophe Grenier <grenier> https://www.cgsecurity.org TestDisk是免费软件,并且 绝对没有保修。 选择一个媒体(使用箭头键,然后按Enter): >磁盘 /DEV /SDA -53 GB /50 GIB -QEMU QEMU HARDDISK 磁盘 /DEV /SDB -10 GB /10 GIB- QEMU QEMU HARDDISK 磁盘 /DEV /SR0-6114 MB /5831 MIB(RO) - QEMU DVD -ROM 磁盘 /dev /loop0-1748 MB /1667 MIB(RO) 磁盘 /DEV /LOOP1-479 MB /457 MIB(RO) 磁盘 /dev /loop10-122 MB /116 MIB(RO) 磁盘 /dev /loop11-143 MB /137 MIB(RO) 磁盘 /DEV /LOOP12-40 MB /38 MIB(RO) 磁盘 /dev /loop13-487 kb /476 kib(ro) 磁盘 /dev /loop2-910 MB /868 MIB(RO) 磁盘 /dev /loop3-4096 b(ro) 磁盘 /dev /loop4-77 MB /74 MIB(RO) 磁盘 /dev /loop5- 11 MB /10 MIB(RO) 磁盘 /DEV /LOOP6-96 MB /91 MIB(RO) 磁盘 /dev /loop7-529 MB /505 MIB(RO) 磁盘 /dev /loop8-282 MB /269 MIB(RO) 磁盘 /DEV /LOOP9-10 MB /10 MIB(RO) > [继续] [退出] 注意:必须正确检测磁盘容量才能成功恢复。 如果上面列出的磁盘大小不正确,请检查高清跳线设置和BIOS 检测并安装最新的操作系统补丁和磁盘驱动程序。</grenier>
TestDisk将要求您选择分区表类型(通常用于大多数系统的Intel/PC)。选择正确的类型和prestenter。根据您的分区类型选择[Intel]或[EFI GPT] 。
TestDisk 7.1,数据恢复实用程序,2019年7月 Christophe Grenier <grenier> https://www.cgsecurity.org 磁盘 /DEV /SDA -53 GB /50 GIB- QEMU QEMU HARDDISK 请选择分区表类型,完成后按Enter。 [英特尔]英特尔/PC分区 > [EFI GPT] EFI GPT分区地图(Mac I386,一些X86_64 ...) [Humax] Humax分区表 [Mac]苹果分区地图(遗产) [无]非分区媒体 [太阳]太阳太阳能分区 [Xbox] Xbox分区 [返回]返回磁盘选择 提示:已检测到EFI GPT分区表类型。 注意:不要为媒体选择“无”单个分区。非常 很少有一个磁盘被“分区”。</grenier>
选择[分析]以扫描丢失的分区:
TestDisk 7.1,数据恢复实用程序,2019年7月 Christophe Grenier <grenier> https://www.cgsecurity.org 磁盘 /DEV /SDA -53 GB /50 GIB- QEMU QEMU HARDDISK CHS 51200 64 32-部门大小= 512 > [分析]分析当前分区结构并搜索丢失的分区 [高级]文件系统utils [几何]改变磁盘几何形状 [选项]修改选项 [退出]返回磁盘选择 注意:成功恢复需要正确的磁盘几何形状。 '分析' 如果过程认为逻辑几何形状不匹配,则可能会发出一些警告。</grenier>
TestDisk将显示当前分区结构。如果缺少分区,它将搜索它们。您也可以通过选择快速搜索选项手动执行此操作。
TestDisk 7.1,数据恢复实用程序,2019年7月 Christophe Grenier <grenier> https://www.cgsecurity.org 磁盘 /DEV /SDA -53 GB /50 GIB -CHS 51200 64 32 当前分区结构: 划分启动最终大小在扇区中 1 P未知2048 4095 2048 2 P EFI系统4096 1054719 1050624 [EFI系统分区] 3个P Linux文件。数据1054720 10485551 103800832 p = primary d =已删除 > [快速搜索] [备份] 尝试找到分区</grenier>
TestDisk现在将执行“快速搜索”以查找丢失的分区。如果找到任何东西,它将列出它们。
TestDisk 7.1,数据恢复实用程序,2019年7月 Christophe Grenier <grenier> https://www.cgsecurity.org 磁盘 /DEV /SDA -53 GB /50 GIB -CHS 51200 64 32 划分启动最终大小在扇区中 P MS数据4096 1054719 1050624 [无名字] > p linux filesys。数据1054720 10485551 103800832 结构:好的。使用上/下箭头键选择分区。 使用左/右箭头键更改分区特征: p = primary d =已删除 密钥A:添加分区,L:加载备份,T:更改类型,P:列表文件, 输入:继续 ext4 blocksize = 4096大_file sparse_sb,53 gb / 49 gib</grenier>
如果快速搜索找不到您的丢失分区,则SelectDeeper搜索更彻底的扫描。
扫描后,TestDisk将列出其发现的分区。使用箭头键选择要恢复的分区。
如果分区看起来正确,请选择“ selectwriteto”将分区表保存到磁盘。这将恢复丢失的分区。
TestDisk 7.1,数据恢复实用程序,2019年7月 Christophe Grenier <grenier> https://www.cgsecurity.org 磁盘 /DEV /SDA -53 GB /50 GIB -CHS 51200 64 32 划分启动最终大小在扇区中 1 P MS数据4096 1054719 1050624 [无名字] 2个P Linux文件。数据1054720 10485551 103800832 [退出] [返回] [更深的搜索]> [写] 将分区结构写入磁盘</grenier>
输入y要确认:
TestDisk 7.1,数据恢复实用程序,2019年7月 Christophe Grenier <grenier> https://www.cgsecurity.org 写分区表,确认? (Y/N)</grenier>
接下来,从测试台上退出并重新启动计算机以查看是否还原分区。
就我而言,TestDisk已成功恢复了分区。
现在,我们将尝试从还原的分区恢复文件。
如前所述,登录到实时环境。
要恢复已删除的文件,我们需要再次安装TestDisk。因为,我们重新启动了实时系统,而TestDisk现在已经消失了。
sudo apt更新&& sudo apt install testdisk -y
启动TestDisk:
sudo testdisk
在TestDisk中,选择文件所在的分区。
从菜单中进行选择。
选择一个分区,然后按P查看分区上的文件。
TestDisk 7.1,数据恢复实用程序,2019年7月 Christophe Grenier <grenier> https://www.cgsecurity.org 磁盘 /DEV /SDA -53 GB /50 GIB -CHS 51200 64 32 划分启动最终大小在扇区中 P MS数据4096 1054719 1050624 [无名字] > p linux filesys。数据1054720 10485551 103800832 结构:好的。使用上/下箭头键选择分区。 使用左/右箭头键更改分区特征: p = primary d =已删除 密钥A:添加分区,L:加载备份,T:更改类型,P:列表文件, 输入:继续 ext4 blocksize = 4096大_file sparse_sb,53 gb / 49 gib</grenier>
现在,您将在选定的分区中看到可用的文件。导航浏览目录以查找已删除的文件。
TestDisk 7.1,数据恢复实用程序,2019年7月 Christophe Grenier <grenier> https://www.cgsecurity.org P Linux Filesys。数据1054720 10485551 103800832 目录 / > DRWXR-XR-X 0 0 4096 5-MAR-2025 11:43。 drwxr-xr-x 0 0 4096 5-MAR-2025 11:43 .. DRWXR-XR-X 0 0 4096 5-MAR-2025 11:42靴子 -RW ------- 0 0 2147483648 25-APR-2024 12:48 SWAPFILE DRWXR-XR-X 0 0 4096 5-MAR-2025 11:43 VAR DRWXR-XR-X 0 0 4096 7-AUG-2023 22:52 DEV DRWXR-XR-X 0 0 4096 18-APR-2022 10:28 PROC DRWXR-XR-X 0 0 4096 25-APR-2024 12:52运行 DRWXR-XR-X 0 0 4096 5-MAR-2025 11:43快照 DRWXR-XR-X 0 0 4096 18-APR-2022 10:28 SYS 下一个 使用更改目录的权利,h隐藏已删除的文件 q退出,:选择当前文件,a选择所有文件 C复制所选文件,C复制当前文件</grenier>
使用C键将已删除的文件复制到安全位置(例如,另一个驱动器),然后按C将文件保存在目标驱动器中。
Estdisk 7.1,数据恢复实用程序,2019年7月 请选择将复制标记文件的目的地。 键:箭头键选择另一个目录 C当目标正确时 Q退出 目录/媒体/Ubuntu/备份 > DRWX ------ 1000 1000 4096 5-MAR-2025 12:15。 drwxr-x --- 0 0 80 5-MAR-2025 13:27 .. DRWX ------- 0 0 16384 5-MAR-2025 11:49发现了
按C在目标中复制文件:
TestDisk 7.1,数据恢复实用程序,2019年7月 Christophe Grenier <grenier> https://www.cgsecurity.org P Linux Filesys。数据1054720 10485551 103800832 目录 / 复制完成! 7好,0失败 > DRWXR-XR-X 0 0 4096 5-MAR-2025 11:43。 drwxr-xr-x 0 0 4096 5-MAR-2025 11:43 .. DRWXR-XR-X 0 0 4096 5-MAR-2025 11:42靴子 -RW ------- 0 0 2147483648 25-APR-2024 12:48 SWAPFILE DRWXR-XR-X 0 0 4096 5-MAR-2025 11:43 VAR DRWXR-XR-X 0 0 4096 7-AUG-2023 22:52 DEV DRWXR-XR-X 0 0 4096 18-APR-2022 10:28 PROC DRWXR-XR-X 0 0 4096 25-APR-2024 12:52运行 DRWXR-XR-X 0 0 4096 5-MAR-2025 11:43快照 DRWXR-XR-X 0 0 4096 18-APR-2022 10:28 SYS 停止 下一个 使用更改目录的权利,h隐藏已删除的文件 q退出,:选择当前文件,a取消选择所有文件 C复制所选文件,C复制当前文件</grenier>
根据物品的大小,将需要几分钟到几分钟。
如果要备份多个文件,请按A选择所有文件,然后按C将其保存在您首选的目标中。
完成后,通过选择Quit退出TestDisk。
如果TestDisk不能还原所有内容,则Photorec可以帮助恢复单个文件。
Photorec是专门从事文件恢复的伴随工具。即使文件系统损坏或丢失了文件系统,它也有效。
让我们说,您从本地驱动器(/dev/sda2)上的EXT4分区中意外删除了文件(文档,图像或视频)。我将解释如何使用Photorec恢复它们。
Photorec包含在TestDisk中。如果未安装,请运行:
sudo apt更新 sudo apt安装testdisk
运行以下命令:
Sudo Photorec
它将打开基于文本的接口。 Photorec接口与TestDisk非常相似,但是有一些不同的选项。
使用箭头键突出显示受影响的磁盘(/dev/sda for Local Drive),然后按Enter选择它。
如果您记得删除文件的分区(例如, /dev /sda2),请选择它。如果分区表被损坏,请选择“无分区”并扫描整个磁盘。
按Enter继续进行。
Photorec要求文件系统类型:
按Enter继续。
使用箭头键首先选择可用空间。如果它没有恢复所需的内容,请尝试整个磁盘。
按Enter继续。
Photorec要求一个目标文件夹存储恢复的文件。按左箭头键选择目标驱动器。
Photorec开始自动恢复文件。您会看到一个进度栏显示:
等到完成。
完成后,导航到恢复文件夹并检查您的文件:
LS -LH/Media/Ubuntu/backup/
Photorec恢复了没有原始名称的文件,但保留了扩展名(.jpg,.pdf,.mp4)。
如果需要,请按类型对文件进行排序:
LS -LH/Media/ubuntu/backup/| grep .pdf
其他提示:
如果您收回文件,则可以跳过以下步骤并直接进入第8步。但是,如果您仍然没有获得所需的文件,请继续阅读。
ExtunDelete是另一个功能强大的工具,用于从Ext3/Ext4文件系统中恢复已删除的文件。
与在原始数据级别上工作的Photorec不同,如果数据块尚未覆盖,则尝试使用其原始文件名和目录结构来还原文件。
正如我已经说过的,立即停止将数据写入磁盘并停止使用您的系统。如我在步骤4中所描述的那样,登录到实时环境。
如果未安装,请运行:
sudo apt更新 sudo apt安装entundelete
运行以下命令列出可恢复的文件:
sudo entundelete /dev /sda2-列入删除
这会扫描分区并显示可以恢复的文件。
如果您找到了一个特定的文件(例如,exigants.doc),请使用以下方式恢复它:
sudo extundelete/dev/sda2 -restore-file/home/user/documents/important.doc
恢复的文件将保存在当前目录中的名为enctioned_files的文件夹中。
如果删除了整个目录(例如,/home/user/pictures),请使用:
sudo entundelete/dev/sda2-Restore-directory/home/user/Pictures
这将恢复该文件夹的所有文件。
如果要还原所有已删除的文件,请运行:
sudo entundelete /dev /sda2-Restore-all
这将尝试恢复每个已删除的文件,并将它们保存在enctioned_files/中。
恢复完成后,请检查文件夹:
ls -lh恢复_files/
重要说明
恢复完成后,请查看检索到的文件,并确保将其移至安全的位置。在进行新的操作系统安装之前,请确保它们完好无损。
由于系统文件无法维修,因此需要完整的操作系统重新安装。使用您的实时USB安装首选的Linux发行版。
如果您使用时移, Rsync或Cloud Storage等工具进行了备份,那么现在是时候恢复它们了。查看备份工具类别,以探索更多备份选项。
在运行sudo rm -rf /*是一个灾难性的错误时,如果您迅速采取行动并遵循结构化方法,则可以进行数据恢复。关键步骤是使用实时USB停止驱动器上的所有活动,利用恢复工具,例如TestDisk,Photorec和Extundundelete ,并重新安装OS。
您遇到过类似情况吗?在下面的评论中分享您的经验和恢复技巧!我将相应地检查并更新指南。
以上是意外删除操作系统后,在Linux中恢复数据的综合指南的详细内容。更多信息请关注PHP中文网其他相关文章!