Wie erhöhe ich die Festplattengröße der virtuellen Maschine?


257

Bildbeschreibung hier eingeben

Auf meiner virtuellen WinXP-Maschine ist nicht mehr genügend Speicherplatz vorhanden, für die ich bei der Erstellung nur 10 GB Speicherplatz zur Verfügung gestellt habe. Gibt es eine einfache Möglichkeit, es auf beispielsweise 20 GB zu erhöhen? In den VirtualBox-Einstellungen wird keine offensichtliche Option angezeigt.


Der folgende Vorschlag gibt diesen Fehler an

wim@wim-ubuntu:/media/data/winxp_vm$ VBoxManage modifyhd wim.vdi --resize 20000
VBoxManage: error: Cannot register the hard disk '/media/data/winxp_vm/wim.vdi' {46284957-2c09-4e70-8a49-bfbe0f7f681d} because a hard disk '/home/wim/VirtualBox VMs/winxp_vm/wim.vdi' with UUID {46284957-2c09-4e70-8a49-bfbe0f7f681d} already exists
VBoxManage: error: Details: code NS_ERROR_INVALID_ARG (0x80070057), component VirtualBox, interface IVirtualBox, callee nsISupports
Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, AccessMode_ReadWrite, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 210 of file VBoxManageDisk.cpp

Das Entfernen der .vdi-Datei von VirtualBox vor dem Aufrufen des Befehls VBoxManage und dem erneuten Hinzufügen war erfolgreich. Aber jetzt kann ich die virtuelle Maschine nicht booten, ich bekomme diesen besorgniserregenden Bildschirm:

Bildbeschreibung hier eingeben

Übrigens heißt es FATAL: Could not read from the boot medium! System halted.


Die vdi muss nach dem Befehl VBoxManage erneut an die VM angefügt werden. Außerdem muss die Größe der Partition in WITHIN-Fenstern geändert werden, da Sie diesen leeren Bereich haben:

Bildbeschreibung hier eingeben

Ich konnte die Größe der Partition mit der Freeware EASEUS Partition Master 9.1.0 Home Edition leicht ändern .


3
Ihr Problem ist, dass Sie die Festplatte mit einem '/ media / data'-Speicherort verknüpft haben und dass sie sich nicht am ursprünglichen' / home / wim / VirtualBox-VMs'-Speicherort befindet. Ich habe geantwortet, wie ich das behoben habe.
Stolsvik

1
Ich habe meine Erfahrungen hier detailliert dargestellt: kmonsoor.wordpress.com/2012/05/26/virtualbox-increase-disk-size Die unten stehende "akzeptierte" Antwort ist bei weitem nicht ganz richtig.
kmonsoor

Es gibt eine weitere Möglichkeit, die vorhandene VDI in eine neue leere VDI zu kopieren, deren Größe größer ist als die vorhandene. (Refer- justintung.com/2011/01/06/… )
parasrish

Beachten Sie außerdem, dass eine Größenänderung möglicherweise nicht hilft, da die "vdi" -Größe zugenommen hätte. Basierend auf der "vm-os-installation" bleibt Ihre primäre Partition jedoch unverändert, und der neu zugewiesene Speicherplatz wird normalerweise als "nicht zugeordnet" angezeigt ". Sie müssen daher die "Partition neu zuweisen" (siehe den Link oben).
Parasrish

Antworten:


325

Öffnen Sie ein Terminal und navigieren Sie zu dem Ordner mit dem VirtualBox-Image. Verwenden Sie dann den folgenden Befehl:

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB

Ersetzen YOUR_HARD_DISKund SIZE_IN_MBmit Ihrem Bildnamen und gewünschter Größe. sudoMöglicherweise ist dies auf einigen Computern erforderlich, oder es tritt ein Fehler auf. Diese Antwort und eine ausführlichere Erklärung finden Sie hier auf webupd8 . Dank an Andrew für das Posten dieser Antwort.

