Warum kann ich eine dynamische VDI mit dem Befehl modifyhd nicht in der Größe ändern?

29

Ich sehe hier Wie erhöhe ich die Festplattengröße der virtuellen Maschine .

Es sollte mit einem Befehl wie funktionieren

VBoxManage modifyhd xp.vdi --resize 2000

Wenn das VDI eine feste Größe hat, können Sie diesen Fehler erhalten:

~/VirtualBox VMs/xp$ VBoxManage modifyhd xp.vdi --resize 2000
0%...
Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage: error: Resize hard disk operation for this format is not implemented yet!

Die Diskussion und Lösung dafür ist hier .

Aber ich bekomme diesen Fehler, während mein VDI dynamisch ist

~/VirtualBox VMs/xp$ VBoxManage showhdinfo xp.vdi
UUID:           8880dc58-cd0c-4ffb-a583-f8dd50eda98e
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       /home/cip/VirtualBox VMs/xp/xp.vdi
Storage format: VDI
Format variant: dynamic default
Capacity:       8192 MBytes
Size on disk:   4693 MBytes
In use by VMs:  xp (UUID: e2b70963-3c26-41cf-88f6-4e03ca721e2d)

Warum das?

Gemeinschaft
quelle
gleiches problem hier mit ubuntu 16.04lts und dynamischem vdi. sehr seltsam
Luckyrings

Antworten:

26

Zur Verwendung haben VBoxManage modifyhdwir folgende Einschränkungen:

  • Laufwerke müssen im VDI- oder VHD-Format vorliegen.
  • Laufwerke müssen im dynamischen Format vorliegen und dürfen nicht fest sein (eine Festplatte kann durch Erstellen eines Klons in ein dynamisches Format konvertiert werden).
  • Die Laufwerkgröße wirkt sich nur auf die logische Größe aus, nicht auf die physische Größe.
  • Es ist nicht möglich, ein Laufwerk auf die physische Größe oder darunter zu verkleinern.
  • Zum Verkleinern der physischen Größe müssen wir nicht genutzten Speicherplatz mit füllen 0.
  • Ein Windows-VDI muss möglicherweise defragmentiert werden, bevor seine physische Größe verringert werden kann.

Im obigen Beispiel wurde versucht, die Größe eines dynamischen Datenträgers mit einer physischen Größe von 4693 MB auf 2000 MB zu ändern, was nicht möglich ist. Daher der Fehler.

Takkat
quelle
1
Ich bin auch hier gestolpert. Was für ein Schmerz.
Nicolas
2
Um Laufwerke im festen Format zu ändern, folgen Sie der Antwort von @ ripper234
Sharun
Überprüfen Sie meine Antwort es hat alle Details, die Sie benötigen und ich kann bestätigen, dass es funktioniert
Mauricio Gracia Gutierrez
Ich habe dieses Bild vor über zwei Jahren erstellt. Ich hatte längst vergessen, dass es eine feste Größe hat und nicht dynamisch ist. Das Lesen in Ihrer Antwort hat mich daran erinnert. Ich habe über eine Stunde damit verbracht, herauszufinden, warum ich das nicht konnte: (... Danke
Madivad
Danke, das hat geholfen. Für Linux vergessen Sie nicht, den pvresizeBefehl auszuführen , um diesen Platz für Linux zu nutzen
Maksim Luzik
24

Diese Problemumgehung hat bei mir funktioniert:

  1. Maschine ausschalten
  2. Erstellen Sie über die Admin-Oberfläche ein neues Laufwerk mit der gewünschten Größe
  3. Verwenden Sie VBoxManage Clonemedium mit der --existingFlagge

    VBoxManage clonemedium <source-guid> <destinatin-guid> --existing
    

Hinweis : Der neue Datenträger verfügt nun über nicht zugewiesenen Speicherplatz, und Sie müssen gparted verwenden, um die Größe auf das Maximum zu erweitern.

Ich bin mir nicht sicher, warum die VirtualBox-Leute das oben genannte nicht verwenden konnten, um dies zu implementieren, anstatt es zu werfen VBOX_E_NOT_SUPPORTED... zumindest einen Link dazu :)

