![在 1T 块设备中搜索指定偏移处的特定字节序列](https://linux22.com/image/225197/%E5%9C%A8%201T%20%E5%9D%97%E8%AE%BE%E5%A4%87%E4%B8%AD%E6%90%9C%E7%B4%A2%E6%8C%87%E5%AE%9A%E5%81%8F%E7%A7%BB%E5%A4%84%E7%9A%84%E7%89%B9%E5%AE%9A%E5%AD%97%E8%8A%82%E5%BA%8F%E5%88%97.png)
我正在使用 dd 发生事故后执行数据恢复。从长远来看,我需要使用一些恢复工具来尝试修复文件系统
与此同时,系统上有一个我需要的映像,如果我能找到该映像,我将能够使用该映像来对设备进行映像。
字节序列是"\x21\x35\x2c\x66\xe4\xe8\x48\xe0\xf9\x4a\x92\x\x7f\x3f\xb7\x6e"
.我尝试过在Python中使用mmap,但据我所知,mmap.find()
它不允许打开块设备,因为我每次尝试时似乎都会遇到错误。
我尝试过使用其他工具,例如 dd 与 grep 结合使用,但它在磁盘的开头进行搜索,而它可能会接近结尾。扫描需要非常长的时间。
那么 tl;dr 搜索具有以下要求的 1TB 数据的最佳方法是什么:
- 字节串
- 在指定的偏移处
- 可以搜索文件而无需尝试一次性打开它(就像 Python 一样
with open
) - 可以读取未安装的块设备