Posso eseguire un'immagine VMware a 64 bit su una macchina a 32 bit?


89

Posso eseguire un'immagine VMware a 64 bit su una macchina a 32 bit?

Ho cercato su Google, ma non sembra esserci una risposta definitiva.

So che dovrebbe essere completamente emulato e funzionerebbe come un cane, ma le prestazioni lente non sono necessariamente un problema poiché sono solo interessato a testare alcuni dei miei codici di servizi in background su piattaforme a 64 bit.


Posso darti un modo per installare una macchina virtuale basata su 64 bit senza nemmeno avere un hypervisor installato come vmware o hyper v.
user2050269

Risposte:


123

Il modo più semplice per controllare la tua workstation è scaricare lo strumento VMware Processor Check for 64-Bit Compatibility dal sito web VMware.

Non è possibile eseguire una sessione VM a 64 bit su un processore a 32 bit. Tuttavia, è possibile eseguire una sessione VM a 64 bit se si dispone di un processore a 64 bit ma è stato installato un sistema operativo host a 32 bit e il processore supporta le estensioni corrette. Lo strumento collegato sopra ti dirà se il tuo lo fa.


3
Eccezionale! Non ho mai saputo che questo strumento esistesse !!
saschabeaumont

5
Il collegamento sopra non ti porta più a una pagina che fa riferimento allo strumento di controllo del processore. Ecco un collegamento diretto: downloads.vmware.com/d/details/…
Phil Ross

3
@Phil Ross - Grazie! Ho aggiornato il collegamento nella risposta con l'URL che hai pubblicato.
Dave Webb

2
Quindi stai dicendo che VMWare stesso non può farlo. Ma potresti convertire l'immagine in un'immagine qemu come spiegato da dbr. Oppure (con RAM sufficiente) eseguire VMWare da una VM host a 64 bit che a sua volta era una VM in esecuzione in qemu o un'altra utility VM che emula un processore a 64 bit. Complicato, ma dire apertamente che non è possibile non è corretto.
intuito il

1
Ecco il link anche per entrambe le versioni Windows e Linux: my.vmware.com/web/vmware/details/processor_check_5_5_dt/…
jrace

30

Se hai hardware a 32 bit, no, non puoi eseguire un SO guest a 64 bit. "Il software VMware non emula un set di istruzioni per hardware diverso non fisicamente presente" .

Tuttavia, QEMU può emulare un processore a 64 bit, quindi puoi convertire la macchina VMWare ed eseguirla con questo

Da questo post del blog dell'era 2008 (rispecchiato da archive.org) :

