Comment effectuer un TRIM sur l'espace non alloué/non formaté après réduction de partition sur un SSD sous Windows ?

Comment effectuer un TRIM sur un espace complètement inutilisé, non alloué, non formaté, non partitionné (mais d’autres volumes existent encore) sur un SSD sous Windows 11, qui contenait auparavant des données, pour le sur-approvisionnement ? (Pour information : quand je dis “espace vide”, je veux dire un espace qui est maintenant non alloué, non formaté, etc., pas nécessairement de l’espace inutilisé dans un volume/partition existant.)

J’ai cherché partout et trouvé beaucoup de réponses pour des gens posant des questions similaires sur de l’“espace vide” qui n’a jamais contenu quoi que ce soit (comme sur un nouveau disque), donc un TRIM n’est pas nécessaire, et c’est compréhensible. Cependant, j’avais l’habitude d’avoir mon SSD entier partitionné et formaté et je l’avais régulièrement presque rempli (certainement plus que l’espace inutilisé que j’essaie maintenant de sur-approvisionner) et je n’ai réalisé que récemment qu’il y a de nombreux avantages au sur-approvisionnement qui surpassent la perte d’espace de stockage. Je n’ai cependant pas fait de TRIM avant de réduire la partition, donc le SSD peut penser qu’il y a encore des données dans cet espace maintenant “vide”.

Je suppose que le TRIM d’un volume (C, D, etc.) ne s’applique qu’à l’“espace” (secteurs/blocs, peu importe) que ce volume occupe (ou pourrait potentiellement occuper, y compris son espace inutilisé), mais ne fait pas de TRIM en dehors de ce volume (vraisemblablement pour ne pas faire de TRIM sur un espace dont seul Windows n’a pas connaissance).

Donc, si je veux être sûr que le firmware du SSD sait que cet espace est disponible pour le sur-approvisionnement, comment puis-je en être sûr ? Y a-t-il une commande ou un outil pour dire au firmware du SSD spécifiquement que c’est pour le sur-approvisionnement, ou comment puis-je faire un TRIM sur cet “espace vide” (qui était auparavant utilisé) en dehors de tout volume ?

S’il n’y a pas de commande ou d’outil pour faire un TRIM sur l’“espace vide”, est-ce que simplement créer une nouvelle partition/volume dans l’espace que je veux pour le sur-approvisionnement, faire un TRIM dessus, et le supprimer ferait effectivement ce que je veux ?

Je pense que ce que l’auteur veut faire est de réserver par exemple 10% de l’espace LBA et ne rien faire avec afin que le disque puisse l’utiliser pour le sur-approvisionnement. En s’assurant que cette zone a fait l’objet d’un TRIM, vous seriez certain que cette portion d’espace LBA n’est mappée à aucun espace physique NAND. Si vous vous abstenez ensuite d’écrire des données dans cette zone, l’espace LBA reste non mappé.

Je fais de la récupération de données et j’ai observé :

  • Supprimer une partition via la Gestion des disques ne déclenche pas de TRIM, autrement dit les données restent récupérables (démonstration).

  • La création d’une nouvelle partition + nouveau système de fichiers dans cet espace non alloué déclenche un TRIM pour cette zone (autrement dit la plage LBA est dé-mappée). C’est comme l’auteur le suppose, vital car avant que le firmware puisse utiliser cet espace comme il le souhaite, il doit en être informé. TRIM est la commande pour communiquer cela au contrôleur/firmware. Si vous voulez utiliser cet espace uniquement pour le sur-approvisionnement, il peut être judicieux de simplement supprimer la partition ensuite.

L’espace sur-approvisionné est simplement un pourcentage de l’espace NAND qui n’est pas mappé à des LBA. Peu importe que cet espace soit maintenu au niveau du firmware, par le biais d’une sorte de zone HPA (c’est fondamentalement ce que font les outils du fabricant qui offrent une option de configuration de sur-approvisionnement) ou qu’il soit mis de côté par l’utilisateur à cette fin. La seule différence est que ce dernier ne masque pas la zone comme le fait le HPA (zone protégée de l’hôte) par exemple. Cependant, en laissant/rendant l’espace non alloué après avoir fait le TRIM, vous empêchez de nouvelles données d’y être écrites.

Alternativement, vous pouvez définir une zone HPA (sur un disque encore inutilisé ou vide) en utilisant par exemple hdparm. C’est essentiellement la même idée : Toute région du SSD qui n’est pas mappée à des LBA agira comme espace sur-approvisionné.

Vous ne pouvez pas compter sur l’écriture de zéros dans la zone. Bien que l’espace LBA ayant fait l’objet d’un TRIM retourne généralement des zéros quand vous le lisez, c’est purement le firmware qui retourne des zéros car il détecte que l’utilisateur essaie de lire depuis des LBA non mappés. Ceci est différent de l’écriture effective de zéros (bien que sur les SSD modernes, le firmware puisse détecter les zéros et ne pas allouer de NAND physique pour les stocker, mais c’est un sujet différent).

Tout sur-approvisionnement contribuera par exemple à prolonger la durée de vie du SSD. Une astuce du fabricant pour offrir des SSD de meilleure qualité avec par exemple une endurance accrue, est simplement d’augmenter l’espace sur-approvisionné au niveau du firmware.