Jaka jest różnica między sdelete -c i -z?

24

Nauczyłem się z tego artykułu, jak używać sdelete jako kroku do zmniejszenia pliku VDI:

sdelete -c c:

Ale co oznacza -c(„Wyczyść wolne miejsce” zgodnie z opisem w tekście pomocy)? Czy to nie zapisuje wolnego miejsca na zero? A co z -z(zero wolnego miejsca)? Jaka jest różnica między sdelete -c i -z?

Edytować

Próbowałem wykonać krok we wspomnianym wcześniej artykule , ale nie udało mi się zmniejszyć rozmiaru .vidpliku. Potem poszedłem za tym postem superużytkownika i zmieniłem opcję -cna -zi udało mi się.

Wygląda więc na to, że -zzapisuje zera w wolnym miejscu i -czapisuje coś innego (możliwe losowe bity).

Frozen Flame
źródło

Odpowiedzi:

21

Myślę, że to częsty błąd. Być może opcja -z nie była dostępna we wcześniejszych wersjach. SDelete 1.61 mówi

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

Pamiętaj, że w ten sposób najpierw powiększysz dysk twardy do pełnego rozmiaru. Tylko w procesie obkurczania przez VMWare znów się zmniejszy.

Szybki test na moim komputerze:

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

Co oznacza, że ​​-z zapisuje tylko proste zera, podczas gdy -c jest wojskowym standardem wymazywania DoD 5220.22-M, jak napisano na stronie SDelete .

Thomas Weller
źródło
Nie spowoduje wzdęcia pliku, jeśli oprogramowanie jest nieco inteligentne. Większość aplikacji do wirtualizacji to. Właśnie wypróbowałem to w VMware Fusion, to wcale nie zwiększyło rozmiaru pliku.
Daniel B
1
VMWare Workstation Pro 12 niestety rozszerza dysk do pełnego rozmiaru.
Lebenita,
-c i -z były reklamowane w 1.51 dokładnie na odwrót (czy to był tylko błąd w opisie, czy też funkcje zostały odwrócone, nie wiem). Oczywiście sposób 1.61 ma o wiele więcej sensu.
Lebenita,
Właśnie sprawdzono w systemie Windows 2012 i nowym pliku VHDX o pojemności 20 GB. Opcja -z była bardzo szybka (sekundy), a rozmiar pliku dysku VHDX nie zwiększył się. Opcja -c działa znacznie wolniej, a rozmiar VHDX rośnie. Tak więc -z jest preferowaną opcją dla tak zwanego cienkiego / rozszerzającego się wirtualnego dysku twardego, szczególnie jeśli masz za dużo miejsca na dysku. Ale to nie jest tak bezpieczne jak opcja -c
Munrobasher
1
Właśnie sprawdziłem najnowszą wersję (2.0) i istnieją dwie oczywiste różnice. Po pierwsze jest wersja 32-bitowa i 64-bitowa (sdelete.exe i sdelete64.exe). Ale istnieje również subtelna różnica w poleceniu -c, która martwi. W v1.61 opcja -c mówi „Czyszczenie wolnego miejsca”, ale w v2.0 mówi „Zerowanie wolnego miejsca”. Opcja -z mówi również o zerowaniu. Czy stracił losową opcję danych?
munrobasher
5

Powinno to być odpowiednio zamieszczone jako komentarz do odpowiedzi Thomasa, ale ponieważ nie mogę tego jeszcze zrobić, zamieszczam to tutaj.

Mieszanie opcji „-z” i „-c” jest prawdopodobnie „częstym błędem”, ponieważ SDelete zmieniło zachowanie tych opcji na przestrzeni lat. Patrząc na przedstawione poniżej odnośniki, wydaje się, że SDelete najpierw miał opcję „-z”, która wykonała „standardowe czyszczenie wojsk”, a następnie dodała opcję „-c” do zerowania wolnego miejsca, a następnie gdzieś pomiędzy wersją 1.51 a wersją v1. 61 zmienił to zachowanie na obecne.

Odnośniki: Forum sysinternals.com i stara strona główna SDelete w Microsoft TechNet przez archive.org.

