zar, prima cosa prima ... mai e poi mai spostare una macchina che si trova nello stato salvato, prima di spostare è necessario arrestare l'ospite, non solo salvare lo stato.
Assicurati anche di utilizzare la stessa versione di VirtualBOX su entrambi gli host, ma non solo la versione di VirtualBOX, anche la versione del pacchetto di estensione ... o almeno il nuovo host ha una versione superiore, ma mai una versione inferiore su nessuna di queste due.
E infine, l'ho imparato a mie spese, eliminare la configurazione della cartella CONDIVISA su VirtualBOX prima di spostare la macchina, quindi ricrearla in modo corretto ... molto importante quando l'host è un sistema operativo diverso (host Windows / Linux).
E proprio come nota a margine ... i sempre, uso sempre file VDI su disco rigido immutabili sia per OS che per VDI di dati (in questo modo lo stesso VDI DATI può essere usato per più di guest), specialmente trucco per pagefile.sys 4GiB
L'ultima parte, riutilizzare un file VDI immutabile rende le cose un po 'più difficili, VirtualBOX ha un GRANDE ERRORE.
Per vedere il Bug in azione:
- Crea un VDI immutabile (come quello che uso per pagefile.sys)
- Crea due o tre VM su VirtualBOX
- Sposta uno di loro in cima all'elenco (solo per evitare di danneggiare qualcuno dei tuoi)
- Esegui il backup dei file .vbox di ciascuna delle macchine che hai creato (per confrontarlo dopo che si è verificato il BUG)
- Collega quel VDI immutabile a più di uno di quei computer (tranne quello in cima all'elenco)
- Ora vedi il .vbox della macchina che si trova in cima all'elenco
Quella macchina è stata modificata, ha riferimenti alle altre macchine invertibili VDI.
Quindi il BUG è: modifica una macchina aggiungendo un VDI immutabile che viene usato da un'altra influenza la macchina in cima alla lista.
Perché diavolo riutilizzo lo stesso VDI 4GiB su tutte le macchine Windows? Facile, è un disco MBR con una partizione FAT32 in cui inserisco pagefile.sys, poiché è immutabile che tutte le macchine virtuali creeranno un file nella loro cartella di snapshot in cui memorizzano le modifiche e che si perdono al prossimo avvio, quindi lo faccio non ho bisogno di 4GiB per ogni guest memorizzato sul disco host, solo uno ... in questo modo risparmio un sacco di GiB poiché ho più di 20 finestre diverse per testare le app che sviluppo per me, tutte le combinazioni di (XP, Vista , 7, 8, 8.1, 10) * (32 bit, 64 bit) * (Proprio come è alla prima installazione, dopo ogni ServicePack, dopo l'aggiornamento completo di Windows), ottengo molti, molti ospiti ... quindi su tutti condivido l'invisibile 4GiB VDI per la RAM virtuale (pagefile.sys).
E se lasci che il BUG vada oltre, prova a spostare una di queste macchine su un altro host VirtualBOX (ricorda che sono solo macchine virtuali con una configurazione su di esse e nessun guest ancora installato su di esse), vedrai che VirtualBox non ti consente di aggiungerli poiché mancano alcuni VDI (è FALSO e VERO, è che tale prima macchina contiene i riferimenti a tali VDI che si trovano sulla macchina corretta).
Ora confronta i file .VBOX di tutti loro con i precedenti BackUp ... nota come uno viene modificato in modo errato? ... sì, è quello in cima alla lista.
Bene, questo BUG è stato informato su VirtualBOX alcuni anni fa, ancora non riescono a risolverlo ... e sta causando molti, molti problemi.
Inoltre, se sposti la prima delle macchine virtuali in una posizione più bassa, chiudi VirtualBox e riavviala ... ti dirà che alcune macchine sono danneggiate e non possono essere avviate ... sì, la prima nell'elenco deve essere trattato in una forma diversa se non si desidera avere molti problemi.
È un BUG davvero brutto che mi ci è voluto un sacco di giorni per scoprire (alcuni anni fa) l'ho imparato nel modo più duro!
L'avevo superato avendo una macchina che avevo chiamato:
Ha una configurazione vuota e un solo VDI, sì, hai ragione, hai indovinato, l'inmutabile VDI che condivido per tutte le altre macchine virtuali.
Bene, quando apro il file .VBOX vedo al suo interno molte righe nella <MediaRegistry>
<HardDisks>
sezione, una per ogni macchina in cui utilizzo quell'inutilizzabile VDI ... solo come esempio (rimuovo i dati privati):
<MediaRegistry>
<HardDisks>
<HardDisk uuid="...UUID..." location="D:\VDIs\_Virtual_Memory_.vdi" format="VDI" type="Immutable">
<HardDisk uuid="{...UUID...}" location="Snapshots\{...UUID...}.vdi" format="VDI" autoReset="true"/>
<HardDisk uuid="{...UUID...}" location="D:\VMs\Windows001 ... // This belongs to other virtual Machine
<HardDisk uuid="{...UUID...}" location="D:\VMs\Windows002 ... // This belongs to other virtual Machine
<HardDisk uuid="{...UUID...}" location="D:\VMs\Windows003 ... // This belongs to other virtual Machine
<HardDisk uuid="{...UUID...}" location="D:\VMs\Windows004 ... // This belongs to other virtual Machine
<HardDisk uuid="{...UUID...}" location="D:\VMs\Windows005 ... // This belongs to other virtual Machine
<HardDisk uuid="{...UUID...}" location="D:\VMs\Windows006 ... // This belongs to other virtual Machine
<HardDisk uuid="{...UUID...}" location="D:\VMs\Windows007 ... // This belongs to other virtual Machine
<HardDisk uuid="{...UUID...}" location="D:\VMs\Windows008 ... // This belongs to other virtual Machine
<HardDisk uuid="{...UUID...}" location="D:\VMs\Windows009 ... // This belongs to other virtual Machine
<HardDisk uuid="{...UUID...}" location="D:\VMs\Windows010 ... // This belongs to other virtual Machine
<HardDisk uuid="{...UUID...}" location="D:\VMs\Windows011 ... // This belongs to other virtual Machine
<HardDisk uuid="{...UUID...}" location="D:\VMs\Windows012 ... // This belongs to other virtual Machine
<HardDisk uuid="{...UUID...}" location="D:\VMs\Windows013 ... // This belongs to other virtual Machine
... and so on ... // This belongs to other virtual Machine
</HardDisk>
</HardDisks>
</MediaRegistry>
BUG carino, non risolto da anni.
Bene, per spostare tali macchine ... devi modificare manualmente i file .VBOX, per mettere tutti questi riferimenti ai dischi sul nuovo host sul primo computer (quello che si trova in cima all'elenco) prima di aggiungere il .VBOX file nell'elenco, quindi quando li si aggiunge VirtualBOX ha i riferimenti ai VDI mancanti (mancanti causati dal grande BUG).
Il problema si verifica perché ogni volta che si connette un VDI utilizzato su un altro computer, VirtualBOX aggiorna due file .VBOX (quello che appartiene al computer in uso) e al primo nell'elenco.
Non sono del tutto sicuro di cosa succederebbe quando nella lista, il primo non avesse un VDI così comune collegato ad esso ... meglio non provarlo, visto quello che vedo.
Quindi migrare verso un altro HOST è molto più complicato di quello che sembra essere una cattiva implementazione della struttura interna dei file .VBOX e a causa di BUG veramente grandi quando VirtualBOX li modifica.
Non riesce:
- La struttura interna (XML) dipende dall'HOST (Windows o Linux)
- La modifica di una macchina può alterarne un'altra, non solo quella che viene modificata
- ... cos'altro ?
Ho bisogno di più ... migra sempre le macchine facendo questo (e non ho mai avuto problemi, mai e poi):
- Prendi nota dell'elenco di tutte le macchine (ordine, raggruppamento, ecc.)
- Prendi nota del primo nell'elenco (tutta la sua configurazione)
- Prendi nota di tutte le proprietà delle macchine che voglio spostare su un altro host
- Copia i file .vbox come file .txt (quello in cima all'elenco + tutte le macchine che voglio migrare)
- Ricrea tutte le macchine (e ne hai una speciale in cima all'elenco) all'interno di VirtualBox sul nuovo host
- Chiudi VirtualBox sul nuovo host
- Diff confronta il vecchio .txt con i nuovi file .vbox e copia da .txt a .vbox alcune parti in modo umano, non solo Copia e incolla
- Apri VirtualBox e collega tutti i VDI nell'ordine corretto
- Ancora una volta Chiudi VirtualBox sul nuovo host
- Diff confronta il vecchio .txt con i nuovi file .vbox e 'correggi' da .txt a .vbox alcune parti in modo umano, non solo Copia e incolla
Tutto il resto (cartella snapshot e file VDI) li copio normalmente (copia e incolla del file system).
Tutto quel duro lavoro manuale è causato dal Big BUG VirtualBox: modifica / altera una macchina che non è stata modificata quando si collega un VDI immutabile che viene utilizzato su più di una macchina, altrimenti sarebbe sufficiente una semplice copia e incolla del file .VBOX (dopo correzione di percorsi di cartelle condivise, ecc.).