Ich versuche herauszufinden, wie die Größe einer VDI-Datei geändert werden kann. Ich bin neu in VirtualBox und muss noch viel lernen. Aber ich glaube, ich habe die Grundlagen verstanden. Ich habe Windows 7 bereits als meinen ersten Gast installiert. Der Host ist auch Windows 7. Ich war mir nicht sicher, wie viel Speicherplatz zugewiesen werden sollte, und entschied mich für eine VDI-Größe von 40 GB und eine feste Größe, um die Leistung zu steigern. Aber ich habe es mir jetzt anders überlegt und möchte weitere 10 GB hinzufügen. Ich habe durch das Programm geklickt und den Inhalt des Hilfemenüs gelesen, aber es hilft nicht. Es erklärt Festplatten-Controller, SAS, SATA, SCSI, Yada, Yada, aber nicht das, wonach ich suche.
Ich habe im World Wide Web nach Antworten gesucht. Im VirtualBox-Forum heißt es, Sie sollten Gparted verwenden, wenn Sie die einfachste Methode möchten (einige Mods haben einen Sticky gepostet). Einige Benutzer diskutieren die Verwendung des dd
Befehls. Aber das ist alles Linux-Zeug. Auch hier bei SU gibt es viele Fragen, die sich mit dem Vergrößern und Verkleinern von VDI-Dateien befassen, aber es geht nur darum, Linux als Host und Windows als Gast zu verwenden.
Ich fand diesen netten Blog- Beitrag, wie man es mit dem modifyhd
Befehl von VBoxManage macht. Dieser Typ macht es auch unter Linux als Host-Betriebssystem. Er wollte sogar die gleiche Größe (50 GB) für seine VDI-Datei wie ich, was für ein Zufall. Also dachte ich, ich würde es trotzdem versuchen, entweder machen oder brechen. Was kann möglicherweise schief gehen? ... wie? Nun, das ist die hässliche Überraschung, die ich bekam.
C:\Program Files\Oracle\VirtualBox>VBoxManage.exe modifyhd "%userprofile%\virtua
lbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab.vdi" --resize 51200
0%...
Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage.exe: error: Resize hard disk operation for this format is not impleme
nted yet!
C:\Program Files\Oracle\VirtualBox>
Was jetzt sagen?! ... können virtuelle Festplatten im VDI-Format nicht skaliert werden? Sagst du nicht Unterstützen Sie Ihr eigenes Format nicht? Wie wäre es damit ...
Gibt es wirklich keine einfache Möglichkeit, die Größe einer VDI-Datei zu ändern, vorzugsweise mit ein paar Klicks in VirtualBox? Ist etwas in Arbeit?
quelle
modifyhd
ist jetzt bekanntmodifymedium
, bleibt aber abwärtskompatibel - siehe virtualbox.org/manual/ch08.html#vboxmanage-modifyvdiAntworten:
Zusammenfassung:
VBoxManage.exe modifyhd --resize
kann die logische Größe des Datenträgerabbilds (die Größe, die vom Gastbetriebssystem angezeigt wird) erhöhen (aber nicht verringern).VBoxManage.exe modifyhd inputfile.vdi --compact
kann die Größe des Images der physischen Festplatte verringern (die Größe der Image-Datei auf der Festplatte, wie sie vom Host-Betriebssystem angezeigt wird). Dies ändert jedoch nicht die Größe der logischen Festplatte. Beachten Sie, dass dies nur funktioniert, wenn der freie Speicherplatz zuerst im Gastbetriebssystem auf Null gesetzt wurde.modifyhd
Funktioniert nur mit der dynamischen Formatvariante ("dynamisch zugewiesenes Bild").modifyhd
Funktioniert nur mit den Bildformaten VDI und VHD.Details siehe Abschnitt 8.23. VBoxManage modifyhd im Handbuch.
Der Grund, warum das Verringern der Größe der logischen Festplatte eines VDI noch nicht implementiert wurde, besteht darin, Datenbeschädigungen zu vermeiden, die auftreten können und die dazu führen, dass VMs nicht mehr gestartet werden können. Wenn die
--resize
Option verwendet wird, muss die neue Datenträgergröße daher größer als die aktuelle Größe sein. Es darf nicht kleiner oder gleich der aktuellen Größe sein. Mit anderen Worten, eine 40-GB-Festplatte kann nur auf eine Größe von 41 GB oder mehr, nicht auf eine Größe von 40 GB (das ist nur dumm) oder auf eine Größe von 39 GB oder weniger angepasst werden.Alte Versionen von VirtualBox haben VDI-Dateien als "feste" Formatvariante erstellt. Die neue Standardeinstellung besteht nun darin, "dynamische" Formatvarianten zu erstellen, wenn neue VDI-Dateien (Virtual Disk Image) erstellt werden. (Ich vermute, dass dies seit der Einführung der dynamischen Formatvariante der Fall ist, in welcher Version auch immer.)
Die Fehlermeldung "Vorgang für dieses Format ist noch nicht implementiert" bedeutet also, dass Ihre VDI-Datei die Formatvariante "Fest" verwendet. Um dieses Problem zu umgehen, müssen Sie Ihre VDI-Datei mit dem
clonehd
Befehl klonen . Mit demshowhdinfo
Befehl können Sie anzeigen, in welcher Formatvariante sich Ihre VDI-Datei gerade befindet .Arbeitsbeispiel
VDI-Informationen zur aktuellen Festplatte anzeigen.
Eingabebefehl:
vboxmanage.exe showhdinfo path\inputfile.vdi
Sehen Sie, wo es heißt "fester Standard"? Aus diesem Grund wird der obige Fehler bei dem Versuch, die Größe zu ändern, ausgeblendet.
Klonen Sie die alte VDI-Datei in eine neue VDI-Datei.
Eingabebefehl:
vboxmanage.exe clonehd path\inputfile.vdi path\outputfile.vdi
Voilà! Die alte Datei wurde jetzt in eine neue Datei geklont. Da die Standardeinstellung in neuen Versionen von VirtualBox die Verwendung der "dynamischen" Formatvariante ist, müssen Sie dies nicht explizit definieren. Wenn Sie jedoch mit einer älteren Version von VirtualBox arbeiten, möchten Sie möglicherweise die Option auf "dynamisch" setzen (falls überhaupt verfügbar), um eine bessere Kompatibilität und / oder Flexibilität mit zukünftigen Versionen von VirtualBox sicherzustellen.
VDI-Informationen zur geklonten Festplatte anzeigen.
Eingabebefehl:
vboxmanage.exe showhdinfo path\inputfile_clone.vdi
Sehen Sie, wie es jetzt heißt "Dynamic Default"? Wie schön!
(Nebenbei bemerkt! Der Grund, warum hier 7806 MB als physische Größe angegeben sind, ist, dass ich die
--compact
Option für die ursprüngliche VDI-Datei verwendet habe, um die Konvertierung in eine dynamische Formatvariante zu erzwingen. Nur etwas, das ich angeblich im VirtualBox-Forum gelesen habe Hätte mit älteren Versionen gearbeitet, also dachte ich, ich könnte es genauso gut versuchen. Es hat nicht funktioniert.)Ändern der Größe der geklonten Festplatte
Eingabebefehl:
vboxmanage.exe modifyhd path\inputfile.vdi --resize 51200
Erfolg! Kein Formatbullshitting mehr. Denken Sie daran, die Größe der neuen, geklonten und nicht der ursprünglichen Festplatte zu ändern. Beachten Sie, dass die Größe in MB angegeben wird. Ich glaube du kannst zB
51200
auch50G
(oder evtl. "GB") verwenden. Es gibt auch die Option, mit--resizebyte
der die Größe in Bytes ausgedrückt werden kann.Anzeigen von VDI-Informationen zur verkleinerten Klon-Festplatte.
Eingabebefehl:
vboxmanage.exe showhdinfo path\inputfile_clone.vdi
Das ist es! Ab hier müssen Sie dieses geklonte Laufwerk als Ihr neues VDI für die VM hinzufügen. Das machst du in VirtualBox. Ich werde nicht darauf eingehen. Wenn Sie dies bisher gelesen und verstanden haben, brauchen Sie wahrscheinlich keine weiteren Anleitungen. Sie können entweder die alte "feste" Datei löschen oder als Backup behalten. Stellen Sie sicher, dass Sie die neue VDI-Datei testen, bevor Sie die ursprüngliche Quelldatei löschen.
Hinweis! Die neue Größe der geklonten Festplatte wird nicht sofort angezeigt. Sie müssen die VM damit booten und dann mit Ihrem Partitionsverwaltungstool Ihre Partition erweitern, um die virtuelle Festplatte zu füllen (oder weitere Partitionen zu erstellen). Für Windows einfach ausführen
diskmgmt.msc
und Sie können die Partition dort erweitern.Screenshots
Referenz
quelle
modifymedium
/modifyhd
auf die Snapshot-Datei selbst anwenden .Hier ist ein ziemlich einfacher Vorgang, mit dem ich die Größe einer VirtualBox-Festplatte (Version 4.3.16) mit fester Größe auf eine dynamische 60-GB-Festplatte auf meinem Mac (OS X 10.9.4) mit Linux (Ubuntu 14.04) als Gastbetriebssystem geändert habe:
In Terminal auf dem Mac CD in das Verzeichnis mit der VDI-Datei und geben Sie Folgendes ein:
Fügen Sie im Speicherbereich der VirtualBox-Anwendung mydiskClone.vdi als zweite Festplatte hinzu und starten Sie die VM dann normal.
Geben Sie in der Shell auf dem Gastbetriebssystem Folgendes ein:
Starten Sie den Gast neu. Wenn es wieder auftaucht, gehen Sie erneut zur Shell und geben Sie Folgendes ein:
Fahren Sie das Gastbetriebssystem herunter.
Legen Sie im Speicherabschnitt der VirtualBox-Anwendung erneut mydiskClone.vdi als Startdiskette fest. Starten Sie dann das Gastbetriebssystem und überprüfen Sie die neue Festplattengröße mithilfe der Eigenschaften von "Computer" im Dateibrowser.
quelle
Das Klonen ist tatsächlich eine bessere Lösung und es gibt einen einfacheren Weg, dies zu tun.
Wählen Sie im Menü Datei die Option Virtual Media Manager und klicken Sie dann auf Kopieren. Die Quelle ist Ihre originale vdi-Festplatte mit fester Größe, und Ihr Ziel ist etwas Neues Ihrer Wahl (einschließlich der Option eines neuen).
quelle
OK, also habe ich es geschafft, ohne zu klonen .
Ich hatte eine 100 GB VDI-Datei (festes Format) mit Ubuntu darauf. Funktioniert gut. Ich wollte Speicherplatz auf dem Host freigeben, indem ich die VM verkleinerte.
Schritte:
Gelöschte unerwünschte Dateien. 45GB frei. Ich brauche nur 30GB, um befreit zu werden.
Ich habe nur eine Partition, daher kann ich im Gast-Ubuntu nichts tun. Hängte Ubuntu Live in die VM ein und bootete von dort.
Wird verwendet
gparted
, um die Partition auf 70 GB zu verkleinern. Erstellt eine neue Partition im nicht verwendeten Speicherplatz inext4
.Der freie Speicherplatz in einer neuen Partition (30 GB).
Befolgen Sie diese Anleitung: Verkleinern Sie die virtuelle Festplatte unter Ubuntu als Gast- und Host-Betriebssystem mit ZeroFree
Meine neue Partition war
/dev/sda3
.Komprimieren Sie den VDI
VBoxManage modifyhd "ubuntu.vdi" kompakt
Es hat eine Weile gedauert, aber es hat funktioniert!
quelle
--compact
funktioniert dies nur für dynamisch zugewiesene Bilder, nicht für Bilder mit fester Größe.Etwas spät zur Party hier, aber ich werde meine 2 Cent hinzufügen. Zuerst möchte ich sagen, dass dies ein komplizierter Prozess ist, der die meisten Gelegenheitsnutzer verrückt macht, wenn sie versuchen, es herauszufinden. Warum Oracle dies nicht in die VBox-GUI aufgenommen hat, ist ein Rätsel.
Schritt 1: Verwenden Sie die Windows-Befehlszeile (VBoxmanage), um die Laufwerksgröße zu erhöhen. Ein Tipp hier ist, die ID des VDI-Laufwerks zu verwenden, anstatt endlos zu versuchen, den Speicherort der Datei einzugeben und Fehlermeldungen zu erhalten.
Schritt 2: Sie müssen dann Ihre primäre Partition erweitern, um den neuen Speicherplatz zu nutzen. Laden Sie die gparted iso herunter und erstellen Sie eine neue virtuelle Maschine in VBox, indem Sie sie als IDE-Quelle verwenden. Verwenden Sie dann das vorhandene VDI-Laufwerk als SATA-Laufwerk. Erstellen Sie kein virtuelles Laufwerk für diesen Computer. Starten Sie die neue Maschine und Sie haben die gparted Gui ausgeführt. Dies kann einige Neustarts erfordern, um sich selbst zu beheben.
Sobald gparted ausgeführt wird, werden die Partitionen Ihres VDI-Laufwerks angezeigt, deren Größe Sie ändern möchten. WICHTIG: Sie müssen die erweiterte Partition löschen und den Dateibereich austauschen, um die Größe der primären Partition erhöhen zu können. Weisen Sie dem PP daher nicht den gesamten neuen Speicherplatz zu. Sobald Sie dies getan haben, müssen Sie den verbleibenden Speicherplatz für die neue erweiterte Partition festlegen und einen neuen Auslagerungsdateibereich darin erstellen. Ich fand das viel einfacher, als mit der Kommandozeile herumzuspielen.
Kein Kinderspiel, aber machbar ... ich habe etwa einen halben Tag lang im Internet recherchiert, um das herauszufinden. Laufen win8.1 / Ubuntu auf VBox
Willie
quelle
So habe ich ein festes VDI-Image vergrößert / vergrößert / verkleinert (meine Vorgehensweise zum Verkleinern ist in einer anderen Antwort enthalten):
dd if=/dev/sda of=/dev/sdb status=progress bs=128M
und warten Sie, bis der Vorgang abgeschlossen ist. Dadurch wird die ursprüngliche Festplatte Byte für Byte auf die neue Festplatte kopiert, einschließlich MBR usw. (Hinweis: Je nach Größe der ursprünglichen Festplatte, Geschwindigkeit der Festplatte auf dem Host usw. kann dies eine Weile dauern.) (Hinweis: Wenn Ihrer Gast-VM mehr als 1 GB RAM zugewiesen sind, können Sie den Parameter 'bs' in "bs = 256M" ändern, wodurch die Kopie möglicherweise etwas beschleunigt wird.)Das oben Genannte hat bei mir bereits mehrfach funktioniert, aber es scheint ein paar weitere Schritte zu erfordern, wenn LVM verwendet wird. (HINWEIS: Wenn LVM verwendet wird, können Sie einfach eine neue Festplatte mit der gewünschten Größe hinzufügen und diese dann der Datenträgergruppe hinzufügen.) Unter CentOS 6.6, wo LVM verwendet wird, musste ich auch den Speicherplatz in LVM vergrößern. Nachdem ich die oben erstellte neue Festplatte gebootet habe, habe ich etwas in diese Richtung getan (verschiedene Teile davon hängen von den Namen Ihres Setups ab):
Hier erhalten Sie Informationen zum LVM-Setup:
Erweitern Sie das physische Volumen (PV) (Lautstärkegruppe (VG) spiegelt automatisch dieselbe Erhöhung wider):
Logisches Volume erweitern (LV):
Dateisystem erweitern:
Vor:
Befehl:
Nach:
quelle
So habe ich ein festes VDI-Image verkleinert / verkleinert / verkleinert (mein Verfahren zum Erweitern befindet sich in einer anderen Antwort in demselben Thema):
Zuerst ein kurzer Hintergrund, warum ich das brauchte (da es viele Szenarien zum Verkleinern eines VDI gibt, von denen einige mit diesem Ansatz möglicherweise nicht durchführbar sind): Vor Jahren habe ich ein festes VDI für einen Windows Server-Gast erstellt und es auf 600 GB dimensioniert. Ich kann mich nicht erinnern, warum ich diese Größe gewählt habe, aber bis heute habe ich nur 100 GB in diesem Gast verbraucht und ich möchte den größten Teil des verbleibenden Speicherplatzes zurückfordern. In meinem Fall möchte ich also alle Daten im Gast behalten und einfach nicht genutzten Speicherplatz im Gast freigeben.
(Die folgenden Schritte stammen größtenteils aus meiner Erinnerung daran, dass ich dies in den letzten 2 Stunden getan habe. Ich entschuldige mich, wenn ich hier etwas verpasse.)
Starten Sie die Gast-VM (sollte in einer gparted Live-Umgebung starten). Aus der Umgebung heraus:
Angenommen, Ihre "ursprüngliche" Festplatte ist / dev / sda und "neu" ist / dev / sdb (falls nicht, passen Sie den folgenden Befehl entsprechend an), dann werden wir jede Partition einzeln kopieren. Geben Sie für jede Partition, die aus dem obigen Schritt hervorgeht, den folgenden Befehl in das Terminal ein:
und warten Sie, bis der Vorgang abgeschlossen ist. Dadurch wird Partition 1 von der ursprünglichen Festplatte auf Partition 1 auf der neuen Festplatte byteweise kopiert.
Wiederholen Sie den Befehl für jede verbleibende Partition:
Anmerkungen:
Der letzte Schritt, den ich für meinen Windows-Gast ausführen musste, war das Festlegen / Korrigieren des MBR und / oder des BCD. (Ich weiß nicht, ob dies für einen Linux-Gast erforderlich ist, da ich es noch nicht getan habe.) Wenn ich einfach von meinem neuen VDI gebootet habe, wurde ein Windows-Boot-Manager-Fehlerbildschirm mit diesem Inhalt angezeigt (ich habe es leider nicht getan). Ich mache keinen Screenshot, bevor ich das Problem behoben habe.
Besorgen Sie sich eine ISO-Datei für eine Windows-Installation oder -Reparatur (im Idealfall eine, die Ihrer Betriebssystemversion entspricht) und konfigurieren Sie die Gast-VM so, dass sie von dieser bootet (erneut Speichereinstellungen).
Starten Sie die Gast-VM und wählen Sie das Booten von der CD / DVD.
Führen Sie an der Eingabeaufforderung die folgenden Befehle aus (dank http://loverofcode.blogspot.com/2013/11/fixed-0xc000000e-boot-error.html für die Informationen!):
Dieser letzte Befehl sollte Ihre Windows-Installation finden und Sie auffordern, sie der BCD hinzuzufügen. Antworten Sie mit "Y".
quelle
Ich stelle eine Antwort zur Verfügung, die für jedes gehostete Betriebssystem gilt, das auf einem beliebigen Host-Betriebssystem ausgeführt wird. In dieser Antwort wird davon ausgegangen, dass Sie die Größe erhöhen (erweitern) möchten.
Hinweis: Wie von djule5 (siehe den Kommentar direkt nach der Frage) hervorgehoben,
modifyhd
ist jetzt bekannt alsmodifymedium
(bleibt jedoch abwärtskompatibel). Hier benutze ichmodifymedium
.1. Beenden Sie Ihre laufende VM
Ja, diese Antwort gilt für eine VDI-Datei, die bereits von einer VirtualBox-VM verwendet wird.
2. Öffnen Sie ein Terminal auf Ihrem Host, um die Größe des Festplattenabbilds zu ändern
Die Befehlszeile VBoxManage möchte die Größe eines Datenträgerabbilds nicht mit dem VDI-Dateinamen ändern.
Ermitteln Sie daher die UUID Ihres Festplattenabbilds.
Erweitern Sie die Disk-Image-Größe.
3. Erweitern Sie die logische Partition mit einem Partitionierungstool
Führen Sie Ihre gehostete VM aus. Verwenden Sie dann ein Partitionierungswerkzeug .
Einige Tools für ein gehostetes GNU / Linux:
Wenn das gehostete System Windows verwendet:
4. Überprüfen Sie den freien Speicherplatz der Partition
Die Größe Ihrer VDI-Datei (auf Ihrem Hostsystem) hat sich möglicherweise nicht geändert, da Ihre VM den zusätzlichen Speicherplatz noch nicht verwendet hat. Habe Spaß.
quelle
Dies würde für mich funktionieren und sollte die Gesamtmenge der Festplattenkapazität angeben. Nicht der Raum, den wir brauchen, um zu vergrößern ...
quelle