Debian系统数据恢复方法
如果有定期备份,这是恢复数据的首选方法。Debian下常用rsync进行备份,命令示例:
sudo rsync -av --delete /source/directory /backup/directory
恢复时反向运行rsync命令,将备份目录同步回原路径即可。备份能最大程度保证数据完整性,避免恢复工具的局限性。
extundelete是Debian仓库中的专用恢复工具,适用于ext2/ext3/ext4文件系统,通过读取文件系统的inode信息恢复未覆盖的文件。
sudo apt-get update && sudo apt-get install extundeletesudo extundelete /dev/sdXY --restore-file path/to/deleted/file(如/dev/sda1是目标分区,path/to/deleted/file是原文件路径)sudo extundelete /dev/sdXY --restore-directory path/to/deleted/directorysudo extundelete /dev/sdXY --restore-allRECOVERED_FILES文件夹中。注意:需卸载目标分区(或重启到Live CD环境)以避免数据覆盖。TestDisk是一款开源工具,不仅能恢复丢失的分区,还能恢复多种文件系统(FAT、exFAT、ext3/ext4、NTFS等)中的文件。
sudo apt-get install testdisksudo testdisk,选择目标磁盘(如/dev/sda);c键复制到指定目录(需提前创建空目录)。PhotoRec是TestDisk的姊妹工具,专注于恢复丢失的文件(照片、视频、文档、压缩包等),支持超过480种文件格式。
sudo apt-get install photorecsudo photorec /dev/sdXY(目标分区);若文件被删除但仍有进程保持打开状态(如编辑器未关闭文件),可通过lsof命令恢复。
sudo lsof | grep deleted,找到被删除文件的进程ID(PID)和文件描述符(FD,如1u);/proc/PID/fd/目录,用cp命令复制文件描述符对应的文件(如cp 1 /recovered_file)。若以上工具均无效,可通过dd备份分区原始数据,再用grep搜索特定内容恢复文件。
sudo dd if=/dev/sdXY of=/path/to/backup.img bs=4k(if为输入文件,of为输出镜像);grep -a -B 100 -A 100 "search_string" /path/to/backup.img > recovered_file.txt(search_string为文件中的特定字符串,-B/-A指定前后行数)。