Answers:
您也可以使用 extundelete
首先卸载(umount
)已删除文件的文件系统。
然后阅读章节删除文件后的处理方法。
您可以extundelete
从经典的Ubuntu存储库安装:
sudo apt-get install extundelete
或者更好的是,您可以下载最新版本并进行编译:
cd ~/Download
tar -xf extundelete-*.*.*-.tar.bz2 #Replace *.*.* by the version
cd extundelete-*.*.*
sudo apt-get install e2fslibs-dev #Required for compilation
./configure
make
sudo make install
extundelete --version #Should be your *.*.* version
使用示例:将目录中所有已删除的文件还原Images
到新创建的目录中restore
sudo extundelete --restore-directory Images/ -o restore /dev/sda3
如果您看到XXXX
以下格式的文件,则是个坏消息:
Unable to restore inode NNN (Images/XXXX): Space has been reallocated.
查看所有还原的文件(查找您的文件):
find restore -name '*'
备份文件并删除此临时目录 restore
cp restore/Images/XXXX MY_BACKUP_DIRECTORY
sudo rm -rf restore
应该从实时CD或其他系统上尝试恢复数据,尤其是在EXT文件系统上,而这不取决于要取消删除的分区。将磁盘卸装或以只读方式重新安装有助于恢复工作。
大多数时候,我尝试使用dd
或类似工具创建分区或磁盘的映像,以使我无法在磁盘本身上工作:
dd if=/dev/sd[xx] of=/media/backup_drive/recovery.img
拥有图片后,您可以使用类似的工具ext3grep
来尝试查找所需的文件。您可以尝试许多不同的开关,但这可能是一个好的开始:
ext3grep --restore-file 'tmp/moms-file.txt' recovery.img
ext3grep
如果您不知道文件名,该实用程序还提供了几种不同的方式来搜索文件系统。检查ext3grep --help
各种搜索方法。
我更喜欢将ext4magic用作:
sudo ext4magic /dev/sdc3 -r -f $USERl/Documents/ -d /tmp/local/tmp/
注意您必须自己解决符号链接
参考文献:
我无法使用ext4magic或extundelete恢复crontab文件。
在Debian上,root的crontab在这里:
/var/spool/cron/crontabs/root
但是,通过使用以下命令,我至少能够从日志中手动恢复crontab。
grep CRON /var/log/syslog.* -i| awk -F " CMD " {'print $2;'} |sort | uniq
它将仅输出已执行的cron作业(无定时),但这至少比从头开始要多得多。
如果您不记得某些cron作业的运行频率,请获取完整的日志,例如syslog.1,这将为您提供一天中运行次数的计数:
grep CRON /var/log/syslog.1 -i| awk -F " CMD " {'print $2;'} |sort | uniq -c |sort -n
解析数据块以获取EXT目录数据。
EXT4的详细文档可以在这里找到:
使用下载perl脚本
git clone https://github.com/halpomeranz/analyzeEXT
不能保证,但是可能能够重建已删除的文件系统。