我最近想更改我的分区表,所以我备份了所有数据并更改了它,但完成后我发现我的一些项目文件没有推送到 GitHub,然后我尝试使用以下命令恢复它测试盘但它不起作用我也做了一个deep search
它仍然没有找到它请有人告诉我如何恢复该数据它非常非常重要!
答案1
由于您在新分区上创建了新文件,因此您的旧文件可能会完全丢失,并被新文件覆盖。假设这没有发生,并且您的文件仍然存在于某处。
由于工具没有帮助,那么您可以尝试手动搜索文件。为此,您需要知道文件中存在的字符串,最好是仅有的在您要查找的文件中。
my forgotten source code
假设您正在磁盘上查找字符串/dev/sda
:
- 查找物理磁盘上的所有字符串:如果您的磁盘容量很大,这可能会花费很长时间:
strings -24 -t d /dev/sda | grep -i "my forgotten source code"
-24
:要查找的字符串的最小长度,相应调整-t d
:以十进制打印偏移量
这将返回找到字符串的偏移量。如果没有结果,那么您的文件可能已被覆盖,并且可能无法将其恢复。另一方面,如果您的字符串出现在多个文件或文件的多个 git 修订版本中,您可能会得到很多结果。如果时间太长或匹配项太多,最好将结果存储在文件中,以便稍后再次分析结果。只是不要将文件存储在同一磁盘上,以避免删除丢失的文件!
- 浏览找到的偏移量附近的磁盘字节。假设您在偏移量 1024 处找到了该字符串:
xxd -s 1024 /dev/sda | less
-s 1024
从偏移量 1024 处开始读取磁盘字节,如果需要在字符串开头之前读取,请进行相应调整。