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

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

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

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

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

因此,如果我想确保 SSD 固件知道有空间可用于过度配置,我该如何确保它知道?是否有命令或工具可以明确地告诉 SSD 固件它用于过度配置,或者我如何修剪任何卷之外的“空白空间”(曾经使用过)?

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

答案1

未格式化空间,就像你缩小分区时所看到的一样,与过度配置容量。操作系统无法看到过度配置的区域,并且 SSD 不会自动使用未格式化(缩小)的空间来进行过度配置任务。

有些制造商确实有工具来调整 OP 使用的空间量,例如三星魔术师为他们的 SSD 预留空间。每个制造商在磁盘上预留的 OP 空间大小不同(通常为 5-10%),您永远看不到这些空间。您不需要向其中添加更多空间。


SSD TRIM 对磁盘未格式化的区域没有任何作用

答案2

我认为 OP 的意思是保留例如 10% 的 LBA 空间,不做任何事情,以便驱动器可以将其用于过度配置。通过确保修剪此区域,您可以确保这块 LAB 空间未映射到任何物理 NAND 空间。如果您随后不将数据写入此区域,则 LBA 空间将保持未映射状态。

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

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

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

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

任何过度配置都将有助于延长 SSD 使用寿命。制造商提供更高质量 SSD(例如,提高耐用性)的秘诀之一就是在固件级别增加过度配置空间。

答案3

SSD 不太容易读取未分配的磁盘区域,而且这样做很有可能只会检索到零。

如果您担心以前在此空间上的数据,并且不想冒险,我可以看到两个解决方案:

  • 获取磁盘编辑器产品并将未占用的空间清零。这是不安全的,因为您需要计算扇区偏移量,而错误可能会造成高昂的代价。

  • 在未占用的空间上创建一个分区,并使用某些实用程序将分区清零,或者将一个或多个大文件复制到其中,这些文件将以空间不足的消息终止。一旦写入的文件填满分区,删除它们肯定会执行 TRIM

第二种选择更加实用。

相关内容