Nach der Größenänderung muss der zusätzliche virtuelle Festplattenspeicher partitioniert und formatiert werden, damit der Gast ihn verwenden kann. Dies kann mit gparted geschehen, indem der Gast von einer Live-ISO gebootet wird. Wir können auch die Größe der vorhandenen Partition mit gparted ändern. Dazu müssen wir möglicherweise /swapeine neue Swap-Partition deaktivieren und erstellen.


20
+1. Ich habe dies nur verwendet, um die Größe meiner Windows 7-Festplatte von 20 auf 30 GB zu erhöhen, und es hat reibungslos funktioniert (keine Aufhebung der Registrierung usw. erforderlich). $ VBoxManage modifyhd Windows7.vdi --resize 30720 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% Zuerst hat Windows den vergrößerten Speicherplatz nicht erkannt, aber nach dem Ausschalten konnte ich das integrierte Datenträgerverwaltungs-Tool verwenden, um die Größe meiner C: -Partition zu erhöhen.
Jonik

3
+1, Dies ist sicherlich der sauberste Weg, es zu tun.
Starx

20
@asd Das Ändern der Festplattengröße reicht nicht aus. Sie müssen auch die Größe der Partition ändern.
Bruno

5
Ich denke, in neueren Versionen von VirtualBox ist es .\VBoxManage.exe modifymedium disk 4d30d154-f8c2-4a3b-bd8b-ddcfbfe64aaf --resize 30720jetzt. modifyhdDas funktioniert aber auch - es gibt eine Abwärtskompatibilität mit älteren Befehlen.
TranslucentCloud

2
Ich habe gerade die Größe der VDI-Datei von 25G auf 120G geändert, aber der Festplattenmanager des Windows7-Systems kann den nicht zugewiesenen Speicherplatz immer noch nicht erkennen. Dies wird durch eine Snapshot-Datei verursacht (ich habe bereits einen Snapshot). Wenn ich jedoch versuche, den Snapshot zu löschen, stürzt der VirtualBox-Bericht ab, sodass ich den Snapshot nicht löschen kann. Irgendwelche Ideen? Mein Gast win7 sieht noch 25G. Vielen Dank.
ollydbg23

25

Folgendes hat für mich funktioniert:

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB

Ich verstehe jedoch, wie die Laufleistung variieren kann :-) In Bezug auf die Größenänderung der Partition konnte ich in Windows 7 die Größe des angezeigten Bildschirms ändern, indem ich mit der rechten Maustaste auf das Laufwerk C: im unteren Bereich klickte und die Option zum Erweitern des Volumens auswählte.

Computerverwaltungsbildschirm


12
sudoist nicht notwendig. Es ist möglicherweise beschädigt Berechtigungen in Ihrem Home - Verzeichnis, die Sie auffordert , verwenden sudofür Virtualbox , die eine ist schlecht Idee.
Lekensteyn

1
@Lekensteyn: Gut zu wissen, dass es nicht nötig ist. Ich habe es benutzt, weil andere gesagt hatten, es funktioniere nicht ohne root zu sein. In Bezug auf Berechtigungsverfälschungen funktioniert chmod gut, um solche Fehler zu beheben.
Richard Povinelli

@Lekensteyn: chown behebt Besitzfehler. Ich erwähne chmod und chown, weil ich das Problem, auf das Sie sich beziehen, schon oft beheben musste :-)
Richard Povinelli

2
Dies ist ideal für Windows, aber wenn Sie ein Linux-Gastbetriebssystem haben, kann dieser Link bei der Größenänderung
Jon

Wenn Sie Windows unter Linux ausführen, müssen Sie diese Optionen befolgen und die Festplatte erweitern. Andernfalls fügt Windows nicht den zusätzlichen Speicherplatz hinzu, den wir hinzugefügt haben
Ajith R Nair,

18

