30Jul

Hoe een VirtualBox Virtual Machine te verkleinen en schijfruimte vrij te maken

Standaard maakt VirtualBox dynamische schijven die in de loop van de tijd groeien terwijl u gegevens toevoegt. Als u later echter gegevens van de virtuele machine verwijdert, merkt u dat de schijf niet automatisch krimpt. Maar u kunt een dynamische schijf handmatig verkleinen met een verborgen opdracht.

Onthoud dat dit de schijf alleen zal verkleinen als deze in omvang is gegroeid en u sindsdien gegevens hebt verwijderd. Dus, als je zojuist een dynamische schijf hebt gemaakt, zal dit niet krimpen. Maar als u een dynamische schijf hebt gemaakt, 10 GB aan gegevens erin hebt gedownload en vervolgens die 10 GB aan gegevens hebt verwijderd, kunt u de schijf met ongeveer 10 GB verkleinen.

Stap één: zorg ervoor dat u een dynamische schijf gebruikt

Dit proces werkt alleen voor dynamische schijven, die kunnen groeien en kleiner worden in omvang. Dynamische schijven kunnen bijvoorbeeld een maximale grootte hebben van maximaal 50 GB, maar ze groeien pas echt tot die maximale grootte wanneer ze zoveel gegevens bevatten. Diskettes met een vaste grootte zijn altijd hun maximale grootte.

Als u een vaste schijf hebt die u wilt verkleinen, kunt u deze eerst converteren naar een dynamische schijf en vervolgens de onderstaande instructies volgen. Als u bijvoorbeeld een vaste schijf van 50 GB hebt met slechts 20 GB aan gegevens en deze converteert naar een dynamische schijf, moet u deze mogelijk verkleinen om ruimte te maken van slechts 20 GB.

Klik met de rechtermuisknop op de virtuele machine die de schijf gebruikt en selecteer "Instellingen" om te controleren of een schijf dynamisch of vast is in VirtualBox. Klik op het tabblad "Opslag" en selecteer de schijf. Je zult zien welk type schijf het wordt getoond naast "Details".In de onderstaande schermafbeelding geeft 'Dynamisch toegewezen opslag' bijvoorbeeld aan dat dit een dynamische schijf is.

Stap twee: Schrijf nullen op de schijf in de virtuele machine

Wis alle gegevens die u niet langer wilt op de schijf in de virtuele machine om ruimte vrij te maken voordat u verder gaat. Verwijder bestanden die u niet nodig hebt, verwijder programma's die u niet meer gebruikt en leeg uw Prullenbak. Vervolgens moet je die lege ruimte overschrijven met nullen.

voor Windows gastbesturingssystemen

Als u Windows binnen de virtuele machine hebt geïnstalleerd, moet u nu de virtuele machine opstarten en de schijven defragmenteren. Zoek in de virtuele machine in het menu Start naar "Defragmenteren" en start het hulpprogramma "Schijfdefragmentatie" of "Schijfdefragmenteren en optimaliseren".Selecteer de schijf die u wilt comprimeren en klik op "Schijf defragmenteren".

Nadat het defragmentatieproces is voltooid, moet u nullen naar de lege ruimte binnen de virtuele machine schrijven. Wanneer u bestanden verwijdert, worden de verwijderde gegevens nog steeds op de schijf opgeslagen, zodat VirtualBox de schijf niet automatisch kan verkleinen. Maar, wanneer u nullen over de verwijderde bestanden schrijft, ziet VirtualBox een grote hoeveelheid nullen - lege ruimte, met andere woorden - en kan de schijf worden gecomprimeerd.

Download hiervoor het hulpprogramma SDelete van Microsoft. Pak het bestand sdelete.exe uit in een map op uw computer.

Open een opdrachtpromptvenster. Open hiervoor het menu Start, zoek naar "Opdrachtprompt" en start de snelkoppeling.

Ga naar de map met het bestand sdelete.exe door cd in te typen, op Spatie te drukken, het pad naar de map in te voeren en op Enter te drukken. Zorg ervoor dat u het pad tussen aanhalingstekens plaatst als het een spatie bevat. Het zou er als volgt uit moeten zien:

cd "C: \ pad \ naar \ map"

Als u bijvoorbeeld het bestand sdelete.exe hebt uitgepakt naar de downloadmap van uw gebruikersaccount en uw Windows-gebruikersnaam Bob is, voert u de volgende opdracht uit:

