Quelle est la différence entre sdelete -c et -z?

24

J'ai appris de cet article à utiliser sdelete comme étape pour réduire le fichier VDI:

sdelete -c c:

Mais que signifie le -c('Clean free space' comme décrit par son texte d'aide)? N'écrit-il pas d'espace libre avec zéro? Et qu'en est-il de -z(zéro espace libre)? Quelle est la différence entre sdelete -c et -z?

modifier

J'ai essayé l'étape de l' article mentionné précédemment, mais je n'ai pas réussi à réduire la taille du .vidfichier. Ensuite, j'ai suivi ce post de superutilisateur , et changé l'option -cen -z, et j'ai réussi.

Il semble donc -zécrit des zéros sur l'espace libre et -cécrit autre chose (des bits aléatoires éventuellement).

Flamme gelée
la source

Réponses:

21

Je pense que c'est une erreur courante. Peut-être que l'option -z n'était pas disponible dans les versions antérieures. SDelete 1.61 dit

-z         Zero free space (good for virtual disk optimization)

Notez que cela étendra d'abord votre disque dur à sa taille maximale. Ce n'est que dans le processus de rétrécissement de VMWare qu'il redeviendra plus petit.

Un test rapide sur ma machine:

-z took 1:01 minutes
-c took 2:11 minutes

Ce qui indique que -z n'écrit que des zéros simples tandis que -c est la norme militaire d'essuyage DoD 5220.22-M telle qu'écrite sur le site Web de SDelete .

Thomas Weller
la source
Il ne gonflera pas le fichier si le logiciel est quelque peu intelligent. La plupart des applications de virtualisation le sont. Je viens de l'essayer dans VMware Fusion, cela n'a pas du tout augmenté la taille du fichier.
Daniel B
1
Malheureusement, VMWare Workstation Pro 12 étend le disque à sa taille maximale.
Lebenita
-c et -z ont été annoncés dans 1.51 exactement l'inverse (que ce soit juste une erreur dans la description ou les fonctions ont également été inversées, je ne sais pas). La méthode 1.61 est beaucoup plus logique, évidemment.
Lebenita
Je viens de vérifier avec Windows 2012 et un nouveau fichier VHDX de 20 Go. L'option -z était très rapide (secondes) et la taille du fichier disque VHDX n'a ​​pas augmenté. L'option -c s'exécute beaucoup plus lentement et le VHDX augmente en taille. Donc -z est l'option préférée pour un disque dur virtuel dit mince / extensible, surtout si vous avez trop d'espace disque. Mais ce n'est pas aussi sûr que l'option -c
munrobasher
1
Je viens de vérifier la dernière version (2.0) et il y a deux différences évidentes. Il existe tout d'abord une version 32 bits et 64 bits (sdelete.exe & sdelete64.exe). Mais il y a aussi une subtile différence dans la commande -c qui inquiète. Dans la v1.61, l'option -c disait "Nettoyage de l'espace libre" mais dans la v2.0, elle disait "Remise à zéro de l'espace libre". L'option -z indique également la mise à zéro. At-il perdu l'option de données aléatoires ??
munrobasher
5

Cela aurait dû être mieux affiché en tant que commentaire à la réponse de Thomas, mais comme je ne peux pas encore le faire, je le poste ici.

Mélanger les options "-z" et "-c" est probablement une "erreur courante", car SDelete a changé le comportement de ces options au fil des ans. En regardant les références fournies ci-dessous, il semble que SDelete avait d'abord une option "-z" qui a fait le "nettoyage standard militaire", puis a ajouté une option "-c" pour mettre à zéro l'espace libre, puis quelque part entre v1.51 et v1. 61 ont changé ce comportement au comportement actuel.

Références: Forum sysinternals.com et ancienne page d'accueil de SDelete sur Microsoft TechNet via archive.org.

LN2
la source
Ce n'est pas une réponse à la question d'origine. Pour critiquer ou demander des éclaircissements à un auteur, laissez un commentaire en dessous de son article - vous pouvez toujours commenter vos propres articles, et une fois que vous aurez une réputation suffisante, vous pourrez commenter n'importe quel article .
DavidPostill
4
Ce n'est pas une réponse à la question d'origine. Veuillez relire la première ligne du message. S'il existe une meilleure procédure pour ajouter des informations utiles et / ou pertinentes à une réponse déjà existante pour quelqu'un qui vient de s'inscrire au service, n'hésitez pas à m'éclairer.
LN2
"S'il existe une meilleure procédure pour ajouter des informations utiles et / ou pertinentes à une réponse déjà existante pour quelqu'un qui vient de s'inscrire au service, n'hésitez pas à m'éclairer" - ce n'est pas le cas, veuillez lire les liens que j'ai fournis.
DavidPostill
Il est intéressant de noter que dans 1.61, quel que soit le commutateur que vous utilisez, il indique toujours "Remise à zéro de l'espace libre" (et dans 1.51, il indique toujours "Nettoyage de l'espace libre"). C'est un peu trompeur, pendant un moment, cela m'a fait méfier du fait que "-c" était en fait un comportement "propre" et non "zéro".
rkagerer
5

Documentation actuelle (et version du programme 2.01):

  • -c: Nettoyer l'espace libre. Spécifiez une quantité d'espace à laisser libre pour une utilisation par un système en cours d'exécution.
  • -z: Zéro espace libre (bon pour l'optimisation de disque virtuel).

Mais dans les anciennes versions, il était inversé:

  • -c: Zéro espace libre (bon pour l'optimisation de disque virtuel).
  • -z: Nettoyer l'espace libre.

entrez la description de l'image ici

Mais que font ils?

Nettoyer crée le plus gros fichier possible, le remplit de données aléatoires , puis le remplit de zéros. C'est ce que la plupart des gens considèrent comme un essuyage , et c'est exagéré.

L'inconvénient est que si vous utilisez un disque virtuel, ou à l'intérieur d'une machine virtuelle, ou si vous l'exécutez sur un espace de stockage: le système de stockage sous-jacent sera obligé d'allouer des ressources pour vous contenir des données aléatoires, puis zéro. Espérons que le système de stockage sous-jacent se rendra compte que tout cet espace qui vient d'être alloué à votre disque peut être récupéré car tous ces secteurs contiennent simplement des zéros.

-z Zero: écrit simplement des zéros dans tous les secteurs. C'est l'option que vous souhaitez, pour de nombreuses raisons:

  • essuyer avec des données aléatoires est exagéré (la lecture des données n'est pas pratiquement possible; c'est-à-dire un bit à la fois bien qu'un microscope ne soit pas faisable)
  • certains SSD peuvent détecter que vous écrivez zéro dans un secteur et peuvent l'utiliser pour marquer le secteur comme libre (similaire à un TRIM)
  • la plupart des systèmes de stockage virtuels (VMWare, Hyper-V, disques virtuels Windows, espaces de stockage) se rendent compte que vous écrivez un secteur entier de zéros et profitez de l'occasion pour récupérer de l'espace dans le fichier de stockage sous-jacent
  • Les SSD ne sauront pas que votre objectif ultime est essentiellement un TRIM glorifié et (comme les disques virtuels) forcés de remplir des secteurs qui contenaient déjà des zéros, avec des non-zéros, seulement pour que vous le remplissiez à nouveau avec des zéros. C'est terrible pour vos SSD.

Source : monté un disque dur virtuel et observé les opérations d'E / S effectuées par sdelete dans les deux modes.

tl; dr: utilisez -z Zero. C'est plus rapide, meilleur, plus sûr.

Ian Boyd
la source