LN2
źródło
To nie jest odpowiedź na pierwotne pytanie. Aby skrytykować lub poprosić autora o wyjaśnienie, zostaw komentarz pod jego postem - zawsze możesz komentować własne posty, a gdy będziesz mieć wystarczającą reputację , będziesz mógł komentować każdy post .
DavidPostill
4
To nie jest odpowiedź na pierwotne pytanie. Przeczytaj jednak ponownie pierwszą linię postu. Jeśli istnieje lepsza procedura dodawania użytecznych i / lub istotnych informacji do już istniejącej odpowiedzi dla kogoś, kto właśnie zapisał się do serwisu, możesz mnie oświecić.
LN2
„Jeśli istnieje lepsza procedura dodawania przydatnych i / lub istotnych informacji do już istniejącej odpowiedzi dla kogoś, kto właśnie zarejestrował się w serwisie, nie wahaj się mnie oświecić” - nie ma, przeczytaj linki, które podałem.
DavidPostill
Warto zauważyć, że w wersji 1.61 niezależnie od tego, którego przełącznika używasz, zawsze mówi „Zerowanie wolnego miejsca” (aw 1.51 zawsze mówi „Czyszczenie wolnego miejsca”). Jest to trochę mylące, przez pewien czas nieufność sprawiła, że ​​„-c” było tak naprawdę „czyste”, a nie „zerowe”.
rkagerer
5

Aktualna dokumentacja (i wersja programu 2.01):

  • -c: Wyczyść wolne miejsce. Określ opcjonalną ilość miejsca, które ma pozostać wolne do wykorzystania przez działający system.
  • -z: Zero wolnego miejsca (dobre do optymalizacji dysków wirtualnych).

Ale w starszych wersjach było odwrócone:

  • -c: Zero wolnego miejsca (dobre do optymalizacji dysków wirtualnych).
  • -z: Wyczyść wolne miejsce.

wprowadź opis zdjęcia tutaj

Ale co oni robią?

Wyczyść tworzy największy plik, jaki może, i wypełnia go losowymi danymi, a następnie wypełnia zerami. To, co większość ludzi uważa za wycieranie , to przesada.

Minusem jest to, że jeśli używasz dysku wirtualnego, maszyny wirtualnej lub działasz na przestrzeni dyskowej: bazowy system pamięci będzie zmuszony przydzielić zasoby, aby przechowywać losowe dane, a następnie utrzymywać zero. Mamy nadzieję, że wtedy bazowy system pamięci zda sobie sprawę, że całe miejsce, które właśnie zostało przydzielone na dysk, można odzyskać, ponieważ wszystkie te sektory po prostu zawierają zera.

-z Zero: po prostu zapisuje zera we wszystkich sektorach. Jest to pożądana opcja z wielu powodów:

  • wycieranie losowymi danymi jest nadmierne (odczyt danych nie jest praktycznie możliwy, tj. jeden bit na raz, chociaż mikroskop nie jest możliwy)
  • niektóre dyski SSD mogą wykryć, że zapisujesz zero w sektorze, i mogą go użyć, aby oznaczyć sektor jako wolny (podobny do TRIM)
  • większość wirtualnych systemów pamięci masowej (VMWare, Hyper-V, Windows Virtual Disks, Storage Spaces) zdaje sobie sprawę, że piszesz cały sektor zer i korzystasz z okazji, aby odzyskać miejsce w podstawowym pliku pamięci
  • Dyski SSD nie będą wiedziały, że Twoim ostatecznym celem jest w gruncie rzeczy uwielbiana TRIM, i (podobnie jak dyski wirtualne) są zmuszane do wypełniania sektorów, które już zawierały zera zerami, tylko po to, abyś ponownie wypełnił je zerami. To okropne dla twoich SSD.

Źródło : Zainstalowano wirtualny dysk twardy i obserwowałem operacje we / wy, które sdelete wykonało w obu trybach.

tl; dr: Użyj opcji -z Zero. Jest szybszy, lepszy, bezpieczniejszy.

Ian Boyd
źródło