Wim, ich denke du musst es zuerst von Vbox abmelden. Datei, Media Manager, Klicken Sie auf Ihre Festplatte, und heben Sie die Registrierung auf. Dann versuchen Sie es noch einmal.


2
In VirtualBox unter Linux nicht erforderlich. Musste nur zuerst das Gastbetriebssystem komplett herunterfahren.
Underverse

15

Sie können dies auch über das VirtualBox-Menü tun:

Wählen Sie File->Virtual Media Manager ...

Ein Fenster öffnet sich: Bildbeschreibung hier eingeben

Wählen Sie Ihre Festplatte aus und wählen Sie Properties. Bewegen Sie nun den Schieberegler unten.

Nachdem Sie die virtuelle Maschine gestartet haben, wird der neue Speicherplatz von Windows nicht erkannt.

Öffnen Computer ManagementSie in Windows (suchen Sie im Startmenü danach) und wählen Sie im linken Menü Storage-> Disk Management. Wählen Sie Ihre Partition (wahrscheinlich C :), klicken Sie mit der rechten Maustaste darauf und wählen Sie Extend Volume .... Klicken Sie sich jetzt einfach durch den Assistenten und Sie sind fertig.


Müssen Sie das Releasevorher tun ? Der Schieberegler ist derzeit abgeblendet. Oder haben Sie sich für eine dynamische Partition entschieden?
Royi

Royi: Wenn Sie das virtuelle Laufwerk erstellen, stellen Sie sicher, dass es eine dynamische Größe hat.
Lenooh

10

Nachdem ich die Größe geändert hatte und die Größenänderung auf meinem Windows XP-Gastcomputer nicht angezeigt werden konnte, musste ich

  1. klone es
  2. Ändern Sie die Größe mit "VBoxManage modifyhd winxppro \ Clone.vdi --resize 30720" und alles funktionierte

In anderen Foren habe ich festgestellt, dass sich Snapshots störend auf die Größenänderung auswirken können und nicht alle Snapshots aufgrund von Fehlern entfernen können. Die einzige für mich gefundene Lösung bestand darin, sie zu klonen, um die Snapshots zu entfernen und dann die Größe zu ändern, und alles funktionierte. Für die Größenänderung außerhalb von Fenstern kann eine mitgelieferte Boot-CD hilfreich sein, die Sie hier finden


6

Ich hatte das gleiche Problem, als ich eine Festplatte verschoben und das Original durch einen Symlink ersetzt hatte. Dies funktioniert danach in Ordnung, aber Sie haben Probleme mit dem Befehl 'modifyhd', da dies anscheinend den Pfad zur VDI-Datei kanonisiert, wenn Sie damit arbeiten. Es sieht also so aus, als würden Sie versuchen, eine neue Festplatte mit derselben UUID, jedoch unter einem anderen Pfad hinzuzufügen - oder so ähnlich.

Es gab zwei Probleme:

  1. Die Festplatte musste aus der VM entfernt werden, die sie verwendet, aber dann auch "aus der VirtualBox-Liste der Festplatten". Dies wurde mit dem Befehl 'closemedium' behoben, der es von dieser Liste entfernt.

  2. Die zu ändernde Festplatte war eine "Festplatte" anstelle von "dynamisch", und nur dynamische Festplatten können geändert werden. Dies wurde mit einem "Klon" -Befehl behoben (der Klon ist dynamisch), und ändern Sie dann die Größe der resultierenden Festplatte.

Dies ist mein Protokoll, wie es gemacht wurde. Bemerken , dass ich nicht an irgendeiner Stelle läuft als root , außer wenn ich danach tun , um die Größe ändern der Partition und Dateisystem.

Entfernen Sie die Zuordnung zur Festplatte von VM.

PROBLEM STILL PERSISTEN:

virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage modifyhd TestInception\ 64\ bit.vdi --resize 8192
VBoxManage: error: Cannot register the hard disk '/datadisk/VirtualBox VMs/TestInception 64 bit/TestInception 64 bit.vdi' {6cd99209-e4db-4178-a6c2-53f9581b1fad} because a hard disk '/home/virt_box/VirtualBox VMs/TestInception 64 bit/TestInception 64 bit.vdi' with UUID {6cd99209-e4db-4178-a6c2-53f9581b1fad} already exists
VBoxManage: error: Details: code NS_ERROR_INVALID_ARG (0x80070057), component VirtualBox, interface IVirtualBox, callee nsISupports
VBoxManage: error: Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 178 of file VBoxManageDisk.cpp

Ah, die Platte ist noch "im System":

virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage list hdds
UUID:        ba58276a-bbe1-4354-8ae5-246bdac390c8
Parent UUID: base
Format:      VDI
Location:    /home/virt_box/VirtualBox VMs/TestInception 32 bit/TestInception.vdi
State:       locked write
Type:        normal
Usage:       TestInception 32 bit (UUID: a693ac62-7caa-4f11-9d00-51d3a149f5f7)

UUID:        6cd99209-e4db-4178-a6c2-53f9581b1fad
Parent UUID: base
Format:      VDI
Location:    /home/virt_box/VirtualBox VMs/TestInception 64 bit/TestInception 64 bit.vdi
State:       created
Type:        normal

Entfernen / Löschen der Festplatte aus der VirtualBox-Festplattenliste ("closemedium"):

virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage closemedium disk 6cd99209-e4db-4178-a6c2-53f9581b1fad
virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage list hdds
UUID:        ba58276a-bbe1-4354-8ae5-246bdac390c8
Parent UUID: base
Format:      VDI
Location:    /home/virt_box/VirtualBox VMs/TestInception 32 bit/TestInception.vdi
State:       locked write
Type:        normal
Usage:       TestInception 32 bit (UUID: a693ac62-7caa-4f11-9d00-51d3a149f5f7)

Versuchen Sie die Größenänderung erneut:

virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage modifyhd TestInception\ 64\ bit.vdi --resize 8192
0%...
Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage: error: Resize hard disk operation for this format is not implemented yet!

Verdammt, "feste Größe" funktioniert nicht! 'clonehd' zur Rettung, da so eine 'dynamisch zugewiesene' geklonte Festplatte übrig bleibt:

virt_box@TestBox:/datadisk/VirtualBox VMs/TestInception 64 bit$ VBoxManage clonehd TestInception\ 64\ bit.vdi TestInception\ 64\ bit-cloned.vdi
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: 8e237500-173b-401a-9e63-9e64da110da9

JETZT DIE GRÖSSE ÄNDERN (augenblicklich):

virt_box@TestBox:/datadisk/VirtualBox VMs/TestInception 64 bit$ VBoxManage modifyhd --resize 8192 TestInception\ 64\ bit-cloned.vdi 
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

DANN BEFESTIGEN SIE EINIGE VM, UM DIE GRÖSSE ZU ÄNDERN. Dies geschieht als root. Angenommen, Sie haben nur eine Partition und tauschen diese möglicherweise aus.

# fdisk /dev/sdb  # <- The extra disk, just attached to be resized
// The procedure looks like this:
// m - print help
// p - print table
// d ... - delete partition (delete both if you have root and swap)
// n - new partition (create root/first partition starting on exact same sector as before, typically 2048, but ends on last, or last minus swap)
//  ... n.. (.. then add the swap partition. Calculate how many sectors using original table)
// t - change type of partition (swap partition, if any, to 82 - not 83 which is "normal Linux").
// w - write partition table (write out, with the resized partition)

# e2fsck -f /dev/sdb1

e2fsck 1.42.5 (29-Jul-2012)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sdb1: 99918/122160 files (0.3% non-contiguous), 471032/487936 blocks

# resize2fs /dev/sdb1

resize2fs 1.42.5 (29-Jul-2012)
Resizing the filesystem on /dev/sdb1 to 1965824 (4k) blocks.
The filesystem on /dev/sdb1 is now 1965824 blocks long.

