• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[teilgelöst] VirtualBox vergisst Festplatten

Hi,
hab VB 4.1.6 unter Suse-12.1.
Seit dem Update auf Suse 12 vergisst der Medienamanger von VB immer alle virtuellen Festplatten.
Dh: bei jedem Start ist die Liste der Festplatten leer, CD's hat er sich aber gemerkt.
Dadurch ist natürlich jede VM erst einmal nicht zugreifbar (Fehler: Could not find harddisk with uuid {...} <<aktualisieren>>)

Blöderweise scheint es keine Möglichkeit zu geben, vdi-images direkt von der Festplatte in den Manager zu importieren, das geht nur in den Einstellungen der jeweiligen VM.

Meine Behelfslösung ist erst mal: neue VM erstellen und dort der Reihe nach alle vorhandenen vdi-images einbinden. Damit kennt der Manager meine vdi's wieder und die zugehörigen VM's sind nach "aktualisieren" wieder startbar - bis zum nächsten Programmstart.

Als nächstes hab ich mir die ~/VirtualBox/VirtualBox.xml angeschaut, das scheint ja die config von VB zu sein.
Die Items <ExtraData> und <MachineRegistry> stimmen auch.
Nur: der Punkt <MediaRegistry> sieht so aus:
Code:
<MediaRegistry>
     <HardDisks/>
     <DVDImages/>
     <FloppyImages/>
</MediaRegistry>
Und das, obwohl der Medienmanager (nach obigem Workaround) 6 virt. Festplatten und 4CD-Abbilder anzeigt.


Hat jemand ein ähnliche Problem bzw eine Lösung ? Eine Google-Suche brachte erst mal nichts zu Tage...
Gibt es noch eine andere config-Datei, wo der Medienmanager seine Abbilder drin speichert ?

viele Grüße,
casiosmu


ps:
Weiß jemand, warum man keine Festplatten/CD's direkt in den Medienmanager importieren kann ?
Das wäre ein sehr nützliches Feature.
 
Hab jetzt durch Vergleich mit einer Win7-Installation von VB festgestellt,
dass der erwähnte Bereich <MediaRegistry> in der VirtualBox.xml anscheinend immer leer ist.

Dafür hat VB den config-Dateien der einzelnen VM's ne neue Endung verpasst (.xml -> .vbox)
und dort noch einen <MediaRegistry>-Eintrag hinzugefügt, wo die von dieser VM verwendeten Medien (zusätzlich zu <StorageControllers>) gelistet sind.

Wo der Medienmanager seine Liste hat, ist mir aber immer noch unklar.
 
Also ich habe mein System neu aufsetzen müssen, vorher habe ich den Virtualbox-Ordner im home-Verzeichnis in die Windows-Partition kopiert. So, dann nach Neuinstallation von OpenSuse wieder zurückgeholt, dann in Virtualbox nach Programmstart durch "Hinzufügen" meine Virtuellen Maschinen wieder eingefügt, ging alles wunderbar.
 
tja, so hab ichs im Prinzip auch gemacht ...
sichern -> Suse neu installiern -> VB installiern -> alle VM "hinzufügen" -> "/&§$&§$(
 
hmmm, keiner ne Ahnung ?

mit den neuen VM-configs (*.vbox) merkt er sich die jeweiligen Platten ...
also scheint mir nix anderes übrig zu bleiben, als alle VM's komplett neu zu erstellen und die Einstellungen aus den alten configs zu übernehmen :-(
 
Vielleicht mal den Virtualbox-Ordner ausmisten, die Snapshots und Logs rausnehmen und die Maschine wieder neu "Hinzufügen".
Oder "Neu" erstellen mit der vorhandenen Festplatte dann...
 
So, ich weiss jetzt zwar immer noch nicht, wieso er (nach dem Update) nach dem Hinzufügen die Festplatten vergisst,
aber zum Wiederherstellen gibt es unten stehende Möglichkeiten:

