सवाल बेहतर संपीड़न के लिए विंडोज़ पर वर्चुअल डिस्क की फ्री स्पेस को शून्य कैसे करें?


बेहतर संपीड़न के लिए विंडोज़ पर वर्चुअल डिस्क की फ्री स्पेस को शून्य कैसे करें?

मैं इसके लिए एक साधारण ओपन सोर्स टूल (या कम से कम मुफ्त) चाहता हूं। यह संभवतः एक पूर्ण फ़ाइल के रूप में एक बड़ा लिखना चाहिए 0और बाद में इसे मिटा दें। केवल एक पास (यह सुरक्षा कारणों से नहीं बल्कि संपीड़न के लिए है, हम वर्चुअल मशीन का बैक अप ले रहे हैं)।

अंदर की खिड़कियों से चलना चाहिए, डिस्क से नहीं।

लिनक्स पर मैं इसे इस तरह (उपयोगकर्ता के रूप में) करता हूं:

cd
mkdir wipe
sudo sfill -f -l -l -z ./wipe/

संपादित करें 1: मैंने उपयोग करने का फैसला किया 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

यह एक पुराना संस्करण है। मैंने दूसरे आमंत्रण से -सी स्विच का उपयोग किया और यह काफी तेज़ था (सिंटैक्स केवल V1.6 से पहले पुराने संस्करणों के लिए मान्य है):

c:\>sdelete -c c: (OUTDATED!)

मेरे पास यह इंप्रेशन है जो मैं चाहता हूं। Sdelete उपकरण का उपयोग करना आसान है और पाने में आसान है।

2 संपादित करें: जैसा कि स्कॉटबैब ने नीचे दिए गए अपने जवाब में बताया था, उपकरण में एक सितंबर 2011 परिवर्तन (संस्करण 1.6) था -सी और -जे विकल्पों ने अर्थ बदल दिया है। 1.6 से आगे का सही उपयोग है

c:\>sdelete -z c:

संपादित करें 3: Sdelete और sdelete64 का एक 2.0 संस्करण है। शून्य होने पर वे छोटी गाड़ी लगते हैं। यह बहुत लंबे समय तक 100% पर फंस जाएगा। कुछ लोगों ने 10 - 40 गुना अधिक रिपोर्ट की है। पुराने संस्करण 1.61 में यह समस्या नहीं है। देख https://social.technet.microsoft.com/Forums/en-US/2ffb2539-34ba-4378-aa8a-941d243f117e/sdelete-hangs-at-100?forum=miscutils

संपादित करें 4: अब मुद्दा है गतिशील रूप से आवंटित आभासी डिस्क स्थान। यदि आपके पास 100 जीबी डिस्क है जो पूर्ण नहीं है और मेजबान पर केवल 30 जीबी का उपयोग करती है, तो शून्य भरना नाटकीय रूप से डिस्क के आकार में वृद्धि नहीं करना चाहिए क्योंकि यह गतिशील आवंटन के उद्देश्य से विरोधाभास करता है। इसके लिए एक जवाब है Oracle VM VirtualBox  https://superuser.com/q/907196/44402 - लेकिन वीएमवेयर, ज़ेन, ज़ेनसेवर इत्यादि जैसे अन्य ढेर पर, इसे अलग से उत्तर देने की आवश्यकता है।


40
2017-07-28 23:39


मूल


sdelete नौकरी के लिए सही उपकरण है, लेकिन एक सितंबर 2011 टूल में परिवर्तन (संस्करण 1.6) उपरोक्त उत्तरों को गलत बनाता है। -c तथा -z विकल्प बदल गए हैं। अब सही उपयोग है sdelete -z c:\ - scottbb
यह भी सुनिश्चित करें कि आप गाय (प्रतिलिपि पर प्रतिलिपि) शैली छवियों का उपयोग करते हैं यदि आपके पास एक ही मूलभूत स्थापना के आधार पर बहुत सारी मशीनें हैं। - Matt


जवाब:


विंडोज़ पर sysinternals उपकरण का उपयोग करें sdelete सभी खाली जगह शून्य करने के लिए। जो आदेश आप चाहते हैं वह इस तरह दिखेगा sdelete -z c:

