在Windows中的SSD上缩小分区后如何修剪未分配/未格式化的空间?

Cmd*_*Pie 3 windows ssd trim partitioning windows-11

如何修剪 Windows 11 中用于包含数据的 SSD 上完全未使用、未分配、未格式化、未分区的空间(但其他卷仍然存在),以实现过度配置?(请注意:当我说“空空间”时,我指的是现在未分配、未格式化等的空间,不一定是现有卷/分区中未使用的空间。)

我环顾四周,发现了很多关于“空白空间”的类似问题的答案,这些问题从未包含任何东西(例如在新驱动器上),因此 TRIM 是不必要的,这是可以理解的。然而,我曾经对整个 SSD 进行分区和格式化,并且经常几乎将其填满(当然比我现在尝试过度配置的未使用空间还要多),直到最近才意识到过度配置有很多好处,超过了损失的存储空间。然而,在缩小分区之前我没有进行 TRIM,因此 SSD 可能认为现在的“空白空间”中仍然有数据。

我假设 TRIM 卷(C、D 等)仅适用于该卷占用(或可能占用,包括其未使用空间)的“空间”(扇区/块等),但不 TRIM在该卷之外(大概因此它不是只有 Windows 不知道的 TRIMing 空间)。

因此,如果我想确保 SSD 固件知道有空间可用于过度配置,我怎样才能确定它知道呢?是否有命令或工具专门告诉 SSD 固件它用于过度配置,或者如何修剪任何卷外部的“空白空间”(曾经使用过的空间)?

如果没有命令或工具来修剪“空白空间”,那么只需在我想要进行过度配置的空间中创建一个新的分区/卷,对其进行修剪并有效删除它就可以达到我想要的效果吗?

Joe*_*een 12

我认为 OP 的意思是保留例如 10% 的 LBA 空间,并且不对其进行任何操作,以便驱动器可以使用它进行过度配置。通过确保该区域被修剪,您可以确定这块 LAB 空间不会映射到任何物理 NAND 空间。如果您随后不向该区域写入数据,LBA 空间将保持未映射状态。

我进行数据恢复并观察到:

  • 使用磁盘管理删除分区不会触发 TRIM,IOW 数据仍然可恢复(演示)。
  • 在此未分配空间中创建新分区会触发 TRIM(IOW LBA 范围未映射)。正如OP所假设的那样,这一点至关重要,因为在固件可以随心所欲地使用这个空间之前,它必须意识到这一点。TRIM 是将其传达给控制器/固件的命令。

超额配置空间只是未映射到 LBA 的 NAND 空间的百分比。该空间是通过某种 HPA 区域(这基本上是提供超额配置配置选项的制造商工具所做的)在固件级别维护,还是由用户为此目的预留,并不重要。唯一的区别是后者不会像 HPA(主机保护区)那样隐藏该区域。但是,通过保留未分配的空间,或利用它创建 RAW(无文件系统)分区,可以防止将新数据写入其中。

您不能指望向该区域写入零。虽然修剪后的 LBA 空间在读取时通常会返回零,但这纯粹是固件简单地返回零,因为它检测到用户正在尝试从未映射的 LBA 中读取。这与实际写入零不同(尽管在现代 SSD 上固件可能会检测到零并且实际上不会分配物理 NAND 来存储这些零,但这是一个不同的主题)。

任何过度配置都将有助于延长 SSD 的使用寿命等。制造商提供更高质量 SSD 并提高耐用性的技巧之一就是在固件级别增加超额配置空间。

  • 您介意强调“在此未分配的空间中创建新分区会触发 TRIM”,因为这是直接回答OP问题的部分吗?(问:如何触发 TRIM?答:在那里创建一个新的虚拟分区(然后将其删除)。) (2认同)