VirtualBox VDI vergrößern

Heute war es soweit. Die virtuelle Festplatte meiner Entwicklermaschine war übervoll. Leider bietet der VirtualBox noch keine Möglichkeit, virtuelle Fesplatten zu vergrößern. Ein entsprechendes Ticket existiert zwar, ist jedoch auch schon 2 Jahre alt. Ob es die Funtion jemals in ein Release schaffen wird? Wir werden sehen.

Was kann ich also tun, um meinem virtuellen XP etwas mehr Platz zu verschaffen? So einfach wie mit dem VMWare Converter ist die Geschichte bei VirtualBox nicht.

Als erstes benötige ich ein ISO-Image von GParted Live. Dann lege ich in der virtuellen Maschine eine neue Festplatte gewünschter Größe an und binde diese als primären Slave in die VM ein.

Neue virtuelle Festplatte einbinden
Neue virtuelle Festplatte einbinden

Danach definiere ich das GParted-ISO als CD-Abbild zum Starten desselben.

GParted CD-Abbild einbinden
GParted CD-Abbild einbinden

Und nun kann es auch schon losgehen. Ich starte GParted und wähle in dem GUI die zweite Festplatte, in meinem Fall /dev/hdb aus und erstelle als erstes eine Partitionstabelle vom Typ msdos. Danach lege ich eine NTFS-Partition an, die etwas größer ist als die alte Platte. Jedoch nutze ich nicht den ganzen zur Verfügung stehenden Speicherplatz, da ich später die Partition nochmals in der Größe anpassen muss.

Neue NTFS-Partition erstellen
Neue NTFS-Partition erstellen

Als nächstes kopiere ich den Inhalt der alten Platte von /dev/hda1 auf die neue auf /dev/hdb1 mittels

dd if=/dev/hda1 of=/dev/hdb1

Das dauert ein paar Minuten. Nachdem der Rechner mit dem Kopieren fertig ist, starte ich wieder GParted und vergößere die NTFS-Partition der neuen Platte auf die volle Größe.

Größe der NTFS-Partition ändern
Größe der NTFS-Partition ändern

Danach beende ich die GParted-live und fahre die virtuelle Maschine herunter. Das CD-Abbild hänge ich aus und starte Windows. XP erkennt die neue Platte und führt auf dieser einen Festplattencheck aus, den ich auch durchlaufen lasse.

CHKDSK beim ersten Windows-Start
CHKDSK beim ersten Windows-Start

Nachdem Windows gestartet ist, muss ich die neue Partition über die Datenträgerverwaltung noch als aktiv markieren, um von dieser Partition später den Rechner starten zu können.

Neue Partition als aktiv markieren
Neue Partition als aktiv markieren

Nun habe ich es fast geschafft. Jetzt kann ich Windows wieder herunterfahren um danach die alte Platte aus der virtuellen Maschine zu entfernen und die neue als primären Master zu hinterlegen. Danach Windows hochgefahren und die erkannte Hardware installieren lassen. Nach einem Reboot steht mir meine VM mit mehr Speicherplatz zur Verfügung.

Uff, geschafft. Da geht das Vergrößern einer virtuellen Platte mit dem VMWare Converter deutlich einfacher. Dafür ist VirtualBox jedoch Open Source bzw. kostenlos :)

flattr this!