उपयोग: sdelete [-p passes] [-s] [-q] ...
sdelete [-p passes] [-z | -c] [ड्राइव अक्षर] ...
केवल पढ़ने के लिए विशेषता हटाएं।
-सी स्वच्छ मुक्त जगह।
-पी पास ओवरराइट पास की संख्या निर्दिष्ट करता है (डिफ़ॉल्ट 1 है)।
-क त्रुटियों को मुद्रित न करें (शांत)।
-एस या -आर उपनिर्देशिका रिकर्स।
-z शून्य मुक्त स्थान (आभासी डिस्क अनुकूलन के लिए अच्छा)।

लिनक्स के लिए मैं सुझाव देता हूं कि आप इसका उपयोग करें zerofree


40
2017-07-28 23:43



मेरे वीएचडी कॉम्पैक्ट करने के लिए यहां आया था। TechNet से कुछ संबंधित लिंक साझा करना .. technet.microsoft.com/en-us/library/cc708394%28v=ws.10%29.aspx  technet.microsoft.com/en-us/library/cc708317(v=ws.10).aspx - Faiz
मुझे आश्चर्य है, अगर शून्य-भरने से लिनक्स मानक एन्क्रिप्टेड ड्राइव पर कोई सकारात्मक प्रभाव पड़ेगा LUKS डीएम-क्रिप्ट। से पहले मैं पूरी मशीन को क्लोनजिला बूटस्टिक और पूरे ड्राइव के भौतिक बैकअप से बूट करने के लिए अधीन करता हूं। - एन्क्रिप्शन के भीतर खंड को शून्य डिस्क पर बाहरी डिस्क पर शून्य सेक्शन किया जाएगा? या फिर भी सुरक्षा कारणों से यह शोर (आवंटित) शोर लिखेगा? या मुझे कच्चे घुड़सवार (एन्क्रिप्टेड सामग्री को नहीं देख रहा) क्रिप्ट ड्राइव को शून्य करना चाहिए? (और क्या यह एक अच्छा विचार है अर्थात आवंटन तालिका एक गुप्त ड्राइव के संदर्भ में भरोसेमंद है?) - Frank Nocke
अगर मैं नल को एन्क्रिप्ट करने के अलावा कुछ भी करता हूं और डिस्क पर एन्क्रिप्टेड "शोर" लिखता हूं तो मुझे आश्चर्य होगा। - Dan Pritts


विंडोज में पहले से ही एक अंतर्निहित कमांड लाइन उपकरण है जो यह करता है: CIPHER। इसके / डब्ल्यू विकल्प देखें।

तो पूरा आदेश होगा: सिफर / डब्ल्यू: सी:  (बदलने के सी: वास्तविक ड्राइव अक्षर के साथ)

(यह अप्रयुक्त स्थान, फिर 0xff को शून्य लिखता है, इसलिए आपको इसे देखना होगा और ctrl-c के साथ इसे रोकना होगा जब यह 0xff लिखना शुरू होता है - आदर्श नहीं, लेकिन यह मुफ्त में है और कम से कम XP में Windows से पहले ही उपलब्ध है)


14
2017-10-08 13:17



दिलचस्प दृष्टिकोण। सभी शून्यों को पूर्ववत करने से ठीक पहले निष्पादन तोड़ें। पहले से मौजूद उपकरण का उपयोग कर एक रचनात्मक समाधान के लिए +1! - PsychoData
मुझे आश्चर्य है कि यह पता लगाना संभव है कि यह शून्य लिखने के बाद खत्म हो गया है और फिर इसे निरस्त कर दिया गया है ... - Frederick Nord
यदि आप एसएसडी हार्ड ड्राइव का उपयोग करते हैं, तो जांचें कि आपके पास टीआरआईएम सक्षम है। फिर सभी अप्रयुक्त ब्लॉक को हार्ड ड्राइव फर्मवेयर द्वारा 0xFF पैटर्न के साथ जल्दी से मिटा दिया जाएगा। वर्चुअल सर्वर द्वारा बनाई गई आभासी डिस्क छवियों पर यह बहुत उपयोगी है। उन छवियों को अंतराल के रूप में भर दिया जाएगा, और होस्टिंग फ़ाइल सिस्टम पर फ़ाइल सिस्टम ब्लॉक मुक्त होगा। - Znik
यह बहुत अच्छी तरह से काम किया और SDelete -z से बहुत तेज (जो किसी भी अन्य प्रतिक्रिया देने के बिना 100% पर फंस गया था)। - psychowood


