2008-09-11 12 views
88

Могу ли я запустить 64-битное изображение VMware на 32-битной машине?Могу ли я запустить 64-битное изображение VMware на 32-битной машине?

Я искал это в googled, но, похоже, нет убедительного ответа.

Я знаю, что он должен быть полностью эмулирован и будет работать как собака, но медленная производительность не обязательно является проблемой, поскольку мне просто интересно проверить некоторые из моих кодов базовых сервисов на 64-битных платформах.

+0

Я могу дать вам способ установить [64-разрядную виртуальную машину] (http://www.youtube.com/watch?v=oFtRw38VIc4&feature=youtu.be), даже не имея гипервизора, установленного как vmware или hyper v. – user2050269 2014-05-13 20:35:34

ответ

121

Самый простой способ проверить свою рабочую станцию ​​- загрузить инструмент VMware Processor Check for 64-Bit Compatibility с веб-сайта VMware.

Вы не можете запустить 64-разрядную сессию VM на 32-разрядном процессоре. Тем не менее, вы можете запустить 64-разрядный сеанс VM, если у вас есть 64-разрядный процессор, но у вас установлена ​​32-разрядная ОС хоста, и ваш процессор поддерживает правильные расширения. Инструмент, связанный выше, скажет вам, если вы это делаете.

+3

Удивительный! Никогда не знал, что этот инструмент существует! – saschabeaumont 2009-03-05 22:54:52

+5

Ссылка выше больше не переносит вас на страницу, которая ссылается на инструмент проверки процессора. Вот прямая ссылка: http://downloads.vmware.com/d/details/processor_check_for_64_bit_compatibility_6_0/JWpiQHBqYiVo – 2009-11-24 10:41:20

+3

@Phil Ross - Спасибо! Я обновил ссылку в ответе с указанным вами URL-адресом. – 2009-11-24 10:55:50

3

Я честно сомневаюсь в этом по ряду причин, но самым важным является то, что есть некоторые инструкции, которые разрешены в 32-битном режиме, но не в 64-битном режиме. В частности, префикс REX, который используется для кодирования некоторых инструкций и регистров в 64-битном режиме, является байтом формы 0x4f: 0x40, но в 32-битном режиме один и тот же байт является либо INC, либо DEC с фиксированным операндом.
Из-за этого любая 64-разрядная команда с префиксом REX будет интерпретироваться как INC или DEC, и не даст VMM возможность эмулировать 64-битную инструкцию (например, путем сигнализации о неопределенном исключении опкода).

Единственный способ, которым это может быть сделано, - использовать исключение trap для возврата в VMM после каждой инструкции, чтобы он мог видеть, нужна ли ему специальная 64-разрядная обработка. Я просто не вижу этого.

+1

VMWare не нужна такая система ловушек. Когда они не используют поддержку аппаратной виртуализации, они проверяют каждый базовый блок для привилегированных инструкций и заменяют их вызовами своих обработчиков. Они/могут/делают то же самое для инструкций x64, но это сделает его эмулятором - не их. – 2008-09-11 09:55:49

3

VMware? Нет. Однако QEMU имеет целевую систему x86_64, которую вы можете использовать. Вероятно, вы не сможете напрямую использовать изображение VMware (IIRC, нет инструмента для конвертирования), но вы можете установить ОС и так себя и работать внутри него. QEMU может быть немного PITA, чтобы встать и работать, но он работает очень хорошо.

2

Да, вы можете. У меня 64-разрядный Debian работает в VMware на Windows.   XP 32-бит. Пока вы устанавливаете гостя для использования двух процессоров, он будет работать нормально.

8

Если ваше оборудование только 32-разрядное, то нет. Если у вас есть 64-битное оборудование и 32-разрядная операционная система, то, может быть. См. Hardware and Firmware Requirements for 64-Bit Guest Operating Systems для получения более подробной информации. Он не имеет ничего общего с одним или несколькими процессорами.

30

Если у вас есть 32-разрядное оборудование, нет, вы не сможете запустить 64-разрядную гостевую ОС. "VMware software does not emulate an instruction set for different hardware not physically present".

Однако QEMU может эмулировать 64-битный процессор, так что вы можете преобразовать машину VMWare и запустить его с этим

От this 2008-era blog post (mirrored by 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 

Чтобы запустить его,

qemu -m 256 -hda guestos.img 

Недостатком? Большинство из нас запускает VMware без предустановочного пространства для виртуального диска. Таким образом, когда мы делаем преобразование из VMware в QEMU, необработанным файлом будет общее пространство WITH preallocation.Я все еще тестирую формат -f qcow, решит ли он проблему или нет. Такие, как:

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

Она сводится к тому, имеет ли процессор в вашей машине бит ВТ (Virtualization) и BIOS позволяет включить его. Например, мой ноутбук является Core 2 Duo, который способен использовать это. Однако мой BIOS не позволяет включить его.

Обратите внимание, что я прочитал, что включение этой функции может замедлить нормальные операции на 10-12%, поэтому он обычно отключается.

3

VMware не позволяет запускать 64-разрядную гостевую систему на 32-битном хосте. Вам просто нужно прочитать документацию, чтобы узнать это.

Если вы действительно хотите это сделать, вы можете использовать QEMU, и я рекомендую хост Linux, но он будет очень медленным (я действительно имею ввиду медленный).

10

Да, запуск 64-разрядной ОС в VMWare возможен из 32-разрядной ОС, если у вас 64-разрядный процессор.

У меня есть старый Intel Core 2 Duo с Windows   XP Professional 2002 работает на нем, и я получил его на работу.

Прежде всего, проверьте, поддерживает ли ваш процессор 64-разрядную ОС. Найдите «Проверка процессора для 64-разрядной совместимости» на сайте VMware. Запустите программу.

Если он говорит, что ваш процессор способен, перезагрузите компьютер и войдите в BIOS и посмотрите, есть ли у вас «виртуализация» и вы можете его включить. Я смог и получил Windows Server 2008 R2 под управлением VMware на этом старом ноутбуке.

Надеюсь, это сработает для вас!

1

Вы можете, если ваш процессор поддерживает 64-битное расширение Virtualization Technology (VT) (его можно отключить в BIOS). Вы не можете сделать это на 32-битном процессоре.

Чтобы проверить это под Linux, вам просто нужно посмотреть в файл /proc/cpuinfo. Только посмотрите на соответствующий флаг (VMX для процессора Intel или SVM для процессора AMD)

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

Чтобы проверить это под Windows, вы должны использовать программу как CPU-Z, которая будет отображать архитектуру процессора и поддерживаемых расширений.