cd "C: \ Users \ bob \ Downloads"

Om snel het directorypad in te vullen, typt u gewoon cd in het opdrachtpromptvenster, drukt u op Spatie en sleept u vervolgens het mappictogram vanuit de bestandsbalk van de bestandsbeheerder.

Voer de volgende opdracht uit:

sdelete.exe c: -z

Hiermee worden nullen geschreven naar alle vrije schijfruimte op station C: .Als u een secundaire schijf wilt verkleinen die zich op een andere stationsletter op de virtuele machine bevindt, typt u de stationsletter in plaats van c: .Dit is waarvoor de tool is ontworpen. Zoals de SDelete-pagina op de website van Microsoft aantoont, is de optie -z "goed voor de optimalisatie van virtuele schijven".

U wordt gevraagd om akkoord te gaan met de licentieovereenkomst van de tool voordat u doorgaat. Klik gewoon op "Akkoord".

Wacht tot het proces is voltooid. Wanneer dit is gebeurd, sluit u uw virtuele machine af met de optie "Afsluiten" in het menu Start. U bent nu klaar om het te comprimeren.

voor Linux gastbesturingssystemen

Als u Linux op de virtuele machine hebt geïnstalleerd( met andere woorden, een Linux-gastbesturingssysteem in plaats van een Windows-gastbesturingssysteem), kunt u het defragmentatieproces overslaan en ingebouwde opdrachten gebruiken om de vrije schijfruimte op nul te zetten. We gebruiken Ubuntu als het voorbeeld hier, maar het proces zal vergelijkbaar zijn op andere Linux-distributies.

Hiertoe moet u eerst het hulpprogramma zerofree op de virtuele machine installeren. Het zou beschikbaar moeten zijn in de softwarebronnen van uw Linux-distributie. U kunt het bijvoorbeeld op Ubuntu installeren door de volgende opdracht uit te voeren op de terminal in uw virtuele machine:

sudo apt install zerofree

U kunt zerofree niet gebruiken op uw / partitie terwijl u wordt opgestart in de standaard Linux-omgeving. In plaats daarvan wil je opstarten in een speciale herstelmodus waar je normale rootpartitie niet is gemount. Start op Ubuntu uw virtuele machine opnieuw op en druk herhaaldelijk op de "Esc" -toets terwijl het opstart om toegang te krijgen tot het menu Grub. Wanneer het menu Grub verschijnt, selecteert u "* Geavanceerde opties voor Ubuntu" en drukt u op Enter.

Selecteer de optie "(herstelmodus)" die is gekoppeld aan de meest recente Linux-kernel, dat wil zeggen de optie met het hoogste versienummer bovenaan de lijst, en druk op Enter.

Selecteer "root" in het herstelmenu om te booten naar een root-shell prompt.

Druk hierna op "Enter" wanneer "Druk op Enter voor onderhoud" op uw scherm verschijnt. U ontvangt een terminalprompt.

Bepaal op de opdrachtregel met welke virtuele schijf u wilt nulstellen door de volgende opdracht uit te voeren:

df

In de onderstaande uitvoer kunnen we zien dat /dev/ sda1 hier ons enige echte schijfapparaat is. We weten dat omdat het de enige schijf met /dev/ in de meest linkse kolom is.

Ervan uitgaande dat uw virtuele machine is gemaakt met de standaardinstellingen, heeft deze alleen /dev/ sda1, wat de eerste partitie op de eerste harde schijf is. Als u de zaken anders hebt ingesteld met meerdere schijven of meerdere partities, moet u mogelijk een andere partitie of nul meerdere partities opnieuw instellen.

U bent nu klaar om de schijf op nul te zetten. Voer de volgende opdracht uit en vervang /dev/ sda1 door de apparaatnaam van de partitie waarvoor u nullen wilt schrijven. De meeste mensen hebben gewoon een /dev/ sda1-apparaat op nul gezet.

zerofree -v /dev/ sda1

Wanneer het nulproces is voltooid, voert u de volgende opdracht uit om de virtuele machine af te sluiten:

stopt

Wanneer u het bericht "Systeem gestopt" op uw scherm ziet staan, is het systeem gestopt en kunt u nu afsluitenop je virtuele machine. Sluit het venster van de virtuele machine en selecteer "Schakel de virtuele machine uit".

Stap drie: Zoek de VBoxManage-opdracht