$ cd /path/to/vmware/guestos
$ for i in \`ls *[0-9].vmdk\`; do qemu-img convert -f vmdk $i -O raw {i/vmdk/raw};done
$ cat *.raw >> guestos.img

Per eseguirlo

qemu -m 256 -hda guestos.img

Lo svantaggio? La maggior parte di noi esegue VMware senza spazio di preallocazione per il disco virtuale. Quindi, quando effettuiamo una conversione da VMware a QEMU, il file raw sarà lo spazio totale CON preallocazione. Sto ancora testando con il -f qcowformato se risolverà il problema o no. Ad esempio:

for i in `ls *[0-9].vmdk`; do qemu-img convert -f vmdk $i -O qcow ${i/vmdk/qcow}; done && cat *.qcow >> debian.img

10

Sì, l'esecuzione di un sistema operativo a 64 bit in VMWare è possibile da un sistema operativo a 32 bit se si dispone di un processore a 64 bit.

Ho un vecchio Intel Core 2 Duo con Windows XP Professional 2002 in esecuzione e l'ho fatto funzionare.

Prima di tutto, verifica se la tua CPU è in grado di eseguire un sistema operativo a 64 bit. Cerca "Controllo del processore per la compatibilità a 64 bit" sul sito VMware. Esegui il programma.

Se dice che il tuo processore è in grado, riavvia il computer e vai nel BIOS e verifica se hai "Virtualizzazione" e sei in grado di abilitarlo. Sono stato in grado di eseguire Windows Server 2008 R2 con VMware su questo vecchio laptop.

Spero che funzioni per te!


2
Core 2 Duo è un processore a 64 bit. È interessante che possa essere eseguito in VMWare sulla versione a 32 bit di Windows XP.
John Sibly,

1
Prima dici che puoi eseguire un sistema operativo a 64 bit su un processore a 32 bit e poi dici che dovresti controllare se il tuo processore è a 64 bit?
kyrias

sto usando 32 bit, 2 GB di RAM, Windows 7.Ehi, la mia VM sta dando questo errore drive.google.com/file/d/0B9LzXNh-gDLNVml5bHl0clZIdUk/…
sentiti bene e programmando il


4

Si riduce al fatto che la CPU della tua macchina abbia il bit VT (virtualizzazione) e il BIOS ti consente di accenderlo. Ad esempio, il mio laptop è un Core 2 Duo che è in grado di usarlo. Tuttavia, il mio BIOS non mi consente di accenderlo.

Nota che ho letto che l'attivazione di questa funzione può rallentare le normali operazioni del 10-12%, motivo per cui normalmente è disattivata.


3

Onestamente ne dubito, per una serie di ragioni, ma la più importante è che ci sono alcune istruzioni che sono consentite in modalità a 32 bit, ma non in modalità a 64 bit. In particolare, il prefisso REX utilizzato per codificare alcune istruzioni e registri in modalità a 64 bit è un byte nella forma 0x4f: 0x40, ma in modalità a 32 bit lo stesso byte è INC o DEC con un operando fisso.
Per questo motivo, qualsiasi istruzione a 64 bit con prefisso REX verrà interpretata come INC o DEC e non darà al VMM la possibilità di emulare l'istruzione a 64 bit (ad esempio segnalando un'eccezione di codice operativo non definita).

L'unico modo per farlo è utilizzare un'eccezione trap per tornare al VMM dopo ogni istruzione in modo che possa vedere se necessita di una gestione speciale a 64 bit. Semplicemente non riesco a vederlo accadere.


1
VMWare non avrebbe bisogno di un simile sistema di trap. Quando non utilizzano il supporto per la virtualizzazione hardware, controllano ogni blocco di base per le istruzioni privilegiate e li sostituiscono con le chiamate ai loro gestori. Potrebbero / fare lo stesso per le istruzioni x64, ma questo lo renderebbe un emulatore, non la loro cosa.
Cody Brocious,

3

VMware? No. Tuttavia, QEMU ha una destinazione di sistema x86_64 che è possibile utilizzare. Probabilmente non sarai in grado di utilizzare direttamente un'immagine VMware (IIRC, non esiste uno strumento di conversione), ma puoi installare il sistema operativo e simili e lavorare al suo interno. QEMU può essere un po 'un PITA per essere installato e funzionante, ma tende a funzionare abbastanza bene.


3

VMware non consente di eseguire un guest a 64 bit su un host a 32 bit. Devi solo leggere la documentazione per scoprirlo.

Se vuoi davvero farlo, puoi usare QEMU e io consiglio un host Linux, ma sarà molto lento (intendo davvero lento).


2

Si, puoi. Ho una Debian a 64 bit in esecuzione in VMware su Windows XP a 32 bit. Finché imposti il ​​Guest per utilizzare due processori, funzionerà perfettamente.


1

Puoi farlo se il tuo processore è a 64 bit e l'estensione Virtualization Technology (VT) è abilitata (può essere disattivata nel BIOS). Non puoi farlo su un processore a 32 bit.

Per verificarlo sotto Linux devi solo guardare nel file / proc / cpuinfo . Basta cercare il flag appropriato ( vmx per processore Intel o svm per processore AMD)

egrep '(vmx|svm)' /proc/cpuinfo

Per verificarlo in Windows è necessario utilizzare un programma come CPU-Z che visualizzerà l'architettura del processore e le estensioni supportate.


1
Per quanto ne so John vuole eseguire la VM su un processore a 32 bit
Gábor Lipták
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.