在 Linux 系统中,误删文件是常见的问题,但幸运的是,通过一些工具和方法,我们仍然有可能恢复这些文件。本文将通过一个实际案例,介绍在 Linux 下恢复误删文件的步骤和注意事项。
恢复步骤
-
停止写入操作
-
首先,我要求客户长按电源键关闭电脑,以避免关机过程中的数据写入操作进一步破坏丢失的文件。
-
然后,我通过向日葵远程连接到客户机器上的 Windows 系统,制作了一个 Ubuntu 的 U 盘 Live 系统。
-
-
启动 Live 系统
-
从 U 盘启动 Ubuntu Live 系统后,我安装了向日葵客户端,以便远程操作。
-
在整个恢复过程中,未挂载硬盘上的分区,以避免数据被进一步覆盖。
-
-
查看磁盘分区
-
使用
lsblk -f
命令查看客户的磁盘分区情况,确认被删除文件所在的分区为/dev/sda3
(ext4
格式)。
-
-
安装恢复工具
-
在 Live 系统中,我安装了
testdisk
和ext4magic
两个工具。
-
-
使用 TestDisk 验证删除时间
-
执行命令
sudo testdisk /dev/sda
,通过 TestDisk 查看删除数据的具体位置,并验证删除文件的时间。 -
确认删除时间为 2022年9月25日15:00。
-
-
使用 Ext4magic 恢复文件
-
挂载另一个分区(如
/dev/sda1
)作为恢复数据的存储位置。 -
执行命令:
sudo ext4magic /dev/sda3 -a "$(date -d "2022-09-25 15:00:00" +%s)" -r
该命令表示恢复从 2022 年 9 月 25 日 15:00 开始删除的文件。
-
-
检查恢复结果
-
恢复的文件被保存在
RECOVERDIR
目录中,但文件的目录结构和原始文件名可能丢失。 -
例如,Python 文件被归类到
RECOVERDIR/MAGIC-2/text/x-script.python
,而.rmf
文件则位于RECOVERDIR/MAGIC-2/application/octet-stream
。 -
通过文件内容的关键字(如 Python 文件中的
specialpackage
或.rmf
文件中的mykeyinhead
)来定位和恢复文件。
-
注意事项
-
备份重要数据
-
重要的数据应在不同介质上进行备份,以避免因误操作导致数据丢失。
-
-
避免写入操作
-
误删数据后,不要在同一分区进行写入操作。如果分区可以安全卸载,则直接卸载;如果分区有自动写入操作(如
/
或/home
分区),建议直接关闭电脑。
-
-
使用 Live 系统恢复
-
对于有自动写入操作的分区,建议使用 Live Linux 系统启动后进行恢复操作。
-
-
尝试其他工具
-
如果
ext4magic
恢复的文件不完整,可以尝试使用photorec
工具。photorec
会根据文件类型的特征逐扇区扫描硬盘,恢复删除的文件。但这种方法耗时较长,且恢复的文件可能会占用大量空间。
-
-
文件系统日志恢复
-
在较新的操作系统(如 Ubuntu 20.04)中,通过文件系统日志恢复删除文件并保留原始文件名和目录结构的方法可能不再有效。旧版本系统(如 Ubuntu 16.04)可能支持这种恢复方式。
-
支持ing