Dies funktionierte für mich, folgte der Anleitung hier: yinfor.com/2015/05/…
marijnz0r

4

Dies funktionierte für mich mit Virtualbox 5.2.6 auf Ubuntu 16.04 Host Machine und Windows 10 Guest: Öffnen Sie Virtualbox Manager, klicken Sie auf Global Tools (obere rechte Ecke) und wählen Sie Virtual Media Manager. Klicken Sie auf die Registerkarte Festplatte und wählen Sie Ihr Gastbetriebssystem aus. Klicken Sie unten im Feld auf die Registerkarte Attribute. Unten sehen Sie die Größe der virtuellen Festplatte, und mit dem Schieberegler können Sie die Größe nach Ihren Wünschen erhöhen. (Mit dieser Methode können Sie die Größe nur vergrößern, nicht verkleinern.) Klicken Sie auf Übernehmen. Starten Sie Ihr Windows-Gastbetriebssystem, öffnen Sie die Computerverwaltung, klicken Sie mit der rechten Maustaste auf das Laufwerk C: und wählen Sie Volume erweitern, um das Dateisystem mit dem nicht zugewiesenen Teil zu erweitern.

Das ist alles was ich tun musste, funktioniert perfekt für mich.


Hat super funktioniert. Sollte dies nicht die akzeptierte Antwort sein, zumindest für die neuesten Versionen von VirtualBox?
AlwaysLearning

2

Ein sicherer Weg ist, dasselbe zu tun wie auf eine größere Festplatte, die nicht in einer VM ausgeführt wird. Verwenden Sie zuerst ccleaner oder ein ähnliches Programm in XP, um alle Junk-Dateien zu bereinigen, die es kann. Erstellen Sie dann eine sekundäre virtuelle Festplatte mit der gewünschten Größe. Booten Sie mit der Clonezilla-ISO in Ihrem virtuellen ODD-Laufwerk und klonen Sie mit der ausgewählten Option "Größe auf neue Partitionsgröße anpassen". Legen Sie dann die neue virtuelle Festplatte als primäre Festplatte fest und löschen Sie die alte erst, wenn Sie wissen, dass sie funktioniert hat.


2

Ich habe den gleichen Fehler erhalten, bis ich sudo zum Ausführen des Befehls verwendet habe. Dann hat es einwandfrei funktioniert. Ich muss immer noch eine Partition innerhalb des Gasts haben, um zusätzlichen Speicherplatz zu nutzen.


Einige Leute berichteten, dass dies dazu führt, dass das Heimverzeichnis schlechte Berechtigungen hat
Jonathan

2

Stellen Sie sicher, dass Sie als Benutzer mit Schreibrechten für die Disk-Image-Datei angemeldet sind. Dann renne

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB  

Hat bei mir beim ersten mal nachgefragt


1
Mussten Sie neu installieren / neu formatieren / neu partitionieren? oder hat es einfach gleich wieder hochgefahren?
Jonathan

2

Wenn Ihr Host-Computer Windows ist, können Sie den folgenden Befehl ausführen, um die Größe der VDI-Festplatte in der virtuellen Box zu erhöhen oder zu verringern:

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd "C:\Users\your_user_name\VirtualBox VMs\Ubuntu18LTS\Ubuntu18LTS.vdi" --resize 20000

Ersetzen Sie im obigen Befehl Ihren_Benutzernamen durch den tatsächlichen Windows-Benutzer und 20000 ist MB Festplattengröße.


1

Tatsächlich scheint es, dass modifyhdIhnen allein in einigen Fällen nichts nützt. Ich habe meine WinXP-VDI tatsächlich erweitert, indem ich das Image nach der Erweiterung geklont habe.

Hier ist die vollständige Schritt-für-Schritt-Anleitung, die vor ein paar Wochen für mich funktioniert hat: http://libtronics.com/2011/07/resize-virtualbox-disk-for-winxp-guest/