@Rainer: danke, das meiste wusste ich, aber trotzdem interessant, vor allem die Vergleichs-Tabelle 10.1 -> die letzte Zeile, wann er Änderungen übernimmt!

Das Problem: Wie bekommt man eine vorhandene Festplatte in die MediaRegistry ?
Der Witz ist nämlich: in jeder VM merkt sich VB unter dem Punkt "StorageController" die uuid der eingehängten Platten.
Wenn die dort aufgeführten Einträge aber nicht in den MediaRegistry(s) auftauchen, kommt der Fehler "Harddisk not found".
Damit ist die VM aber zum Bearbeiten gesperrt !
Man hat also keine Chance, a) die fehlende Platte zu suchen+einzuhängen noch b) den fehlerhaften Eintrag zu löschen
außer man macht es direkt in den xml-Dateien (die man ja eigentlich nicht manuell bearbeiten soll)

Wenn man (wie ich siehe oben) die fehlenden Platten in eine andere funktionierende VM einhängt, sind sie zwar temporär sichtbar und die VM läuft wieder, allerdings wird dann weder ein Eintrag in die globale Registry hinzugefügt, noch wird die fehlerhafte VM-config (.vbox) aktualisiert.


Abhilfe:
a) die schnellste:
man merkt sich die uuid der fehlenden Platte, öffnet die config-Datei der VM (.xml oder .vbox) und löscht den entsprechenden "<AttachedDevice ...><Image ...></AttachedDevice>"-Eintrag, ein Unterpunkt von "<StorageControllers>"
Damit wird die VM wieder bearbeitbar und man kann die Festplatte neu hinzufügen (womit sie dann auch in der Registry erfasst wird)

b) MediaRegistry bearbeiten
-> ab VB 4.* (.vbox)
in der config-Datei (.vbox) im Punkt "<MediaRegistry><HardDisks>" die fehlenden Platten ergänzen.
Und zwar mit <HardDisk uuid="{...}" location="test.vdi" format="VDI" type="Normal"/>
ACHTUNG: diese Zeile kann bei zukünftigen VB-Versionen anders aussehen !
-> bis VB 4.* (.xml)
siehe oben, allerdings nicht in der .vbox-Datei, sondern in den VB-Einstellungen (VirtualBox.xml)

c) umständlich aber sicher
zuerst eine Sicherheitskopie der VM-configs anlegen (.xml / .vbox)
dann die jeweiligen Maschinen im Manager löschen und neu erstellen
dabei die vorhandene Festplatte auswählen statt neue Platte erstellen
und zuletzt die Einstellungen der Reihe nach wieder auf die Werte der alten VM setzen.


Schlussfolgerung
Die VB-Programmierer haben hier anscheinend nicht zu Ende gedacht.
Wenn die Fehlermeldung "Harddisk not found" kommt, sollte statt nur "Aktualisieren" noch mindestens ein Button "Festplatte auswählen" angezeigt werden, mit dem man dann in der Registry vorhandene und externe Platten auswählen kann.
Damit könnte man das Problem sofort beheben.


nun ja, das wars erst mal.
mfg,
casiosmu
 
Hallo casiosmu,
casiosmu schrieb:
Als nächstes hab ich mir die ~/VirtualBox/VirtualBox.xml angeschaut, das scheint ja die config von VB zu sein.
Die Items <ExtraData> und <MachineRegistry> stimmen auch.
Nur: der Punkt <MediaRegistry> sieht so aus:
Code:
<MediaRegistry>
     <HardDisks/>
     <DVDImages/>
     <FloppyImages/>
</MediaRegistry>
Bei mir steht da auch keine Festplatte sondern nur die ISO-Dateien drinnen - meine Medien bleiben aber erhalten bei openSuse 11.4 und Virtualbox 4.08r 71778

lieben Gruß aus Hessen
 
Oben