我正在尝试通过grep
扫描硬盘来恢复一些丢失的文件。 (操作系统为Darwin 11.4.2,文件系统为HFS。)
如何确定文件(或其连续块)在磁盘上的开始和结束位置?我正在考虑类似的事情通用的文件开头 (BOF) 和文件结尾 (EOF) 序列。
我希望搜索能够自动将扫描的内容“解析”成(至少)连贯的块(通过在 BOF 或 EOF 处将其拆分)。
答案1
没有通用文件系统使用文件开头或文件结尾序列。它们非常不切实际:如果文件包含这些字符序列怎么办?
大多数基本文件系统将存储划分为固定大小的块,并为每个文件维护一个块列表。文件大小是单独保存的,并由此确定文件使用了最后部分块的多少。复杂的文件系统完善了这一基本思想。
和高频FS,组成文件内容的块列表作为范围存储在文件记录和范围溢出文件中。分配块(文件内容的基本不间断单元)的大小存储在文件系统标头中。