Jak zera wypełnić wolne miejsce na dysku wirtualnym w systemie Windows, aby uzyskać lepszą kompresję?
Chciałbym do tego proste narzędzie typu open source (lub przynajmniej bezpłatne). Prawdopodobnie powinien napisać pełny tak duży plik, jak to możliwe, 0
a następnie go usunąć. Tylko jeden przebieg (nie ze względów bezpieczeństwa, ale ze względu na kompresję, wykonujemy kopię zapasową maszyn wirtualnych).
Powinien być uruchamiany z okien systemu Windows, a nie z dysku.
W systemie Linux robię to tak (jako użytkownik):
cd
mkdir wipe
sudo sfill -f -l -l -z ./wipe/
Edycja 1: Zdecydowałem się użyć sdelete z zaakceptowanej odpowiedzi. Rzuciłem okiem na pomoc 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
To jest stara wersja. Użyłem przełącznika -c od 2. wywołania i było to dość szybkie (składnia jest poprawna tylko dla starszych wersji wcześniejszych niż 1.6):
c:\>sdelete -c c: (OUTDATED!)
Mam wrażenie, że robi to, co chcę. Narzędzie sdelete jest łatwe w użyciu i łatwe do zdobycia.
Edycja 2: Jak wskazał scottbb w swojej odpowiedzi poniżej, we wrześniu 2011 r. Nastąpiła zmiana narzędzia (wersja 1.6). Opcje -c i -z zmieniły znaczenie. Prawidłowe użycie od wersji 1.6 to
c:\>sdelete -z c:
Edycja 3: Istnieje wersja 2.0 sdelete i sdelete64. Podczas zerowania wydają się być błędne. Wygląda na to, że utknął na 100% przez bardzo długi czas. Niektóre osoby zgłosiły 10 - 40 razy dłużej. Starsza wersja 1.61 nie ma tego problemu. Zobacz https://social.technet.microsoft.com/Forums/en-US/2ffb2539-34ba-4378-aa8a-941d243f117e/sdelete-hangs-at-100?forum=miscutils
Edycja 4: Teraz jest kwestia dynamicznie przydzielanego miejsca na dysku wirtualnym . Jeśli masz dysk 100 GB, który nie jest pełny i używa tylko 30 GB na hoście, wypełnienie zerem nie powinno radykalnie zwiększyć rozmiaru dysku, ponieważ jest to sprzeczne z celem dynamicznej alokacji . Istnieje odpowiedź na Oracle VM VirtualBox
https://superuser.com/q/907196/44402 - ale na innych stosach, takich jak VMWare, Xen, XenServer itp., Należy odpowiedzieć osobno.
sdelete
jest właściwym narzędziem do pracy, ale zmiana narzędzia z września 2011 r. (wersja 1.6) powoduje, że powyższe odpowiedzi są nieprawidłowe.-c
I-z
opcje zmieniły znaczenie. Prawidłowe użycie to terazsdelete -z c:\
Odpowiedzi:
W systemie Windows użyj narzędzia sysinternals sdelete, aby wyzerować całą pustą przestrzeń. Polecenie, które chcesz wyglądać tak
sdelete -z c:
.W przypadku Linuksa sugeruję użycie zerofree .
źródło
System Windows ma już wbudowane narzędzie wiersza polecenia, które wykonuje to: CIPHER. Zobacz jego opcję / W.
Zatem kompletne polecenie brzmiałoby : cipher / w: c: (zamień c: na rzeczywistą literę dysku)
(zapisuje zera w nieużywanym miejscu, a następnie 0xff, więc musisz go obejrzeć i zatrzymać za pomocą ctrl-c, gdy zaczyna pisać 0xff - nie jest idealny, ale jest darmowy i już dostępny w systemie Windows od co najmniej XP)
źródło
SDelete nie wyzeruje miejsca na kompaktowanie dysku wirtualnego. SDelete zaczyna od wyzerowania wolnego miejsca, ale następnie wypełnia go 0xff, a następnie losowymi bajtami. Zobacz, jak przygotować plik wirtualnego dysku twardego Virtual Server 2005, aby wysłać go do Microsoft Support Services Aby dowiedzieć się, jak ustawić VHD do zagęszczania
Z jakiegoś powodu może być trudno znaleźć plik Precompact.exe. Znalazłem oddzielna kopię pobrania tutaj . Jeśli jednak masz wirtualny komputer z systemem Windows, możesz go również pobrać z% programfiles (x86)% \ Windows Virtual PC \ Integration Components \ Precompact.iso
źródło
trim
(od Win7 i Hyper-V 2012), nie ma potrzeby zerowania przed kompaktowaniem. Narzędzie PreCompact wyzerowało tylko części dysku z usuniętymi plikami, część, która nigdy nie była używana, pozostała nietknięta. Użycie czegoś takiegosdelete
wypełniłoby dysk dynamiczny do statycznego rozmiaru, który można by następnie spakować z powrotem do faktycznie używanego rozmiaru.fsutil
nie jest open source, ale jest dostarczany z systemem Windows i dlatego nie kosztuje nic dodatkowego. Użyłem go do wyzerowania wolnego miejsca na pustym dysku WD 250 GB 7200 RPM (F:
). Oto, co uruchomiłem z wiersza poleceń:Który pokazał ten raport:
Użyłem
Total # of avail free bytes
następujących poleceń:Zapisanie 250 GB zer zajęło około 4 godzin.
źródło
Ja również szukałem sposobu, w jaki Cipher mógłby zapisać tylko 0x00, a następnie wyjść, gdy zacznę zapisywać 0xFF w wolnym miejscu. Umożliwi to skompresowanie maksymalnej ilości wolnego miejsca. Wymyśliłem następujące podstawowe zadanie PowerShell
zamień d: \ na wymagany dysk
Pozdrawiam Simon
źródło
Jeśli korzystasz z VMware, znacznie lepszym sposobem jest użycie narzędzi wbudowanych w VMware, aby odzyskać wszelkie nieużywane miejsce na dysku wirtualnym.
Użyłem tego, aby zmniejszyć rozmiar dysku wirtualnego z 28 gigabajtów do 13 gigabajtów. Twój przebieg może się różnić.
Kiedy próbowałem użyć
sdelete -z c:
, faktycznie zwiększyło rozmiar dysków wirtualnych do 30 gigabajtów, co było jego maksymalnym rozmiarem.Zobacz stronę VMware i Kompakt wirtualny dysk twardy , który znajduje się poniżej
Using VMware Workstation > Configuring and Managing Devices > Configuring and Maintaining Virtual Hard Disks
.Aktualizacja
Czasami narzędzia GUI nie są tak niezawodne, jak narzędzia wiersza poleceń. Natknąłem się na problemy, w których narzędzia GUI zawodzą, ale narzędzia wiersza poleceń działają dobrze. Oto opcje
VMware Desktop 10
:Oto przykład zmniejszania dysku. Ten wiersz poleceń działał pomimo niepowodzenia tego samego polecenia z GUI:
Komunikat o błędzie rozpoczynający się od
VizDiskLib
jest nowy w VMware Desktop 10 i można go bezpiecznie zignorować.źródło
Google-up Eraser 5.8.8 32-bit Działa ładnie nawet w systemie Windows XP SP3 !
źródło
Mit
Odkryłem, że skrypt Powershell Simona zrobił dokładnie to, czego potrzebujesz, bez problemów z wersją sdelete. (przełączniki robią różne rzeczy w różnych wersjach)
Miał jeden problem, że szyfr działał, ale to naprawiłem.
Następnie zmodyfikowałem skrypt, aby wyczyścić folder tymczasowy:
Konieczne będzie zastąpienie F: \ literą dysku w obu miejscach.
źródło
Dlaczego narzędzia innych firm, skoro system Windows zawiera już wszystko, czego kiedykolwiek będziesz potrzebować, „za darmo” i tak szybko, jak to możliwe:
1)
format X: /fs:XXXX /p:#
, gdzieX
jest litera dysku;XXXX
to system plików, Yeither i#
liczba przejść;2)
clean
polecenie diskpart : http://technet.microsoft.com/library/cc766465.aspx , http://support.microsoft.com/kb/300415 ;Przy okazji nie potrzebujesz więcej niż jednego przebiegu - twierdzenie inaczej jest przestarzałą informacją o przestarzałych strategiach zapisu / czerwonego dysku, ludzi pchających produkty, napędzanych paranoią lub bs przekazywanych jako „porady ekspertów”.
Edycja: nvm, brakowało części wolnego miejsca ...
źródło