Können Sie bitte die Schritte hier erklären? Antworten, die nur einen Link zu einer anderen Website enthalten, sind hier in der Regel verpönt und können gelöscht werden .
Tom Brossman

1
Nun, Sie müssen verstehen, was modifyhd macht, was nicht viel mehr ist als die zugrunde liegende virtuelle Festplatte zu erweitern, das ist alles. Sie müssen das darauf befindliche Dateisystem noch erweitern.
Marcin Kaminski

1

Hier finden Sie eine Möglichkeit, die Größe Ihrer VirtualBox-Festplatte zu ändern, unabhängig davon, ob es sich um eine Festplatte mit festem oder dynamischem Format handelt. Insbesondere wird dieser Fehler verhindert:

Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage: error: Resize hard disk operation for this format is not implemented yet!

⚠️ Sichern Sie die virtuelle Festplatte. Sie wissen nie, was schief gehen könnte.

Auf Ihrem Gastgeber:

  1. Öffnen Sie ein Terminalfenster.

    Unter Windows: Öffnen Sie die Eingabeaufforderung cmd.

  2. Wechseln Sie in das Verzeichnis mit der virtuellen Festplatte, deren Größe Sie ändern möchten. Zum Beispiel:

    cd "My VMs"
  3. Erstellen Sie eine neue VirtualBox-Festplatte mit dem gewünschten Dateinamen, der gewünschten Größe (in Megabyte) und dem gewünschten Format (entweder Standard(dynamisch) oder Fixed). So erstellen Sie beispielsweise eine Festplatte mit einem festen Format von 50 GB mit dem Namen MyNewDisk.vdi:

    VBoxManage createmedium --filename "MyNewDisk.vdi" --size 50000 --variant Fixed

    Wenn dies VBoxManagenicht als Befehl erkannt wird, geben Sie den vollständigen Pfad dazu an. Es befindet sich im Installationsverzeichnis von VirtualBox. Unter Windows würde der obige Befehl folgendermaßen lauten:

    "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createmedium
        --filename "MyNewDisk.vdi" --size 50000 --variant Fixed
  4. Kopieren Sie den Originaldatenträger auf den neuen Datenträger.

    VBoxManage clonemedium "MyOriginalDisk.vdi" "MyNewDisk.vdi" --existing
  5. Die Größenänderung ist fertig! Sie können die Eigenschaften der neuen Festplatte überprüfen, wenn Sie Folgendes möchten:

    VBoxManage showmediuminfo "MyNewDisk.vdi"
  6. Ändern Sie die virtuelle Maschine, um stattdessen die neue Festplatte zu verwenden.

Als Nächstes müssen Sie auf Ihrem Gastbetriebssystem die Größe der Partitionen ändern, um den neu verfügbaren Speicherplatz zu nutzen.


1

Für diejenigen, die Windows auf einer VHD haben, wie ich es getan habe, konvertieren Sie zuerst zu VDI, indem Sie mit dem folgenden Linux-Befehl klonen. (Hinweis: Windows VM ist ausgeschaltet.)

VBoxManage clonehd Windows10.vhd Windows10.vdi --format vdi

Dies wird den vhd duplizieren.

Dann kann die Größe des VDI wie folgt geändert werden. Beachten Sie, dass der VDI erst nach seiner Verwendung tatsächlich wächst.

VBoxManage modifyhd Windows10.vdi --resize 80000

Nach dem Reparieren des Speicherladevorgangs in der VM-Hostsoftware und dem Einschalten der VM wird Windows gestartet, die Partition bleibt jedoch gleich groß. Google für ein Windows-Tool, mit dem die Größe der C-Laufwerkpartition geändert werden kann. Ich habe EaseUs Partition Master verwendet, um die C-Laufwerkpartition auf meine neue Größe zu vergrößern.

Schließlich kann die VHD gelöscht werden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.