De rest van het proces zal buiten de virtuele machine, op uw hostbesturingssysteem, worden uitgevoerd. Als u bijvoorbeeld Windows 10 op uw pc draait en Windows 7 op een virtuele machine, voert u de rest van het proces uit op Windows 10.

Deze optie wordt niet getoond in de grafische interface van VirtualBox. In plaats daarvan moet u de opdracht VBoxManage.exe gebruiken.

Lokaliseer deze opdracht om verder te gaan. In Windows vindt u het standaard in de programmamap van VirtualBox, dat standaard C: \ Program Files \ Oracle \ VirtualBox is. Als je VirtualBox in een andere map hebt geïnstalleerd, kijk daar dan.

Open een opdrachtpromptvenster. Open hiervoor het menu Start, typ cmd en druk op Enter.

Typ cd in de opdrachtprompt gevolgd door het pad van de map waarin de opdracht VBoxManage is. U moet het tussen aanhalingstekens plaatsen.

U kunt dit snel doen door cd in het opdrachtpromptvenster te typen en vervolgens het mappictogram vanuit de adresbalk van de bestandsbeheerder naar de opdrachtprompt te slepen.

Als u het standaardpad gebruikt, ziet het er als volgt uit:

cd "C: \ Program Files \ Oracle \ VirtualBox"

OPMERKING: Deze instructies gaan ervan uit dat u VirtualBox op Windows gebruikt. Als u VirtualBox op macOS of Linux gebruikt, kunt u gewoon een terminalvenster openen en de opdracht vboxmanage normaal uitvoeren, net als elk ander commando.

Stap vier: zoek het pad naar de schijf die u wilt comprimeren

Voer de volgende opdracht uit in het opdrachtpromptvenster om een ​​lijst met alle virtuele harde schijven op uw computer te bekijken:

VBoxManage.exe lijst hdds

Kijk door de lijst en identificeer het bestandspad naar de virtuele schijf die u wilt comprimeren. Laten we zeggen dat we de virtuele schijf geassocieerd met de virtuele machine met de naam "Windows 7" willen wijzigen. Zoals we in de onderstaande uitvoer kunnen zien, is het pad naar die virtuele schijf op ons systeem C: \ Users \ chris \ VirtualBox VMs \ Windows 7 \ Windows 7.vdi.

Stap vijf: Compacteer de schijf

Om de schijf te comprimeren, moet u VBoxManage.exe gebruiken met de juiste opdracht. Voer de volgende opdracht uit en vervang het pad naar het VDI-schijfbestand door het pad naar de schijf op uw systeem die u hebt gevonden met de opdracht hierboven. Zorg ervoor dat u het pad van het bestand tussen aanhalingstekens plaatst als het een spatie bevat die zich ergens in het pad bevindt.

Het zou er als volgt uit moeten zien:

VBoxManage.exe modifymedium schijf "C: \ path \ to \ disk.vdi" --compact

Bijvoorbeeld omdat het pad naar het bestand C: \ Users \ chris \ VirtualBox VMs \ Windows is7 \ Windows 7.vdi in ons voorbeeld, zouden we de volgende opdracht uitvoeren:

VBoxManage.exe modifymedium schijf "C: \ Gebruikers \ chris \ VirtualBox VM's \ Windows 7 \ Windows 7.vdi" --compact

VirtualBox zal compact zijnde schijf en u kunt de virtuele machine nadien onmiddellijk opstarten, als u dat wilt. Hoeveel ruimte u uiteindelijk bespaart, hangt af van hoeveel lege ruimte er was om te herstellen.

Overweeg ook om snapshots te verwijderen

Met VirtualBox kunt u snapshots maken voor elke virtuele machine. Deze bevatten een volledig beeld van de virtuele machine wanneer u de momentopname hebt gemaakt, zodat u deze in een eerdere staat kunt herstellen. Deze kunnen veel ruimte in beslag nemen.

Wis foto's die u niet gebruikt om meer ruimte vrij te maken. Om de snapshots te bekijken die u voor een virtuele machine hebt opgeslagen, selecteert u deze in het hoofdvenster van VirtualBox en klikt u op de knop "Snapshots" rechts van Details op de werkbalk. Als u geen momentopname meer nodig heeft, klikt u er met de rechtermuisknop op in de lijst en selecteert u 'Momentopname verwijderen' om ruimte vrij te maken.