Answers:
通过读取磁盘上包含的分区表来标识已分配的空间(分区)和未分配的空间。对于MBR分区方案,分区条目存储在硬盘的字节446-511中。
通常,每个分区条目都包含偏移量和长度以及分区的类型。例如,以下可能是假设的12288字节(12 KB!)硬盘上的MBR条目:
+==================================+
| ID | Offset | Length | Type |
|====+==========+==========+=======|
| 1 | 512 | 1024 | NTFS |
| 2 | 1536 | 1536 | NTFS |
| 3 | 6144 | 6144 | ext4 |
+==================================+
在给定的示例中,有3个分区。第一分区占据偏移量512-1536。第二分区占据偏移量1536-3072。第三分区占据偏移量6144-12288。
从这里可以看出,偏移量3072-4144没有被任何分区占用,因此被标识为未分配空间。
好吧,标记为未分配的文件系统不再是文件系统(;
标识为未分配的区域仍然可以包含数据-如今gparted
,大多数分区删除工具(包括,我认为)在删除分区时不会擦除分区所占用的整个区域。通常,仅删除分区表中的相应条目,而保留在区域中的数据将保留在那里,直到在其上创建新的文件系统为止。
Testdisk通过扫描整个磁盘(而不是仅读取分区表)来寻找特殊签名(唯一标识一个分区的字节序列)以在磁盘上找到丢失的分区,以此为依据。