我正在使用 extundelete 恢复由于程序错误而意外从 AWS EBS 卷中删除的大约 9000 个文件。
报告结尾指出
2864 recoverable inodes still lost.
有人能解释一下这是什么意思吗,以及我如何使用 extundelete 恢复无法恢复的文件
完整 shell 输出
NOTICE: Extended attributes are not restored.
Loading filesystem metadata ... 240 groups loaded.
Loading journal descriptors ... 30077 descriptors loaded.
Searching for recoverable inodes in directory /srv/www/mysite.com/photo-gallery ...
9000 recoverable inodes found.
Looking through the directory structure for deleted files ...
Unable to restore inode 330 (srv/www/mysite.com/photo-gallery/group56/myimage7.jpg): Space has been reallocated.
Unable to restore inode 1179649 (srv/www/mysite.com/photo-gallery/group189/myimage5.jpg): Space has been reallocated.
2864 recoverable inodes still lost.
答案1
来自 extundelete 的作者:
我猜想它没有找到将 inode 与文件名链接起来的方法,在这种情况下,该
--restore-all
方法是恢复文件的最佳方法。
https://sourceforge.net/p/extundelete/mailman/message/30159985/
根据您的问题,我猜您运行了 extundelete--restore directory /srv/www/mysite.com/photo-gallery
如果是这种情况,那么你可以将所有这些都替换为--restore-all
,例如
sudo extundelete /dev/sda1 --restore-all
虽然从我的经验来看,输出具有欺骗性,因为仍然“丢失”的文件(inode)是整个分区的,而不仅仅是您指定的目录的,这意味着它能够恢复的大部分内容已经恢复了。但尝试一下也无妨,--restore-all
因为它可能会找到一些它不知道路径的文件碎片。