33 Gedanken zu “VirtualBox VDI vergrößern

  1. Hallo,
    danke für die super Anleitung, hat super geklappt, schön, dass es noch User gibt, die
    nach viel privater bzw. persönlicher Arbeit ihr Wissen in Netz teilen.

    Die HDD-Vergrößerung meines WinXP (Gastsystem) unter Ubuntu 9.04 (Wirtsystem) ließ sich
    ohne Probleme vergrößern.

    Nochmals vielen Danke

    Gruß

    D.A-S

  2. moin,

    bei mir war ein stolperstein dabei. die datenträger verwaltung wollte sich nicht öffnen lassen, er konnte den entspr. dienst nicht starten: geholfen hat – VM runterfahren – neue platte aushängen, neu booten, dann ging er auch wieder – wieder runterfahren, wieder einhängen und dann hatte er es. danke für die anlietung hier. gruß

  3. moin!

    Schade wenns nicht anders geht.
    Das ist ja alles logisch – So mach ich das auf physikalischen Systemen ja auch … aber was ist der Grund dass du nicht gleich die neue Partition in der kompletten Größe erstellst?

    Der Schritt erklärt sich mir nicht so ganz ….

    gruß!

  4. @steffen Das liegt an dd, welches eine 1:1 Kopie der alten Partition auf die neu macht. Damit wird, soviel ich weiß, auch die Größe der Partition mit übernommen. Hast du es ohne die zuerst kleinere Partition probiert? Funktioniert das?

  5. Vielen Dank für die Beschreibung. Hat super geklappt.

    Faul wie ich bin habe ich aber erst überlesen, dass du die Partition hinterher vergrößerst und habe gleich auf volle Größe partitioniert und kopiert. Das hat leider nicht ganz funktioniert, in Windows zeigte er mir dann unterschiedliche Kapazitäten für die Platte an und booten konnte ich von ihr nicht. Hab anschließend wieder gparted gestartet, die Partition um 1 MB verkleinert und nun gehts.

    Danke nochmal.

  6. Hallo,

    leider funktioniert das Rezept nicht, wenn der Gast ein bootfähige Linuxpartition enthält: Anscheinend identifiziert VB die Platte für die Startprozedur. Windows stört das wohl nicht, aber Linux läßt sich nicht hochfahren. Das Einhängen als “Zweitplatte” ist aber ohne weiteres möglich.

    Gruß
    Hans35

    1. Das könnte daran liegen, dass moderne Linuxdistributionen wie Ubuntu die Platten anhand ihrer UUID identifizieren. Und wenn per VB eine neue Platte erstellt wird, bekommt die auch eine neue UUID. Diese muss in der /etc/fstab eingetragen werden.

      1. Hi,

        ich habe SuSE 10.2 als Gast.
        SuSE 11.2 ist auf meinem Notebook so lahm, dass es praktisch unbenutzbar ist. Ich bearbeite da ein Projekt in Gambas. –

        Zum Problem:
        /dev/sda ist gelinkt von:
        /dev/disk/by-id/scsi-SATA_VBOX_HARDDISK_VBe95440-ede6896f
        Weiß der Teufel, was das für eine Nummer ist. Eine andere virtuelle
        Platte hat da eine andere Nummer ab _VB. Die wird offensichtlich durch VirtualBox zugeteilt und wenn sie nicht stimmt, wird ein Klon erkannt, und es geht nicht weiter. Sowas hätte sich WINDOWS ausdenken können!

        Gruß
        Hans35

  7. Hallo,

    ab Vista muss man etwas anders vorgehen. Da gibt es vor der NTFS-Partition noch eine kleine 1MB große Partition. Man geht am besten wie folgt vor:

    1.) dd if=/dev/hda bs=64k of=/dev/hdb #(Wenn man nur hd*1 copiert, kann anschließend nicht gebootet werden.)

    2.) Partition mit GParted oder der Datenträgerverwaltung von Windows vergrößern.

    3.) Von der neuen VDI booten.

    done

    hth

  8. erstmal vielen dank für diese ausführliche, gut lesbare anleitung!
    bin ein blutiger anfänger was linux allgemein und vb im speziellen angeht und komme an folgendem punkt nicht weiter: bis zur aktivierung der neuen partition über die datenträgerverwaltung läuft alles wie beschrieben. wenn ich dann aber versuche, von der neuen platte (als master eigehängt), zu booten, erhalte ich die ausgabe „a disk read error occurred“ – sind möglicherweise nicht die zum booten nötigen dateien mit auf die neue platte kopiert worden? kann mir jemand weiterhelfen?
    danke und gruß,
    levent

  9. Hey.

    Vielen Dank erstmal für die Beschreibung. Man kann super folgen und es funktioniert bei mir bis zum booten mit der neuen VD als Master. Er zeigt mir lediglich eine ewiges “_”.
    Hat jmd. ne Idee woran das liegen kann?

    Hab in einem anderen Forum schon von der Idee gelesen einfach die neue VD in eine neue Maschine einzubinden. Dies funktioniert allerdings ebenfalls nicht…. das ewige “_”….

    Help! und Dank schonmal für die Hilfe.

    c

    1. Ich hatte dasselbe Problem. Bei mir hat es dann geklappt, nachdem ich den dd-Befehl etwas abgeändert und die ganze Platte kopiert habe (anstatt nur die eine Partition):

      dd if=/dev/sda of=/dev/sdb bs=512

  10. Schöne Anleitung – aber – einfacher ist es die vdi in ein vhd-File zu konvertieren (siehe VBoxManage internalcommands converthd) und dann die vhd mit Windows Boardmitteln (diskpart -> select vdisk file=… -> expand vdisk) zu vergrößern. Anschliessend nimmt man dann anstelle des vdi-Files das vhd in VirtualBox, was ja ohne weiter Probleme möglich ist.

  11. Hallo! Schön jemand gefunden zu haben der sich etwas tiefgründiger mit VM auskennt … ich würde nämlich gern wissen ob es möglich ist meinen PC (Win 7 pro) mit Hilfe des Windows- od. alternativen Bootmanagers auch von einer virtuellen Platte zu booten welche auf einem USB-Stick bzw. auf der eingebauten Platte liegt….? Ich freue mich auf deine/eure Antworten!! Danke und viele Grüße! lk

  12. Eine einfache Möglichkeite ist die Verwendung des VMware Converter Stand Alone Clients. Damit kann man aus der laufenden VirtualBox-Maschine heraus eine Kopie mit erstellen und dabei auch gleich die Platte vergrößern. Anschließend muss man nur noch die neue virtuelle (größere) Platte statt der alten kleinen einhängen.

  13. mittlerweile scheint es viel einfacher zu gehen:
    1. VM ausschalten
    2. Am Host folgendes ausführen: vboxmanage modifyhd MeinePlatte.vdi –resize 50000

  14. VIELEN DANK FÜR DIE TOLLE ANLEITUNG!!!!

    Soweit hat alles bei mir funktioniert, jedoch gibt es ein GROSSES Problem.
    Nachdem ich die neue Platte in der Verwaltung auf “aktiv” gesetzt habe und Windows mit der neuen Maschine starten möchte, bootet WinXP nur bis zum blauen Bildschirm mit dem Windows-Sysmbol.
    Hab jetzt schon sehr lange gewartet aber es tut sich nix.

    Kan mir jemand helfen? Ist sehr dringend!!!

    Danke euch und viele Grüße

    Stephan

    1. …hat sich erledigt!
      Nachdem ich eine neue VM erstellt und die Prozedur wiederholt habe (diesmal GENAU SO wie beschrieben) klappt es.
      Bei mir war (glaube ich) das Problem, dass ich Copy/Paste von GParted verwendet und nicht die Befehlszeile mit “sudo dd…” verwendet habe.

      Jetzt alles super! Danke noch mal für die SUPER ANLEITUNG!!

Kommentar verfassen