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

89

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

Я погуглил, но, похоже, окончательного ответа нет.

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

Джон Сибли
источник
Я могу дать вам способ установить 64-битную виртуальную машину без установки гипервизора, такого как vmware или hyper v.
user2050269

Ответы:

123

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

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

Дэйв Уэбб
источник
3
Потрясающие! Никогда не знал, что этот инструмент существует !!
saschabeaumont 05
5
Приведенная выше ссылка больше не ведет на страницу со ссылкой на инструмент проверки процессора. Вот прямая ссылка: downloads.vmware.com/d/details/…
Фил Росс,
3
@Phil Ross - Спасибо! Я обновил ссылку в ответе на опубликованный вами URL.
Дэйв Уэбб,
2
Итак, вы говорите, что сама VMWare не может этого сделать. Но вы можете преобразовать изображение в изображение qemu, как объяснил dbr. Или (при наличии достаточной оперативной памяти) запустите VMWare из 64-разрядной виртуальной машины хоста, которая, в свою очередь, была виртуальной машиной, работающей в qemu или другой утилите виртуальной машины, эмулирующей 64-разрядный процессор. Сложно, но прямо сказать, что это невозможно, неправильно.
интуитивно понятен
1
Вот ссылка для обеих версий Windows и Linux: my.vmware.com/web/vmware/details/processor_check_5_5_dt/…
jrace
30

Если у вас 32-битное оборудование, нет, вы не можете запустить 64-битную гостевую ОС. «Программное обеспечение VMware не эмулирует набор инструкций для другого оборудования, которое физически отсутствует» .

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

Из этого сообщения в блоге 2008 года (зеркально отражено на 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, необработанный файл будет представлять собой общее пространство с предварительным выделением. Я все еще тестирую -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
dbr
источник
10

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

У меня есть старый Intel Core 2 Duo с Windows XP Professional 2002, работающий на нем, и я заставил его работать.

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

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

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

Кевин
источник
2
Core 2 Duo - это 64-битный процессор. Интересно, что он может работать в VMWare на 32-битной версии Windows XP.
Джон Сибли
1
Сначала вы говорите, что можете запустить 64-битную ОС на 32-битном процессоре, а затем говорите, что вам следует проверить, является ли ваш процессор 64-битным?
kyrias
Я использую 32-разрядную версию, 2 ГБ ОЗУ, Windows 7. Привет, моя виртуальная машина выдает эту ошибку drive.google.com/file/d/0B9LzXNh-gDLNVml5bHl0clZIdUk/…
чувствую себя хорошо и программирую
8

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

Питер Мортенсен
источник
4

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

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

Джоэл Люси
источник
3

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

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

Натан Феллман
источник
1
VMWare не потребуется такая система ловушек. Когда они не используют поддержку аппаратной виртуализации, они проверяют каждый базовый блок на наличие привилегированных инструкций и заменяют их вызовами своих обработчиков. Они / могли / сделать то же самое для инструкций x64, но это сделало бы его эмулятором, а не их делом.
Серафина Бросиус,
3

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

Серафина Бросиус
источник
3

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

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

Питер Мортенсен
источник
2

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

UnkwnTech
источник
1

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

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

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

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

Knapsu
источник
1
Насколько я понимаю, Джон хочет запустить виртуальную машину на 32-битном процессоре
Габор Липтак