Qual è la differenza tra sdelete -c e -z?


24

Ho imparato da questo articolo come utilizzare sdelete come passaggio per ridurre il file VDI:

sdelete -c c:

Ma cosa significa -c"Pulisci spazio libero" come descritto nel testo di aiuto? Non scrive spazio libero con zero? E che dire di -z(spazio libero zero)? Qual è la differenza tra sdelete -c e -z?

modificare

Ho provato il passaggio nell'articolo citato prima, ma non sono riuscito a ridurre la dimensione del .vidfile. Poi ho seguito questo post superuser , e ha cambiato l'opzione -ca -z, e riuscii.

Quindi sembra che -zscriva zeri nello spazio libero e -cscrive qualcos'altro (possibilmente bit casuali).

Risposte:


21

Penso che questo sia un errore comune. Forse l'opzione -z non era disponibile nelle versioni precedenti. SDelete 1.61 dice

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

Si noti che così facendo si espanderà prima il disco rigido a dimensioni intere. Solo nel processo di restringimento di VMWare diventerà di nuovo più piccolo.

Un rapido test sulla mia macchina:

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

Il che indica che -z scrive solo zeri semplici mentre -c è lo standard militare che cancella DoD 5220.22-M come scritto sul sito Web di SDelete .


Non gonfia il file se il software è in qualche modo intelligente. La maggior parte delle applicazioni di virtualizzazione lo sono. L'ho appena provato in VMware Fusion, non ha aumentato le dimensioni del file.
Daniel B,

1
Sfortunatamente VMWare Workstation Pro 12 espande il disco a dimensioni intere.
Lebenita,

-c e -z sono stati pubblicizzati in 1.51 esattamente il contrario (non so se fosse solo un errore nella descrizione o anche se le funzioni sono state invertite). Il modo 1.61 ha molto più senso, ovviamente.
Lebenita,

Ho appena controllato con Windows 2012 e un nuovo file VHDX da 20 GB. L'opzione -z è stata molto veloce (secondi) e il file del disco VHDX non è aumentato di dimensioni. L'opzione -c funziona molto più lentamente e il VHDX sta aumentando di dimensioni. Quindi -z è l'opzione preferita per un cosiddetto disco rigido virtuale thin / espandibile, specialmente se hai occupato lo spazio su disco. Ma non è sicuro come l'opzione -c
munrobasher il

1
Ho appena controllato l'ultima versione (2.0) e ci sono due differenze ovvie. Innanzitutto esiste una versione a 32 e 64 bit (sdelete.exe e sdelete64.exe). Ma c'è anche una sottile differenza nel comando -c che preoccupa. Nella v1.61, l'opzione -c diceva "Pulizia dello spazio libero" ma nella v2.0 diceva "Azzeramento dello spazio libero". L'opzione -z dice anche azzeramento. Ha perso l'opzione dati casuali ??
munrobasher,

5

Questo avrebbe dovuto essere pubblicato in modo più appropriato come commento alla risposta di Thomas, ma dal momento che non posso ancora farlo, lo pubblico qui.

Mischiare le opzioni "-z" e "-c" è probabilmente un "errore comune", poiché SDelete ha cambiato il comportamento di tali opzioni nel corso degli anni. Osservando i riferimenti forniti di seguito, sembra che SDelete abbia prima un'opzione "-z" che ha fatto la "pulizia standard militare", quindi ha aggiunto un'opzione "-c" per azzerare lo spazio libero e quindi da qualche parte tra v1.51 e v1. 61 ha cambiato quel comportamento con quello attuale.

Riferimenti: forum sysinternals.com e vecchia homepage SDelete su Microsoft TechNet tramite archive.org.


Questa non è una risposta alla domanda originale. Per criticare o richiedere chiarimenti a un autore, lascia un commento sotto il suo post: puoi sempre commentare i tuoi post e una volta che avrai una reputazione sufficiente sarai in grado di commentare qualsiasi post .
DavidPostill

4
Questa non è una risposta alla domanda originale. Per favore, rileggi la prima riga del post. Se esiste una procedura migliore per aggiungere informazioni utili e / o pertinenti a una risposta già esistente per qualcuno, che si è appena registrato al servizio, sentiti libero di illuminarmi.
LN2,

"Se esiste una procedura migliore per aggiungere informazioni utili e / o pertinenti a una risposta già esistente per qualcuno, che si è appena registrato al servizio, sentiti libero di illuminarmi" - non è così, leggi i link che ho fornito.
DavidPostill

È interessante notare in 1.61 a prescindere da quale interruttore usi, dice sempre "Azzeramento dello spazio libero" (e in 1.51 dice sempre "Pulizia dello spazio libero"). È un po 'fuorviante, per un po' mi ha fatto diffidare sul fatto che "-c" fosse in realtà un comportamento "pulito" e non "zero".
rkagerer,

5

Documentazione corrente (e versione del programma 2.01):

  • -c: Spazio libero pulito. Specificare un'opzione di spazio da lasciare libero per l'uso da parte di un sistema in esecuzione.
  • -z: Zero spazio libero (buono per l'ottimizzazione del disco virtuale).

Ma nelle versioni precedenti era invertito:

  • -c: Zero spazio libero (buono per l'ottimizzazione del disco virtuale).
  • -z: Spazio libero pulito.

inserisci qui la descrizione dell'immagine

Ma cosa fanno?

Clean crea il file più grande possibile, lo riempie di dati casuali e quindi lo riempie di zeri. Questo è ciò che la maggior parte della gente pensa come una pulizia , ed è eccessivo.

Il rovescio della medaglia è che se si utilizza un disco virtuale, o all'interno di una macchina virtuale, o lo si esegue su uno spazio di archiviazione: il sistema di archiviazione sottostante sarà costretto ad allocare risorse per contenere dati casuali, quindi a contenere zero. Si spera quindi che il sistema di archiviazione sottostante realizzi che tutto quello spazio che è stato appena allocato sul tuo disco può essere recuperato perché tutti quei settori contengono semplicemente zeri.

-z Zero: scrive semplicemente zeri in tutti i settori. Questa è l'opzione desiderata, per molte ragioni:

  • la pulizia con dati casuali è eccessiva (la lettura dei dati non è praticamente possibile; cioè un bit alla volta anche se un microscopio non è fattibile)
  • alcuni SSD possono rilevare che stai scrivendo zero in un settore e possono usarlo per contrassegnare il settore come libero (simile a un TRIM)
  • la maggior parte dei sistemi di archiviazione virtuale (VMWare, Hyper-V, dischi virtuali di Windows, spazi di archiviazione) si rendono conto che stai scrivendo un intero settore di zeri e ne approfittano per recuperare spazio nel file di archiviazione sottostante
  • Gli SSD non sapranno che il tuo obiettivo finale è essenzialmente un TRIM glorificato e (come i dischi virtuali) essere costretto a riempire settori che già contenevano zeri, con non zeri, solo per averlo di nuovo riempito di zeri. È terribile per i tuoi SSD.

Fonte : montato un disco rigido virtuale e osservato le operazioni di I / O eseguite da sdelete in entrambe le modalità.

tl; dr: usa -z Zero. È più veloce, migliore, più sicuro.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.