Das Booten ist nicht möglich, nachdem die Größe der Festplatte in VirtualBox geändert wurde


15

In Windows 7 habe ich eine weitere Windows 7-VM in VirtualBox eingerichtet. Es hat super geklappt. Dann musste ich die vhd HD-Größe erhöhen. Also habe ich das VBoxManage-Dienstprogramm verwendet, um dies mit dem folgenden Kommentar zu tun:

VBoxManage modifyhd "c:\VMs\Win7.vhd" --resize 30000

Dann habe ich versucht, die VM erneut auszuführen, sie kann jedoch nicht gestartet werden und es wird die folgende Fehlermeldung angezeigt:

FATAL: Kein bootfähiges Medium gefunden! System wurde angehalten.

Dann habe ich versucht zu sehen, was in der VHD vor sich geht, und versucht, es in der Geräteverwaltung anzuhängen, und es heißt, dass es nicht angehängt werden kann, weil die Datei oder das Verzeichnis beschädigt und nicht lesbar ist .

Irgendeine Idee, was hier schief gelaufen ist und wie ich meine VM in dieser VHD-Datei speichern kann?


Ich hatte genau das gleiche Problem und konnte online keine nützliche Lösung finden. Daher begann ich, die virtuelle Festplatte von Hand gemäß der Dokumentation von Microsoft zu analysieren. Derzeit scheint es einen Fehler in der Implementierung von modifyhd zu geben, bei dem der Offset für Datenblöcke nicht angepasst wurde, nachdem die Blockzuordnungstabelle erweitert wurde. Ich muss noch einige Versuche unternehmen, um dies zu überprüfen.
billc.cn

In VirtualBox 4.3.10 habe ich die Größe einer VHD-Datei geändert. Es sieht so aus, als hätte es nicht nur die Blockzuordnungstabellenzeiger angepasst, sondern auch die Blockzuordnungstabelle in den ersten Datenblock erweitert, wodurch mein MBR und meine Partitionstabelle überschrieben wurden. Verwenden Sie VirtualBox nicht, um die Größe von .vhd-Dateien zu ändern!
Aaron

Antworten:


12

Leider ist die VirtualBox-Dokumentation für die Option VBoxManage --resize irreführend. Sie können das Image nicht einfach vergrößern, damit alles ordnungsgemäß funktioniert. Die Informationen zur Festplattenpartition im Image müssen so angepasst werden, dass das Gastbetriebssystem das Layout des "Laufwerks" kennt, das das Image simuliert. Sie führen diese Anpassung durch, indem Sie ein bootfähiges CD-Image mit einem Partitionseditor herunterladen und die VM auf dieser CD booten. Anschließend verwenden Sie den Partitionseditor, um die Partitionen des Festplattenabbilds so anzupassen, dass der hinzugefügte Speicherplatz verwendet wird.

Es gibt ein schönes Zuschreibung des Verfahrens hier ; Fahren Sie einfach mit Schritt 4 fort.


Nun, das ist ein Mist. Dies bedeutet, dass ich gerade die 3 Stunden Arbeit weggeworfen habe. Danke für die Information.
Tugberk

4
Ich verfolgte die nette Beschreibung (nachdem ich meine VHD-Größe geändert hatte und nicht mehr booten konnte), und GParted zeigte keine Partitionen auf der Festplatte an, sondern nur 50 GB nicht zugewiesenen Speicherplatz. Bedeutet das, dass modifyhddas Laufwerk irreparabel ist?
GSerg


1