एसडीलेटे वर्चुअल डिस्क की कॉम्पैक्शन के लिए जगह को शून्य नहीं करेगा। SDelete मुक्त स्थान शून्य से शुरू होता है, लेकिन फिर इसे 0xff के साथ भरता है और फिर यादृच्छिक बाइट्स देखें Microsoft उत्पाद समर्थन सेवाओं को भेजने के लिए वर्चुअल सर्वर 2005 वर्चुअल हार्ड डिस्क फ़ाइल कैसे तैयार करें Compaction के लिए एक वीएचडी कैसे स्थापित करने के लिए

Precompact.exe किसी कारण से ढूंढना मुश्किल हो सकता है। मुझे एक अलग डाउनलोड करने योग्य प्रति मिली यहाँ। हालांकि यदि आपके पास विंडोज वर्चुअल पीसी है तो आप इसे% प्रोग्रामफाइल (x86)% \ Windows वर्चुअल पीसी \ एकीकरण घटक \ Precompact.iso से भी प्राप्त कर सकते हैं


6
2017-07-29 03:01



-c विकल्प के साथ sdelete शून्य शून्य है। शायद आप Windows अंतर्निर्मित सिफर उपयोगिता के बारे में सोच रहे हैं जिसमें शून्य-केवल विकल्प नहीं है? - Jeremy M
"एसडीलेटे रक्षा विभाग को मानक समाशोधन और मानक डीओडी 5220.22-एम" (दस्तावेज़ों से) को स्वच्छ करता है जो विशेष रूप से क्लस्टर से बाहर नहीं होता है। sdelete -c शून्य स्थान मुक्त करता है (इसे भरने के बाद), हालांकि विधि का उपयोग करने वाली विधि प्रीकंपैक्ट के समान नहीं है और कई मामलों में प्रीकंपैक्ट की तुलना में एक बड़ा ड्राइव होगा, जिसे वर्चुअल ड्राइव को शून्य करने के लिए डिज़ाइन किया गया था - Jim B
यह एक और उपकरण के बारे में जानना दिलचस्प है। धन्यवाद - mit
SDelete डिस्क को 0s के साथ छोड़ सकता है, लेकिन प्रीकंपैक्ट बहुत तेज़ काम करता है और इस तरह की स्थिति के लिए था। - Chris S
@romkyns इससे कोई फर्क नहीं पड़ता क्योंकि विंडोज और हाइपर-वी समर्थन के सभी आधुनिक संस्करण trim (Win7 और Hyper-V 2012 के अनुसार), कॉम्पैक्ट करने से पहले शून्य की आवश्यकता नहीं है। प्रीकंपैक्ट यूटिलिटी केवल डिस्क के हटाए गए फाइलों के साथ डिस्क के हिस्सों को शून्य करती है, जो हिस्सा कभी भी इस्तेमाल नहीं किया गया था, उसे बिना छूटा छोड़ दिया गया था। कुछ का उपयोग करना sdelete गतिशील डिस्क को स्थैतिक आकार में भर देगा, जिसे तब वास्तव में उपयोग किए जाने वाले आकार में वापस संकलित किया जा सकता है। - Chris S


fsutil खुला स्रोत नहीं है, लेकिन विंडोज के साथ जहाज है और इसलिए अतिरिक्त लागत नहीं है। मैंने इसे एक खाली डब्ल्यूडी 250 जीबी 7200 आरपीएम ड्राइव पर खाली स्थान शून्य करने के लिए उपयोग किया (F:)। यहां मैं कमांड लाइन से क्या चला रहा हूं:

fsutil volume diskfree f:

जिसने इस रिपोर्ट को दिखाया:

Total # of free bytes        : 249899469856
Total # of bytes             : 249997291520
Total # of avail free bytes  : 249899469856

मैंनें इस्तेमाल किया Total # of avail free bytes निम्नलिखित आदेशों में:

fsutil file createnew F:\clear 249899469856
fsutil file setvaliddata F:\clear 249899469856
fsutil file setzerodata offset=0 length=249899469856 F:\clear
del f:\clear

250 जीबी शून्य लिखने में लगभग 4 घंटे लग गए।


5
2017-12-16 21:08



इसका उपयोग करने के लिए यह एक शानदार तरीका है, धन्यवाद। - Luke Bakken


मैं भी 0x00 लिखने के लिए सिफर का उपयोग करने का एक तरीका ढूंढ रहा था, फिर 0xFF को खाली स्थान पर लिखना शुरू कर दिया। यह अधिकतम खाली स्थान को संपीड़ित करने की अनुमति देगा। मैं निम्नलिखित बुनियादी पावरशेल नौकरी के साथ आया हूं

