Comment remplir à zéro l'espace libre d'un disque virtuel sous Windows pour une meilleure compression?
Je voudrais un outil open source simple (ou au moins gratuit) pour cela. Il devrait probablement écrire un fichier aussi gros que possible 0
et l'effacer par la suite. Un seul passage (ce n'est pas pour des raisons de sécurité mais pour la compression, nous sauvegardons des machines virtuelles).
Devrait fonctionner à l'intérieur de Windows et non à partir d'un disque.
Sur Linux, je le fais comme ceci (en tant qu'utilisateur):
cd
mkdir wipe
sudo sfill -f -l -l -z ./wipe/
Edit 1: J'ai décidé d'utiliser sdelete à partir de la réponse acceptée. J'ai jeté un œil à l'aide de sdelete:
C:\WINDOWS\system32>sdelete /?
SDelete - Secure Delete v1.51
Copyright (C) 1999-2005 Mark Russinovich
Sysinternals - www.sysinternals.com
usage: sdelete [-p passes] [-s] [-q] <file or directory>
sdelete [-p passes] [-z|-c] [drive letter]
-c Zero free space (good for virtual disk optimization)
-p passes Specifies number of overwrite passes (default is 1)
-q Don't print errors (Quiet)
-s Recurse subdirectories
-z Clean free space
Ceci est une ancienne version. J'ai utilisé le commutateur -c à partir de la 2ème invocation, ce qui était assez rapide (syntaxe valide uniquement pour les versions antérieures à la V1.6):
c:\>sdelete -c c: (OUTDATED!)
J'ai l'impression que cela fait ce que je veux. L'outil sdelete est facile à utiliser et à obtenir.
Edit 2: Comme l'a souligné scottbb dans sa réponse ci-dessous, l'outil (version 1.6) a été modifié en septembre 2011. Les options -c et -z ont changé de signification. L'utilisation correcte à partir de 1.6 est
c:\>sdelete -z c:
Edit 3: Il existe une version 2.0 de sdelete et sdelete64. Ils semblent être bogués lors de la remise à zéro. Il semblera être bloqué à 100% pendant des temps extrêmement longs. Certaines personnes ont rapporté 10 à 40 fois plus longtemps. L'ancienne version 1.61 n'a pas ce problème. Voir https://social.technet.microsoft.com/Forums/en-US/2ffb2539-34ba-4378-aa8a-941d243f117e/sdelete-hangs-at-100?forum=miscutils
Edit 4: Maintenant, il y a le problème de l' espace disque virtuel alloué dynamiquement . Si vous avez un disque de 100 Go qui n'est pas plein et utilise seulement 30 Go sur l'hôte, le remplissage par zéro ne devrait pas augmenter considérablement la taille du disque, car cela contredit l'objectif de l'allocation dynamique . Il existe une réponse pour Oracle VM VirtualBox
https://superuser.com/q/907196/44402 - mais sur d'autres piles telles que VMWare, Xen, XenServer, etc., il faut y répondre séparément.
sdelete
est le bon outil pour le travail, mais une modification apportée à l'outil en septembre 2011 (version 1.6) rend les réponses ci-dessus incorrectes. Les options-c
et-z
ont changé de signification. L'utilisation correcte est maintenantsdelete -z c:\
Réponses:
Sous Windows, utilisez l’outil sysinternals sdelete pour supprimer tout l’espace vide. La commande que vous voulez ressemblerait à ceci
sdelete -z c:
.Pour Linux, je vous suggère d’utiliser zerofree .
la source
Windows a déjà un outil de ligne de commande intégré qui fait cela: CIPHER. Voir son option / W.
Ainsi, la commande complète serait: cipher / w: c: (remplacez c: par la lettre de lecteur réelle)
(il écrit des zéros dans l'espace inutilisé, puis 0xff, il faut donc le regarder et l'arrêter avec ctrl-c quand il commence à écrire 0xff - ce n'est pas idéal, mais c'est gratuit et déjà disponible sous Windows depuis au moins XP)
la source
SDelete ne mettra pas à zéro l'espace disponible pour le compactage d'un disque virtuel. SDelete commence par réduire à zéro l'espace libre, puis le remplit avec 0xff puis des octets aléatoires. Voir Comment préparer un fichier de disque dur virtuel Virtual Server 2005 à envoyer aux services de support technique de Microsoft Pour savoir comment configurer un disque dur virtuel pour le compactage
Precompact.exe peut être difficile à trouver pour une raison quelconque. J'ai trouvé une copie téléchargeable séparée ici . Cependant, si vous avez un PC virtuel Windows, vous pouvez également l'obtenir à partir de% programfiles (x86)% \ PC virtuel Windows \ Integration Components \ Precompact.iso
la source
trim
(à partir de Win7 et Hyper-V 2012), il n'est pas nécessaire de zéro avant le compactage. L'utilitaire PreCompact n'a effacé que les parties du disque contenant des fichiers supprimés, la partie qui n'a jamais été utilisée n'a pas été modifiée. Utiliser quelque chose commesdelete
remplirait le disque dynamique à une taille statique, qui pourrait ensuite être compactée à la taille réellement utilisée.fsutil
n'est pas open source, mais est fourni avec Windows et ne coûte donc rien de plus. Je l'ai utilisé pour mettre à zéro l'espace libre sur un lecteur WD 250 Go vide à 7200 tr / min (F:
). Voici ce que j'ai lancé depuis la ligne de commande:Qui a montré ce rapport:
J'ai utilisé
Total # of avail free bytes
dans les commandes suivantes:Il a fallu environ 4 heures pour écrire 250 Go de zéros.
la source
Moi aussi, je cherchais un moyen d’utiliser Cipher pour n’écrire que 0x00, puis quitter lorsque je commence à écrire 0xFF sur l’espace libre. Cela permettra à l'espace libre maximal d'être compressé. Je viens avec le travail de base PowerShell suivant
remplacez d: \ par le lecteur requis
Cordialement Simon
la source
Si vous utilisez VMware, un meilleur moyen consiste à utiliser les outils intégrés à VMware pour récupérer tout espace inutilisé sur le lecteur virtuel.
J'ai utilisé cela pour réduire la taille du disque virtuel de 28 gigaoctets à 13 gigaoctets. Votre kilométrage peut varier.
Lorsque j'ai essayé de l'utiliser
sdelete -z c:
, la taille des lecteurs virtuels a été portée à 30 gigaoctets, soit la taille maximale.Consultez le site Web de VMware et compressez un disque dur virtuel , qui se trouve sous
Using VMware Workstation > Configuring and Managing Devices > Configuring and Maintaining Virtual Hard Disks
.Mise à jour
Parfois, les outils de l'interface graphique ne sont pas aussi fiables que les outils de ligne de commande. J'ai rencontré des problèmes où les outils de l'interface graphique échouent, mais les outils de ligne de commande fonctionnent parfaitement. Voici les options pour
VMware Desktop 10
:Voici un exemple de réduction d'un disque. Cette ligne de commande a fonctionné, malgré la même commande de l’interface graphique en échec:
Le message d'erreur commençant par
VizDiskLib
est nouveau pour VMware Desktop 10 et peut être ignoré en toute sécurité.la source
Google-up Eraser 5.8.8 32 bits Fonctionne bien même sur Windows XP SP3 !
la source
Mit,
J'ai trouvé que le script powershell de Simon répondait exactement à vos besoins, sans les problèmes de version de sdelete. (commutateurs faisant différentes choses dans différentes versions)
Il y avait un problème, ce chiffre continuait à fonctionner, mais j'ai résolu ce problème.
J'ai ensuite modifié le script pour nettoyer le dossier temporaire:
Vous devrez remplacer F: \ par votre lettre de lecteur aux deux endroits.
la source
Pourquoi des outils tiers, alors que Windows inclut déjà tout ce dont vous avez besoin, pour "gratuit" et aussi vite que possible:
1)
format X: /fs:XXXX /p:#
, oùX
est la lettre de lecteur;XXXX
est le système de fichiers, oui et#
le nombre de passes;2)
clean
commande diskpart : http://technet.microsoft.com/library/cc766465.aspx , http://support.microsoft.com/kb/300415 ;En fait, vous n'avez pas besoin de plus d'une passe, non plus - une réclamation est une information obsolète pour les stratégies de disque rouge / écriture obsolètes, les personnes qui poussent des produits, qui sont motivés par la paranoïa ou les bs qui sont transmis comme des "conseils d'experts".
Edit: nvm, manque la partie espace libre ...
la source