ripper234
quelle
1
Wie kann ich den überschüssigen Speicherplatz auf Windows zuweisen?
Ken
4
@ Ken nicht sicher, ob Sie es herausgefunden haben; Start -> Ausführen -> diskmgmt.msc, klicken Sie mit der rechten Maustaste auf C: (oder was auch immer das primäre Laufwerk ist) und wählen Sie Erweitern.
Trent
2
das hat geholfen. Ich habe nicht mit GUID, sondern mit Laufwerk Dateiname
Luckyrings
3
@ ripper234 Die drei Schritte bedürfen einer eingehenden Erklärung - für Leute wie mich, die sich nicht sicher sind, was sie tun. In 2) erstellen wir eine neue Festplatte oder was? .vdi .vdmk ?? Bitte geben Sie ein richtiges Beispiel, vielleicht mit einer Grafik. Auch 3) Was macht Clonemedium im Gegensatz zu Clonehd? Woher kommen die beiden Anleitungen - insbesondere die Zielanleitung - existiert sie bereits, obwohl wir klonen? Vielen Dank
mwarren
Vielen Dank. Jetzt wurde ich als Windows-Benutzer hierher geleitet (obwohl dies askUbuntu ist). Daher möchte ich hier hinzufügen, dass Sie in der Windows-Version von VBoxManage anstelle der VM die Pfade zu den virtuellen Festplatten eingeben müssen GUIDs.
Sean Burchett
4

Hier ist der gesamte Prozess, ich werde versuchen, so detailliert wie möglich zu sein

  1. Stellen Sie sicher, dass sich der Computer, dessen Größe Sie vergrößern möchten, im Status "Herunterfahren" befindet (nicht im Status "Gespeichert" oder in einem anderen Status).

In meinem Fall handelt es sich um eine Maschine mit einer Größe von 32 GB, die als SMALL VM bezeichnet wird

  1. Erstellen Sie eine neue virtuelle Maschine mit der neuen gewünschten Größe

In meinem Fall habe ich beschlossen, eine neue virtuelle Maschine mit 70 GB zu erstellen, während der Inhalt der kleinen Maschine in dieser neuen VM wiederhergestellt wurde, und ich werde dies als GROSSE VM bezeichnen

  1. Führen Sie den Befehl aus, VBoxManage list hddsoder öffnen Sie den Virtual Media Manager , um die GUID der SMALL VM (Ursprung) und die GUID der LARGE VM (Ziel) abzurufen.

Mit diesen GUIDs erstellen Sie den folgenden Befehl

VBoxManage Clonemedium SMALL_VM_GUID LARGE_VM_GUID - vorhanden

In meinem Fall ist ORIGIN - SMALL VM : 39143127-42b6-478a-afb2-5e58f14218b

In meinem Fall ist DESINATION - LARGE VM : bb808b5b-b88c-49b2-a646-3414af906d84

Natürlich werden Ihre GUIDs anders sein als meine

Stellen Sie sicher, dass Sie die GUIDs nicht invertieren, da sonst die brandneue Maschine den Inhalt Ihrer vorhandenen Maschine ersetzt !!!!

Nachdem Sie sichergestellt haben, dass Sie nicht Ursprung mit Ziel gemischt haben, führen Sie den folgenden Befehl aus:

$ VBoxManage Clonemedium 39143127-42b6-478a-afb2-5e58f14218b2 bb808b5b-b88c-49b2-a646-3414af906d84 - vorhanden

0% ... 10% ... 20% ... 30% ... 40% ... 50% ... 60% ... 70% ... 80% ... 90% ... 100%

Klonen Sie das Medium, das im Format 'VDI' erstellt wurde. UUID: bb808b5b-b88c-49b2-a646-3414af906d84

  1. Starten Sie die neue LARGE VM , die Sie in Schritt 2 erstellt haben.

  2. Überprüfen Sie im Fenster "Computerverwaltung", ob auf dem Computer tatsächlich mehr unbenutzter / unformatierter Speicherplatz vorhanden ist

  3. Wenn Sie es vorziehen, können Sie "chkdsk" auf dem Laufwerk C ausführen, um sicherzustellen, dass alles bereit ist (dies kann zwei Neustarts auf der großen VM erfordern ).

  4. Fügen Sie mithilfe von gparted-live * .iso "es" in die neue virtuelle Maschine ein und starten Sie sie neu

  5. Booten Sie in die gparted-Umgebung

  6. Erweitern Sie Ihre Partition und speichern Sie die Änderungen

  7. "Wirf" gparted-live * .iso aus, um Windows erneut zu starten

  8. Überprüfen Sie im Fenster "Computerverwaltung", ob die Maschine jetzt über ein größeres Laufwerk C verfügt, um Ihre Probleme mit dem Spece zu lösen

Ich hatte die Screenshots dieses Prozesses, habe mich aber entschieden, sie nicht einzuschließen, da dies meine Antwort auf die großen und einschüchternden Fragen von Leuten ist, die es "eilig" haben, freien Speicherplatz auf ihrer virtuellen Windows-Maschine zu bekommen

Mauricio Gracia Gutierrez
quelle
Danke für die Anleitung. Woher beziehen Sie in Schritt 3 die GUIDs? Ich bin nicht sicher, was ein Virtual Media Manager ist.
A.Wan
3
VBoxManage list hdds
Egal
@ A.Wan das ist der Virtual Media Manager - google.com.co/…
Mauricio Gracia Gutierrez