आवश्यक ड्राइव के साथ डी: \ को प्रतिस्थापित करें

Function CipherFreeSpace
{
    $cipherjob = @()
    $Job = start-job -ScriptBlock {cipher /w:d:\ }
    while ($cipherjob -notcontains "Writing 0xFF")
    {
        Write-host "." -nonewline 
        Start-Sleep 2
        $cipherjob += $job | Receive-Job 
    }
    $Job | Stop-Job | Remove-Job -Force
}
CipherFreeSpace

सादर साइमन


2
2017-11-07 02:15





यदि आप वीएमवेयर का उपयोग कर रहे हैं, तो वर्चुअल ड्राइव पर किसी भी अप्रयुक्त स्थान को पुनः प्राप्त करने के लिए VMware में बनाए गए टूल का उपयोग करना एक बेहतर तरीका है।

मैंने वर्चुअल डिस्क के आकार को 28 गीगाबाइट्स से घटाकर 13 गीगाबाइट तक कम करने के लिए इसका इस्तेमाल किया। आपकी माइलेज भिन्न हो सकती है।

जब मैंने उपयोग करने की कोशिश की sdelete -z c:, वास्तव में बढ़ी हुई वर्चुअल ड्राइव का आकार 30 गीगाबाइट्स तक है, जो इसका अधिकतम आकार था।

वीएमवेयर वेबसाइट देखें और वर्चुअल हार्ड डिस्क कॉम्पैक्ट करें, जो नीचे है Using VMware Workstation > Configuring and Managing Devices > Configuring and Maintaining Virtual Hard Disks

अद्यतन करें

कभी-कभी, जीयूआई उपकरण कमांड लाइन टूल्स के रूप में काफी विश्वसनीय नहीं होते हैं। मैंने उन मुद्दों में भाग लिया है जहां जीयूआई उपकरण विफल हो जाते हैं, लेकिन कमांड लाइन टूल्स ठीक काम करते हैं। यहां के विकल्प हैं VMware Desktop 10:

C:\Program Files (x86)\VMware\VMware Workstation>vmware-vdiskmanager -h
Diskname or some other argument is missing.
VMware Virtual Disk Manager - build 1895310.
Usage: vmware-vdiskmanager.exe OPTIONS <disk-name> | <mount-point>
Offline disk manipulation utility
  Operations, only one may be specified at a time:
     -c                   : create disk.  Additional creation options must
                            be specified.  Only local virtual disks can be
                            created.
     -d                   : defragment the specified virtual disk. Only
                            local virtual disks may be defragmented.
     -k                   : shrink the specified virtual disk. Only local
                            virtual disks may be shrunk.
     -n <source-disk>     : rename the specified virtual disk; need to
                            specify destination disk-name. Only local virtual
                            disks may be renamed.
     -p                   : prepare the mounted virtual disk specified by
                            the mount point for shrinking.
     -r <source-disk>     : convert the specified disk; need to specify
                            destination disk-type.  For local destination disks
                            the disk type must be specified.
     -x <new-capacity>    : expand the disk to the specified capacity. Only
                            local virtual disks may be expanded.
     -R                   : check a sparse virtual disk for consistency and attempt
                            to repair any errors.
     -e                   : check for disk chain consistency.
     -D                   : make disk deletable.  This should only be used on disks
                            that have been copied from another product.

डिस्क को कम करने का एक उदाहरण यहां दिया गया है। जीयूआई विफल होने के समान आदेश के बावजूद यह कमांड लाइन काम करती है:

C:\Program Files (x86)\VMware\VMware Workstation>vmware-vdiskmanager.exe -k
 "H:\VMware\WindowsXP.vmdk"
  VixDiskLib: Invalid configuration file parameter.  Failed to read configuration file.
  Shrink: 100% done.

त्रुटि संदेश से शुरू हो रहा है VizDiskLib वीएमवेयर डेस्कटॉप 10 के लिए नया है और सुरक्षित रूप से अनदेखा किया जा सकता है।


1
2017-07-29 19:37



