Ich möchte eine physische Maschine unter MS Windows 7 in eine virtuelle VirtualBox-Maschine verwandeln. Dies ist einfach, ich habe dies bereits getan, aber dieses Mal musste die virtuelle Größe / Kapazität der Festplatte eine feste und kleinere Größe haben.
Es muss behoben werden, da ich aus Compliance-Gründen die PGP-Festplattenverschlüsselung darauf installieren werde. Dadurch wird eine dynamische Festplatte auf ihre maximale Größe erweitert.
Abgesehen von diesem Sonderfall gibt es noch andere Gründe dafür, dass Festplatten kleiner und fester werden sollen. Ist meine Erfahrung. Wenn Sie beispielsweise einen Jenkins-Buildserver auf einer sich dynamisch erweiternden Festplatte ausführen, wird die Festplatte möglicherweise schnell auf ihre maximale Größe erweitert, während die Speicherplatznutzung im Gastbetriebssystem stabil ist und viel freier Speicherplatz vorhanden ist.
Mit Disk2vhd habe ich eine vhdx-Datei erstellt. Diese Datei habe ich in das vdi-Format konvertiert.
vboxmanage clonehd --format VDI MSWIN7.VHDX MSWIN7.vdi
Angeblich könnten Sie mit vdi die virtuelle Größe / Kapazität mit ähnlichen Befehlen verringern
vboxmanage modifyhd MSWIN7.vdi --resize 160000
Ich habe festgestellt, dass dies nicht funktioniert. Selbst wenn Sie Varianten ausprobieren, erhalten Sie regelmäßig Fehlermeldungen wie:
Fortschrittsstatus: VBOX_E_NOT_SUPPORTED VBoxManage: Fehler: Die Größe des Festplattenbetriebs für dieses Format ist noch nicht implementiert!
Unten ist das Festplattenlayout meiner vdi-Festplatte. Ich habe dies einer Ubuntu-VM hinzugefügt, um es mit Gparted und CloneZilla zu betrachten. Die Kapazität beträgt ca. 300 GB. Nicht zugewiesene 145 GB. Verwendet wird ca. 153GB.
Ich möchte die Kapazität auf ca. 160 GB reduzieren. Dies sollte ausreichen, um zu passen /dev/sdb1
und /dev/sdb2
.
Übrigens habe ich CloneZilla ausprobiert, aber es scheint auch nicht zu mögen, die Kapazität auf eine kleinere Festplatte zu verkleinern. Ich habe verschiedene Einstellungen in CloneZilla ausprobiert, aber keinen Erfolg.
Wie kann ich die virtuelle Größe / Kapazität verringern?
quelle
vboxmanage clonehd "source-disk.vdi" "new-disk.vdi" --existing
wird die Partitionstabelle im Zielabbild zerstört.Am Ende gelang es mir, dieses Rätsel auf unerwartet einfache Weise mit dem vorinstallierten Befehlszeilenprogramm zu lösen (
dd
siehe Klonen von Datenträgern) . Wie unten gezeigt, habe ich jetzt mein 160-GB-Laufwerk in meinem Gastbetriebssystem in einer festen 160-GB-VirtualBox-vdi-Datei gespeichert.Ich habe es mit folgenden Schritten gelöst:
MSWIN7.vdi
einer Ubuntu-VM als zweite Festplatte Quell-vdi mit MS Windows 7 hinzu./dev/sda1
mit der laufenden Ubuntu-VM,/dev/sdb2
mit der QuelleMSWIN7.vdi
und/dev/sdc1
mit der neuen vdi./dev/sdc
. CloneZilla hat das für mich getan. Es wurden keine Daten kopiert, aber die gewünschte Partitionierung erstellt. Natürlich können Sie dies manuell tun.sdb
nachsdc
mitdd
Befehl ähnlich wiesudo dd if=/dev/sdb of=/dev/sdc
. Der Befehl endet mit einer erwarteten Fehlermeldung, dass kein Leerzeichen mehr vorhanden ist. Dies habe ich ignoriert, da dies nur nicht zugewiesener Speicherplatz ist, den nicht kopiert werden konnte.Ich denke, es ist möglich, den Befehl für jede Partition auszuführen. Vielleicht ist es besser und zeigt keine Fehlermeldung an.
sudo dd if=/dev/sdb1 of=/dev/sdc1
undsudo dd if=/dev/sdb2 of=/dev/sdc2
.quelle
In meinem Fall hatte ich eine Windows-VM mit 50 GB vdi, um auf 20 GB zu verkleinern.
Ich habe versucht, Andre Figueiredo Lösung, aber ich hatte ein Problem mit dem geklonten
vdi
.Wenn ich die Andre Figueiredo- Lösung anwende
vdi
und sie beim Booten an die VM anhänge , stoppt Virtualbox mit einem E / A-Fehler.Möglicherweise hängt dies mit meinem
btrfs
Dateisystem zusammen (ich habe gehört,btrfs
dass es Probleme mit Vritualbox gibtvdi
).Meine Lösung:
Ich habe eine andere Lösung ausprobiert, um die VM-Festplatte (
vdi
) mit dem Namen OVdi zu verkleinern ( OVdi hat eine Festplattengröße von 50 GB, eine einzelne ntfs-Partition mit 40 GB freiem Speicherplatz).Folgen wir diesen Schritten (dies ist mein Fall, Sie können verschiedene vdi- Namen anpassen / erfinden ):
Stoppen Sie die VM (Ausschalten)
Erstellen Sie eine neue Festplatte (
vdi
) mit dem Namen DVdi der gewünschten Größe (20 GB in meinem Fall ..)befestigen DVdi an die VM
Starten Sie die VM und installieren Sie das Dienstprogramm EaseUS Backup Free
Führen Sie EasyUS und verwenden Sie die EasyUS Clone - Funktion (es klont OVdi MBR, und die NTFS - Partition von OVdi durch neue Platte schrumpf DVdi )
Schalten Sie die VM aus
Detach OVdi von VM
Überprüfen Sie, ob DVdi das erste Startgerät für die VM ist
Starten Sie die VM neu
Habe Spaß
Vergessen Sie nicht, das OVdi- Volume zu löschen .
Nach diesen Schritten habe ich die Größe der VM-Festplatte erfolgreich von 50 GB auf 20 GB reduziert
quelle
Ich halte diese Lösung für äußerst gefährlich! Es setzt voraus, dass sich alle Dateien in den ersten 153 GB der ursprünglichen 300-GB-Partition befinden. Der Befehl dd kopiert keine Dateien. Es werden einfach ALLE Blöcke nacheinander kopiert. Wenn Sie also das Pech hatten, wichtige Dateien nach dem 160-GB-Cutoff zu haben, kann dd sie nicht kopieren.
Die typische Lösung, die ich in vielen, vielen Beiträgen gesehen habe, besteht darin, die Windows-VM einzuschalten und eine Kombination aus Defragmentierungs- und Verwaltungstools zu verwenden, um alle Dateien auf der Vorderseite der Festplatte zu konsolidieren. Die Schwierigkeit besteht darin, dass sich viele Defragmentierungswerkzeuge nicht unbeweglich bewegen Windows-Systemdateien (ich musste die Systemwiederherstellung deaktivieren, um einen nicht verschiebbaren 7-GB-Festplattenblock zu löschen), die sich irgendwo in der Mitte des Speicherplatzes befinden, den Sie konsolidieren möchten.
Sobald Sie Dateien auf der Vorderseite der Festplatte konsolidiert haben (MyDefrag ist ein Freeware-Tool, mit dem angezeigt wird, wo sich Ihre Dateien auf der Festplatte befinden), müssen Sie die Größe Ihrer Windows-Partition reduzieren. Ich habe das Diskpart-Tool mit der Option zum Verkleinern verwendet.
Zu diesem Zeitpunkt können Sie mit dd die jetzt kleinere Partition auf eine neue vdi kopieren.
Ich habe auch vboxmanage modifymedium win10.vdi --compact auf meinem Linux-Host verwendet, musste aber zuerst sdelete.exe im Windows-System ausführen, um den gesamten nicht verwendeten Speicherplatz auf Null zu setzen (sdelete -zc :). Wenn Sie vboxmanage verwenden, um die vorhandene vdi-Datei zu komprimieren, können Sie alles direkt erledigen (aber immer ein Backup haben).
quelle