Debian系统恢复误删除文件的常用方法
extundelete是Debian下针对ext系列文件系统的专用恢复工具,操作简便且针对性强。
sudo apt-get update && sudo apt-get install extundelete安装。/home/user/documents/deleted_file.txt,命令为sudo extundelete /dev/sdXY --restore-file /home/user/documents/deleted_file.txt(/dev/sdXY为文件所在分区,如/dev/sda1)。/home/user/documents目录,命令为sudo extundelete /dev/sdXY --restore-directory /home/user/documents。sudo extundelete /dev/sdXY --restore-all。TestDisk擅长恢复丢失的分区和结构,Photorec则专注于文件内容恢复,二者配合可应对复杂场景。
sudo apt-get install testdisk同时安装TestDisk和Photorec。sudo testdisk启动;/dev/sda);Intel);Enter;Analyse→Quick Search(快速扫描)或Deep Search(深度扫描);C键复制到安全目录(如/home/user/recovered)。sudo photorec启动;ext4);Documents、Photos)或All(全部);若文件被删除但仍被某个进程占用(如编辑中的文档),可通过lsof命令找回。
sudo lsof | grep deleted,列出所有已删除但仍被占用的文件;找到目标文件后,记下其PID(进程ID);执行sudo kill -9 PID终止进程,文件将恢复至原路径(或通过/proc/PID/fd/文件描述符访问)。若误删文件后未向磁盘写入新数据,可通过dd命令复制原始数据块(需知道原文件位置)。
/dev/sda1的第1000-2000字节,执行sudo dd if=/dev/sda1 of=recovered_file bs=1 skip=1000 count=1000(bs为块大小,skip为起始位置,count为读取字节数)。若有定期备份(如使用rsync、tar或Debian自带的Deja Dup),可直接从备份介质(外接硬盘、NAS、云存储)恢复文件。
tar备份,执行sudo tar -xvf backup.tar -C /path/to/restore(backup.tar为备份文件,/path/to/restore为目标目录);Deja Dup,打开应用后选择“恢复”,指定备份位置和目标目录即可。lsblk或fdisk -l命令查看磁盘分区信息,避免选错分区(如将/dev/sda1误认为/dev/sdb1);cron任务设置自动备份(如每天凌晨备份/home目录),降低数据丢失风险。