स्वयं को डीडीडीके आकार को कम करने के लिए नहीं है। यह सिकुड़ने के संचालन के लिए प्रीपेरेशन में सभी उपलब्ध खाली स्थान को शून्य में बदलने के लिए प्रयोग किया जाता है। यदि आप ऐसा नहीं करते हैं, तो हटाए गए फाइलें और अन्य अनाथ डेटा अभी भी डिस्क पर मौजूद होंगे। वीएमवेयर उपकरण हमेशा उन फ़ाइलों द्वारा कब्जा कर लिया गया डिस्क स्थान पुनः प्राप्त करने में सक्षम नहीं होंगे। जब आप सिकुड़ने वाले उपकरण को चलाते हैं तो इन "हटाई गई फ़ाइलों" को शून्य में बदलना डिस्क स्थान को पूरी तरह से पुनः प्राप्त करने योग्य बनाता है। वर्चुअल डिस्क पर फ़ाइल आकार में वृद्धि देखने का कारण यह है कि sdelete शून्य के साथ सभी उपलब्ध स्थान को भर देता है। - Leon Lucardie
इसे स्पष्ट करने के लिए धन्यवाद। मेथिंक कि टूल्स बेहतर नामकरण से लाभ उठा सकते हैं और / या जब आप इसे चलाते हैं तो उपकरण का एक-पंक्ति विवरण क्या हो सकता है। - Contango


गूगल-अप  इरेज़र 5.8.8 32-बिट अच्छी तरह से काम करता है विंडोज एक्सपी एसपी 3!


0
2018-01-11 15:44





mit,

मैंने पाया कि साइमन की शक्तियों की लिपि पूरी तरह से आपकी जरूरत है, बिना किसी संस्करण के संस्करण की समस्याओं के। (अलग-अलग संस्करणों में अलग-अलग चीजें कर रहे हैं)

इसमें एक समस्या थी, कि सिफर चल रहा था, लेकिन मैंने इसे ठीक किया।

मैंने temp फ़ोल्डर को साफ़ करने के लिए स्क्रिप्ट को और संशोधित किया:

आपको दोनों स्थानों पर अपने ड्राइव अक्षर के साथ F: \ को प्रतिस्थापित करने की आवश्यकता होगी।

Function CipherFreeSpace
{
    $cipherjob = @()
    $Job = start-job -ScriptBlock {cipher /w:F:\ }
    while ($cipherjob -notcontains "Writing 0xFF")
    {
        Write-host "." -nonewline 
        Start-Sleep 2
        $cipherjob += $job | Receive-Job 
    }
    Stop-Process -processname cipher
    Start-Sleep -s 3
    Remove-Item -recurse F:\EFSTMPWP
    $Job | Stop-Job | Remove-Job -Force
}
CipherFreeSpace

-1
2017-08-31 17:17





तीसरे पक्ष के उपकरण क्यों, जब विंडोज़ में पहले से ही "फ्री" की आवश्यकता होती है, और जितनी तेज़ी से यह कभी भी हो सकती है:

1) format X: /fs:XXXX /p:#, कहा पे X ड्राइव पत्र है; XXXX फाइल सिस्टम है, यहीं और # पास की संख्या है;

2) diskpart clean आदेश: http://technet.microsoft.com/library/cc766465.aspx, http://support.microsoft.com/kb/300415;

बीटीडब्ल्यू, आपको एक से अधिक पास की आवश्यकता नहीं है, या तो - दावा अन्यथा अप्रचलित डिस्क लाल / लिखने की रणनीतियों, उत्पादों को धक्का देने वाले लोगों, परावर्तित संचालित, या बीएस को "विशेषज्ञ सलाह" के रूप में पारित करने के लिए पुरानी जानकारी है।

संपादित करें: एनवीएम, याद किया खाली जगह अंश...


-4
2017-07-09 21:52



कई मामलों में ऐसे तीसरे पक्ष के उपकरण उपलब्ध हैं जो अच्छी या बेहतर नौकरियां करते हैं, इंस्टॉल करना आसान या अधिक विश्वसनीय होते हैं। लेकिन यह पूरी तरह से ओटी है, सवाल यह नहीं था कि यह कौन लिखता है। इस माइक्रोसॉफ्ट के अलावा Sysinternals (जो एसएसडीलेटे लिखा था) के अलावा क्योंकि वे बिल्टिन सामान से हल्के बेहतर थे। Flamewar शुरू करने के लिए बस एमएस उत्पाद "टास्कमेनर" -1 में ProcessExplorer की तुलना करें - Alojz Janez
आपने प्रश्न में "ओपन सोर्स" आवश्यकता को याद किया, है ना? - Alojz Janez