Ich hatte das gleiche Problem und konnte die Daten mit der GParted LiveCD abrufen

  1. Erstellen Sie eine neue virtuelle Festplatte, um die kopierten Daten zu empfangen (erstellen Sie Partitionen und formatieren Sie sie).
  2. Laden Sie die GParted LiveCD herunter und booten Sie auf VirtualBox
  3. Wählen Sie Gerät -> Datenrettung versuchen
  4. Klicken Sie auf OK und nach dem Scan auf Anzeigen (dies wird / tmp / gparted-roview-XXXXXX einhängen)
  5. Hängen Sie auf dem Terminal die zweite virtuelle Festplatte ein (sudo mount / dev / sdb1 / mnt).
  6. Kopieren Sie die Dateien (sudo cp -R / tmp / gparted-roview-XXXXXX / * / mnt

Danach können Sie die virtuelle Maschine herunterfahren und die virtuelle Festplatte im Windows-Geräte-Manager bereitstellen.


1

Hier erklären sie das Problem (auf Spanisch)

Zusammenfassung:

ein. "vboxmanage modifyhd (resize)" erzeugt auf vielen Systemen (Windows NT5, 9x, Server und x86-Versionen) einen Fehler. Das Ergebnis ist eine beschädigte Partition, die nur sehr schwer wiederherzustellen ist

b. Sie müssen "vboxmanage modifyhd (resize)" (VDI-Größe ändern) in dem Pfad ausführen, der alle mit dem VDI verknüpften Dateien und Ordner enthält. Schau dir das Bild an

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Empfehlung:

Ersetze "vboxmanage modifyhd" durch "vboxmanage clonehd"

  1. Erstellen Sie ein neues virtuelles Laufwerk-VDI (mit der Größe, die Sie erweitern möchten). Beispiel: Old.vdi hatte 50GB. New.vdi schafft es mit 100GB

    VBoxManage createhd - Dateiname /path/New.vdi --size 100000

  2. Klonen Sie es mit dem folgenden Befehl:

    vboxmanage clonehd /path/Old.vdi /path/New.vdi - vorhanden

Hinweis : Beide VDI sollten sich nicht auf demselben Pfad befinden

  1. Führen Sie New.vdi aus, wechseln Sie zu Windows-Computerverwaltung, und erweitern Sie den Speicherplatz (weisen Sie den leeren Speicherplatz zu). Wenn Sie dies nicht manuell tun möchten, können Sie eine beliebige kostenlose Partitionierungsanwendung verwenden, z. B. AOMEI Partition Assistant Standard , GParted und viele andere.

aktualisiere die Antwort

0

Es ist erwähnenswert, dass ich genau das gleiche Problem hatte, das darauf zurückzuführen war, dass ich den Befehl modifyhd ausgegeben habe, während der Gast ausgeführt wurde. Die offizielle Dokumentation sagt nichts darüber aus, dass Sie zuerst Snapshots löschen müssen und der Gast hätte gestoppt werden sollen.

Mein Plan war es, die Größe der Festplatte zu ändern, während der Computer lief, da ich ein dynamisches Volume habe, das auch im laufenden Betrieb erhöht werden kann. Dies war jedoch eine schlechte Idee, als ich den Computer neu startete, um die volle Festplattengröße zu erhalten. Ich blieb mit einem beschädigten Image im Dunkeln, das ich selbst ohne Testdisk nicht wiederherstellen konnte. Testdisk findet die Partitionen, aber das Dateisystem ist stark beschädigt und kann nicht repariert werden.

Also sei geraten:

  1. Füge alle Schnappschüsse in das Basis-Image ein
  2. Fahren Sie das Gastbetriebssystem herunter

Ich habe den Vorgang auf meinem Computer mit einem Backup-Image wiederholt und das Gastbetriebssystem ausgeschaltet. Dies funktioniert gut.


0

Ich konnte ein Image wiederherstellen, das durch diesen Fehler beschädigt wurde. Im Gegensatz zu Edison hat das geteilte Livebild nichts gefunden. Folgendes habe ich getan:

  • Erstens, da die VBox-Unterstützung für VHD anscheinend fehlerhaft und schrecklich ist, beginnen Sie mit der Konvertierung der VHD in eine VDI mit VBoxManage clonehd foo.vhd --format vdi foo.vdi. Wenn ich diesen Schritt übersprungen habe, konnte ich Dateien aus dem Image wiederherstellen, aber nach einigen Neustarts "brach" es wieder zusammen. Ich vermute, dass der Fehler die VHD-Datei wirklich so durcheinander bringt, dass sie später von I / O "neu gebrochen" wird ... VBox scheint diese Probleme mit VDI nicht zu haben, also habe ich VHD aufgegeben.

  • Starten Sie WinPE, die Windows-Vorinstallationsumgebung. Wie das geht, könnte ein Artikel für sich sein. Wenn Ihnen dies nicht bekannt ist, finden Sie hier eine Verknüpfung: Starten Sie von einer Windows Setup-DVD (Vista oder höher) und drücken Sie die Umschalttaste-F10, sobald die grafische Benutzeroberfläche aufgerufen wird. Daraufhin wird eine Eingabeaufforderung angezeigt.

  • Laden Sie testdisk herunter , finden Sie eine Möglichkeit, es auf Ihr WinPE-Image zu übertragen (oder ein einfacher USB-Stick würde funktionieren), und führen Sie es in der WinPE-Umgebung aus. (Hinweis: In WinPE fehlt WOW64, die 32-Bit-Kompatibilitätsebene für 32-Bit-Apps. Daher benötigte mein 64-Bit-WinPE-Setup die 64-Bit-Testdisk-Binärdatei.)

  • Testdisk hat die Partitionen gefunden und wiederhergestellt.

  • Zu diesem Zeitpunkt wurden die Dateien wiederhergestellt, aber der Bootloader schlug aufgrund mehrerer Probleme fehl. Zuerst habe ich diskpartdie Partition als aktiv markieren ( list disk, sel disk <disk number>, sel par 0, active). Ging weiter, würde nicht booten. Ging zurück in WinPE und löschte \boot, lief dann bcdboot C:\windows /s C:, um den Bootloader neu zu installieren.

  • Am Ende lief ich chkdisk /R, um sicherzugehen, dass das Bild in Ordnung war. Dauerte ein paar Stunden, fand keine Probleme.


-1

Ich hatte das gleiche Problem, GParted erkannte die Partitionen überhaupt nicht und es wurde als nicht zugewiesener Speicherplatz angezeigt. Zu diesem Zeitpunkt habe ich verstanden, dass die Daten verloren gegangen sein könnten.

Dann erinnerte ich mich daran, dass ich testdisk verwendet habe, um nach verloren gegangenen Partitionen auf Festplatten zu suchen. Warum sollte ich es also nicht auf virtuellen Festplatten versuchen? und es hat funktioniert.

  1. Booten von GParted Zum Zeitpunkt des Schreibens dieser Antwort befand sich in GParted eine "Testdisk". Starten Sie einfach das Terminal, starten Sie "sudo testdisk / dev / sda" oder was auch immer auf Ihrem Computer angezeigt wird. Führen Sie "sudo fdisk -l" aus, um alle Festplatten anzuzeigen.
  2. Wenn Sie die Partitionstabelle analysieren, wird die Partition sofort erkannt, da sie sich noch in den ersten Sektoren befindet. Schreiben Sie eine neue Partition, Tabelle, und fahren Sie dann mit GParted fort, um die Wiederherstellung fortzusetzen, wie unter folgendem Link beschrieben: http://www.howtogeek.com/124622/how-to-enlarge-a-virtual-machines-disk-in-virtualbox -oder-VMware /
  3. Wenn Sie dies das nächste Mal tun möchten, erstellen Sie zuerst eine Kopie Ihres VDISK.
  4. Im folgenden Link habe ich festgestellt, dass sie eine neue virtuelle Festplatte erstellen und dann mit --existing klonen: http://tips.kaali.co.uk/2012/03/16/expand-or-increase-the-size-of-virtual- box-vdi-dis / Ich habe es noch nicht versucht, aber ich habe meine Festplatte mit den obigen Anweisungen wiederhergestellt.

Hoffentlich hilft das jemandem.


Bitte zitieren Sie die wesentlichen Teile der Antwort aus dem / den Verweis (en), da die Antwort ungültig werden kann, wenn sich die verlinkte (n) Seite (n) ändern.
DavidPostill
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.