Как запустить виртуальную машину без виртуализации

Содержание

Как включить виртуализацию (или почему тормозят и не работают виртуальные машины и эмуляторы, BlueStacks, например)

VirtualizatsiyaВсех приветствую!

Собственно, что это такое?

Виртуализация — это спец. технология, позволяющая на одном физическом компьютере запускать несколько операционных систем. То есть эта «штука» позволяет в вашей Windows запускать эмуляторы Android, Windows, iOS и пр.

Разумеется, если она отключена — то всё это «добро» будет либо тормозить (либо, что более вероятно, просто зависнет или при запуске возникнет ошибка!).

Ниже несколько советов о том, как проверить задействована ли эта самая виртуализация, и как ее включить. 👌

uskwin

Разбираемся с виртуализацией

ШАГ 1: поддерживает ли ее ЦП

И так, для начала стоит сказать, что если у вас относительно новый ПК — скорее всего ваш процессор поддерживает аппаратную виртуализацию (так называемые технологии Intel VT-X и AMD-V (более подробно на Википедии) ).

Но тем не менее, прежде чем разбираться с эмуляторами, «рыскать» по BIOS и «искать» оное — не помешало бы уточнить этот момент. 👌 (тем более, что в BIOS номинально строка может быть, а по факту. она будет «пустой»)

Для этого необходимо узнать 👉 точную модель своего ЦП. Сделать это можно, например, с помощью сочетания Win+R, и команды msinfo32 (см. скрин ниже 👇).

Svedeniya o sisteme chto za TSP

Сведения о системе — что за ЦП

После, зная модель ЦП, найдите спецификацию к нему (Google 👍), и посмотрите, есть ли в разделе с технологиями (инструкциями) искомая строка (Intel VT-X и AMD-V 👇).

Spetsifikatsiya k TSP AMD i Intel

Спецификация к ЦП от AMD и Intel

ШАГ 2: проверяем, задействована ли она (Windows 10)

Virtualizatsiya otklyucheno

ШАГ 3: включаем виртуализацию (настройка BIOS)

1) Первое действие — 👉 входим в настройки BIOS (на всякий случай привел ссылку на инструкцию с подробным описанием, как это можно сделать).

2) Второе, необходимо найти вкладку с расширенными настройками системы — обычно она именуется примерно, как «System Configuration» или «Advanced Mode» (зависит от версии BIOS / UEFI). Пару примеров ниже. 👇

В общем, наша цель найти строку 👉 Virtualization Technology (или Intel Virtualization Technology // AMD-V // Intel VT-X) и проверить чтобы стоял режим 👉 Enabled!

Virtualization Technology Enabled znachit vklyucheno

Virtualization Technology (Enabled — значит включено!)

UEFI Asus Advanced Mode

Intel Virtualization Technology Disabled

3) Не забудьте, что после изменения настроек в BIOS — их необходимо сохранить (чаще всего клавиша F10 — Save and Exit).

Чтобы включить этот компонент:

Hyper V vklyucheno

У меня на блоге было несколько заметок, посвященных настройке и использованию виртуальных машин. Возможно, пробежавшись по этим инструкциям, вам удастся быстрее настроить виртуальную машину и решить свою задачу. Ссылочки ниже. 👌

2) Как установить и настроить виртуальную машину VirtualBox (пошаговый пример / или как запустить старую Windows в новой ОС).

Источник

Можете ли вы запустить VirtualBox без виртуализации?

Таким образом, вам нужен процессор, поддерживающий VT-x или AMD-V, чтобы использовать 64-битные гостевые системы с VirtualBox. Однако QEMU, Bochs и VMWare Player поддерживают 64-разрядные гостевые системы без поддержки аппаратной виртуализации (по крайней мере, согласно этой странице).

Вам нужна виртуализация для VirtualBox?

В отличие от другого программного обеспечения виртуализации, для многих сценариев использования Oracle VM VirtualBox не требует наличия функций аппаратной виртуализации. С помощью сложных методов Oracle VM VirtualBox виртуализирует многие гостевые операционные системы полностью программно.

Нужна ли мне виртуализация?

Часто технология виртуализации не требуется для эмуляции инструкций x86 или x86-64, хотя и в ущерб скорости. Лучше всего оставить его явно отключенным, если не требуется. Хотя это правда, что вам не следует включать VT, если вы действительно не используете его, больше нет риска, включена эта функция или нет.

Как запустить эмулятор без виртуализации?

Есть ли способ запустить эмулятор Android в Virtual Box без установленного VT-x? Нет Нет другого выхода, кроме вложенной виртуализации.

Чтобы запустить образы ARM:

Как запустить виртуальную машину, если мой процессор не поддерживает виртуализацию?

Не удается заставить виртуализацию работать на вашем ПК? 5 простых решений, которые стоит попробовать

Зачем нужна виртуализация?

Самая важная функция виртуализации — это возможность запускать несколько операционных систем и приложений на одном компьютере или сервере. … Виртуализация обычно может улучшить общую производительность приложения за счет технологии, которая может балансировать ресурсы и предоставлять только то, что нужно пользователю.

VirtualBox безопасен?

Это безопаснее? Да, выполнять программы на виртуальной машине безопаснее, но это не совсем безопасно (опять же, что такое?). Вы можете избежать виртуальной машины, если используется уязвимость, в данном случае в VirtualBox.

Замедляет ли виртуализация ПК?

Да, если: Вы устанавливаете виртуальное устройство на тот же жесткий диск, что и системный диск, это снизит производительность.

Повышает ли отключение виртуализации производительность?

Что касается стабильности, включение или отключение этого не должно ухудшать / улучшать стабильность / производительность ПК. Если вы не используете программное обеспечение, использующее виртуализацию, это не должно влиять на производительность.

Улучшает ли виртуализация игры?

Как правило, с виртуализацией у вас возникают проблемы с играми, потому что смоделированного графического процессора недостаточно для чего-либо, кроме базовой трехмерной графики, необходимой для композитинга (Windows Aero или Windows 8 или новее наложенного композитинга).

Могу ли я запустить BlueStacks без виртуализации?

Для использования в приложении без виртуализации

Более того, Bluestacks — это даже один из лучших эмуляторов Android, который работает без виртуализации. Люди по-прежнему могли хорошо играть, редактировать, писать текстовые сообщения и заниматься другими делами. При открытии Bluestacks просто игнорируйте запрос на включение виртуального.

Повлияет ли виртуализация на производительность?

Накладные расходы на виртуализацию ЦП обычно приводят к снижению общей производительности. Для приложений, которые не привязаны к ЦП, виртуализация ЦП, вероятно, приводит к увеличению использования ЦП. … Развертывание таких приложений на двухпроцессорных виртуальных машинах не ускоряет работу приложения.

Эмулятор Genymotion бесплатный?

Genymotion — один из лучших бесплатных эмуляторов Android на рынке. Это мощное и простое в использовании программное обеспечение будет интересно как естественно любознательным, так и разработчикам Android.

Как исправить, что этот компьютер не поддерживает технологию виртуализации Intel?

3.8+ — скачать через Android Studio SDK Manager. Виртуальное устройство Android x86 (AVD) — Создайте AVD.

Некоторые рекомендуют холодную перезагрузку:

Поддерживает ли Pentium виртуализацию?

Некоторыми примерами процессоров, не поддерживающих виртуализацию, являются старые Pentium 4, Celeron и AMD Athlons. … Некоторые примеры процессоров, которые должны поддерживать виртуализацию: Core 2 Duo, Core 2 Quad, Intel Core i3, i5, i7, AMD Athlon X2, AMD Athlon X4 и AMD Phenom X4.

Источник

Некоторые особенности использования виртуальных машин для новичков

Виртуальные машины, такие как Virtualbox, используются для эмуляции виртуальное оборудование и запуска нескольких операционных систем на компьютере. Чем лучше будет у вас CPU и чем больше будет оперативной памяти, тем быстрее будут выполнятся виртуальные машины на вашем компьютере.
Я предлагаю несколько советов которые помогут вам сэкономить время при начальной настройке виртуальных машин. Это будет полезно для работы с виртуальными машинами VirtualBox, VMware, Parallels, или любой другой.
image loader

Обязательно установите дополнения гостевой ОС VirtualBox или VMware Tools

Установка пакета проста — в VirtualBox, после загрузки гостевой операционной системы, нажмите кнопку меню Устройства и выберите «Install Guest Additions». Если вы используете VMware, выберите «Install VMware Tools» в меню Virtual Machine. Следуйте инструкциям на экране для завершения установки — если вы используете Windows в качестве гостевой операционной системы, то это будет аналогично установке любого другого приложения.
image loader

Убедитесь, что вы имеете самую последнюю версию Guest Additions — если вы видите уведомление, что доступно обновление для Guest Additions или VMware Tools, вы должны установить его.

Создание фиксированного размера дисков при первоначальной настройке

При создании виртуальной машины, вы можете создать два различных типа виртуальных дисков. По умолчанию программа обычно предлагает использовать динамически выделяемые диски, которые растут, вместе с занимаемым местом гостевой ОС.

Например, если вы создаете новую виртуальную машину с динамически выделяемым диском с максимальным размером 30 Гб, это не займет до 30 Гб места на жестком диске сразу.После установки операционной системы и программ, диск может только занять до 10 Гб. По мере добавления файлов на виртуальном диске, он будет расширяться до максимального размера в 30 Гб.

Это может быть удобно — каждая виртуальная машина не будет занимать неоправданно много места на вашем жестком диске. Тем не менее, это медленнее, чем создание фиксированного размера диска (диск с заранее выделенным местом). При создании фиксированного размера диска, все 30 Гб, будет занято немедленно на вашем компьютере.

Здесь есть компромисс — фиксированный размер диска занимает больше места на жестком диске, но работает с виртуальным жестким диском быстрее. Вы также избавитесь от фрагментации файла — место будет занято большим блоком вместо того, чтобы добавлять по всему диску более мелкие куски.
image loader

Исключите каталог виртуальных машин в вашем антивирусе

Ваш антивирус может сканировать файлы виртуальной машины, когда к ним происходит обращение, снижая производительность. Антивирус не сможет определить вирус внутри виртуальной машины, работающий на вашей гостевой операционной системе, так что эта проверка только вредит.

Чтобы ускорить процесс, вы можете добавить свой виртуальный каталог машины в список исключений антивирусного автора. Как только он находится в списке, ваш антивирус будет игнорировать все файлы в этом каталоге.
image loader

Выделите больше памяти

Виртуальные машины любят много виртуальной памяти. Microsoft рекомендует 2 Гб RAM для 64-битной Windows 7, и эта рекомендация относится и к Windows 7 x32, когда он работает в виртуальной машине. Если вы работаете большими приложениями в виртуальной машине, вы можете выделить более 2 Гб оперативной памяти.

Вы можете выделить больше оперативной памяти в диалоге настроек вашей виртуальной машины (виртуальная машина должна быть выключена, чтобы сделать это). Если на Вашем компьютере не хватает памяти, чтобы комфортно работать вместе с виртуальной машиной, вы можете заметить очень большое снижение производительности компьютера при использовании файла подкачки на жестком диске.
image loader

Выделите больше процессоров

Если у Вас компьютер с несколькими процессорами или ядрами, вы можете выделить дополнительные процессоры для вашей виртуальной машины из окна настроек VM. VM с двухъядерным (или четырехъядерным) процессором будет более шустро реагировать.

Если вы собираетесь инсталлировать ОС семейства MS-Windows и в будущем чтобы можно было использовать больше ядер при инсталляции указывайте 2 ядра для того чтобы поставился корректный HAL, после инсталляции вы можете выключить машину и поставить 1 ядро по умолчанию для повседневного использования. Но для будущего вы всегда сможете добавить ядра без деинсталляции ОС. Linux VM может динамически определять любое количество ядер при загрузке ОС.
image loader

Настройте параметры видео

Тонкая настройка параметров видео и выделение большего объема видеопамяти поможет также улучшить скорость вашей виртуальной машины. Например, включение функции 2D ускорение в VirtualBox улучшает воспроизведение видео в виртуальных машинах, включение 3D-ускорения позволит вам использовать некоторые 3D-приложения.
image loader

По большому счету нужно минимизировать использование 3D например ОС Windows 7 — отключив Aero.

Убедитесь, что функции Intel VT-x или AMD-V включены

Intel VT-x и AMD-V являются специальными расширениями процессора, которые улучшают скорость виртуализации. Новые Intel и AMD процессоры обычно включают в себя эти функции. Тем не менее, некоторые компьютеры не включают автоматически VT-x или AMD-V — вам придется включить этот параметр в BIOS вашего компьютера.

Чтобы определить, поддерживает ли Ваш Intel процессор расширение Intel VT, воспользуйтесь утилитами показывающими системную информацию. Если ваш процессор поддерживает эту функцию, но опция недоступна в вашей виртуальной машине, вы должны в BIOS вашего компьютера включить эту функцию. Этот параметр обычно включен по умолчанию в материнских платах с процессорами AMD.
image loader

Поместите файлы виртуальной машины на другой диск

Производительность диска может ограничить скорость вашей виртуальной машины. Размещение файлов виртуальной машины на отдельном физическом диске или не на системном диске — может улучшить производительность. Ваша виртуальная машина и система не будут конкурентно читать и писать с одного диска.
image loader

Однако, вы не должны запускать виртуальную машину с внешнего диска (USB) — это будет гораздо медленнее.

Источник

Как включить виртуализацию на компьютере или ноутбуке с Windows 10, 8.1 или Windows 7

Виртуализация позволяет пользователям запускать некоторые программы, и даже операционные системы в виртуальной машине, а не ставить их на жесткий диск. Изначальной возможностью пользовались тестировщики, которые работали с новыми программными продуктами. С ее помощью они защищали свою операционную систему от повреждения или вирусов. Сейчас у каждого пятого пользователя стоят эмуляторы для виртуализации рабочей среды Android или принадлежащей к другим операционным системам. Если вы решили использовать защищенную рабочую среду в своем компьютере, то необходимо знать, как включить виртуализацию в Windows.

Что такое виртуализация?

Термин «виртуализация» сегодня определенно в моде — его постоянно употребляют люди, хоть немного знакомые с компьютерной средой. Но далеко не всем известно его значение, и далеко не все представляют себе истинный потенциал этой продвинутой технологии.
Виртуализация, выражаясь самым простым языком, это компьютер в компьютере. Ее использование позволяет вам создавать виртуальную рабочую среду — своего рода изолированную «песочницу», процессы в которой никак не будут затрагивать ресурсы вашей собственной рабочей машины. При помощи виртуализации можно, к примеру, запускать сразу несколько версий одной операционной системы — удобно для тех, кто ценит ретро-игры или часто пользуется устаревшими, но полезными и функциональными приложениями, несовместимыми и актуальной версией Windows.

Дополнительный плюс — процессы, как мы уже отмечали чуть ранее, в этой «песочнице» протекают обособленно, а значит, вероятность занести на компьютер вирус или другое вредоносное ПО стремится к нулю.

Стоит, впрочем, отметить, что практически у любой современной технологии есть свои нюансы и «подводные камни». В нашем случае к ним можно отнести возможности процессоров — далеко не все из них способны работать с виртуализацией.

lazy placeholder

Вопросы и ответы можно прочитать по ссылке.

lazy placeholder lazy placeholder lazy placeholder lazy placeholder lazy placeholder lazy placeholder lazy placeholder

Включение технологии аппаратной виртуализации

Виртуальные машины используются для тестирования операционных систем, тестовых программ в среде песочницы (Sandbox) и для экспериментов с системными функциями, не беспокоясь о каких-либо последствиях. Есть часть популярных программ, например, VirtualBox, которые могут работать без этой функции, но тогда не сможем рассчитывать на слишком хорошую производительность. Включение аппаратной виртуализации сделает действия виртуальных машин гораздо мощнее.

Технологии аппаратного ускорения, встроенные в процессоры AMD и Intel, известны как «AMD-V» и «Intel VT-X». Во многих случаях виртуализация по умолчанию отключена. При попытке включить виртуальную машину функция выбрасывает предупреждение об ошибке, информирующее пользователя о том, что для работы программного обеспечения требуется аппаратное ускорение, которое в текущий момент отключено.

Функцию виртуализации можно включить или отключить по желанию и все, что нужно сделать, — это получить доступ в BIOS или UEFI.

Как понять, поддерживает ли мой процессор виртуализацию?

Сделать это собственными средствами операционной системы невозможно, единственный вариант — установка сторонних утилит. Но для начала нужно определиться с тем, какой вообще процессор установлен в вашем компьютере или ноутбуке.

Шаг 1

Запустите диспетчер задач. «Классический» способ — одновременно зажать клавиши Ctrl + Alt + Delete. Также в десятой версии Windows диспетчер можно открыть через панель управления — для этого щелкните правой кнопкой мыши по значку «Пуск» и в появившемся меню выберите соответствующий пункт.

Шаг 2

В диспетчере задач перейдите во вкладку «Производительность» и кликните по строчке «ЦП (центральный процессор»). В правой верхней части открывшегося окна будет указана модель вашего процессора.

lazy placeholder

Шаг 3

Для процессоров модели Intel: скачайте с официального сайта компании-производителя утилиту под названием Intel Processor Identification Utility. Установите ее и запустите. В открывшемся окне найдите вкладку CPU Technologies. Если напротив модели вашего процессора указано слово «да» или просто написано название конкретной технологии, поздравляем — ваш компьютер поддерживает визуализацию.

Для процессоров модели AMD вся процедура происходит аналогичным образом — с тем лишь исключением, что программа для определения конфигурации называется AMD-V. Скачивать ее, разумеется, тоже нужно с сайта производителя — компании AMD.

lazy placeholder lazy placeholder lazy placeholder lazy placeholder lazy placeholder lazy placeholder lazy placeholder lazy placeholder lazy placeholder lazy placeholder lazy placeholder

Системные требования

Перед установкой любого софта необходимо убедиться, что ваш аппарат его потянет. Иными словами, соответствует ли железо вашего ПК или ноутбука минимальным системным требованиям. Для того чтобы программа работала стабильно, быстро, без зависаний и тормозов, периодических вылетов и долгой загрузки, желательно чтобы компьютер соответствовал рекомендуемым системным требованиям, которые требуют гораздо большей мощности железа нежели минимальные.

lazy placeholder

Запуск движка виртуализации
Для запуска BlueStacks необходимы следующие минимальные системные требования:

Помимо этого, вы должны обладать правами администратора (на работе в офисе установить не получится, увы) и иметь свежие драйвера чипсета и видеокарты. Если же ваш аппарат не соответствует всем перечисленным требованиям, то в процессе установки и последующего запуска будут происходить те или иные ошибки.

Как войти в системные настройки BIOS?

Чтобы это сделать, придется немного покопаться в системных настройках. Впрочем, эта процедура вовсе не так сложна, как может показаться поначалу. Затруднения могут возникнуть только на этапе входа в BIOS. Все дело в том, что у разных моделей персональных компьютеров и ноутбуков свои «ключи» — «горячие клавиши», которые нужно нажать, чтобы войти в нужный раздел. Но в общих чертах процедура схожа: чтобы попасть в BIOS, вам нужно перезапустить компьютер, и в тот момент, когда на экране появится фирменный логотип, нажать нужную кнопку. У изделий фирмы Acer это F8, у Asus — F12 и так далее.

Альтернативный вариант — открыть параметры компьютера, выбрать пункт «Обновление и безопасность», а затем перейти во вкладку «Восстановление». На этой вкладке нужно будет щелкнуть по строчке «Особые варианты загрузки». Компьютер перезапустится, после чего появится синий экран, где нужно будет выбрать пункт «Диагностика» + «Дополнительные параметры» — «Параметры встроенного ПО UEFI». За этим последует еще одна перезагрузка, после которой вы наконец попадете в нужный раздел с настройками.

Итак, мы успешно вошли в BIOS. Что дальше?

lazy placeholder lazy placeholder lazy placeholder lazy placeholder lazy placeholder lazy placeholder lazy placeholder

Несмотря на определенные сложно с активацией и настройкой, виртуализация — вещь несомненно полезная. Возможность иметь еще один (а то и не один – все зависит от возможностей процессора) компьютер, куда можно «сбрасывать» лишние задачи, чтобы не загружать ими операционную память и не тратить ресурсы, наверняка обрадует как рядовых, так и продвинутых пользователей ПК. Так что если вы еще не испытали на себе все прелести этой модной сейчас технологии — непременно займитесь этим в ближайшее время. А наша инструкция вам поможет.

Настраиваем виртуализацию на процессоре Intel

Шаг 1

Переходим во вкладку Advanced. Там находим радел под названием CPU Configuration, а в нем — отдельную строчку под названием Intel Virtualization Technology.

Шаг 2

По умолчанию напротив указанной строчки должен стоять параметр «Disabled ». Если состояние параметра отображается как «Enable», значит, виртуализация уже работает, и вы можете смело и без ограничений ей пользоваться. Если нет, значение параметра следует поменять вручную, после чего перезапустить компьютер.

Причины

Следует отметить, что для Bluestacks характерны одинаковые проблемы вне зависимости от версии ОС или самой программы. Основной причиной неисправности можно отметить неполное соответствие системных требований или случайные сбои в работе приложения.

Ошибка Bluestacks «не запускается движок виртуализации» (оригинальный текст сообщения) возникает на 99% загрузки программы. В этом и сложность на слабых компьютерах. Можно выделить такие причины этого сбоя:

Включаем виртуализацию в операционной системе Windows 10

В десятой версии самой популярной операционной системы есть опция, позволяющая включать виртуализацию и без долгих манипуляций с настройками BIOS.

Шаг 1

Вызываем командную строку одновременным нажатием клавиш WIN и R. В появившемся окне пишем слово control и нажимаем Enter.

lazy placeholder

Шаг 2

Если все было сделано правильно, сразу после нажатия вводной клавиши перед нами откроется панель управления ОС. В ней нужно последовательно отыскать пункты «Программы и компоненты» и «Включение и отключение компонентов Windows».

lazy placeholder

В первых же строчках появившегося списка вы увидите пункт Hyper-V – это и есть необходимая нам утилита. «Раскройте» ее, нажав на значок в виде плюса, и проставьте галочки во всех свободных окошках.

lazy placeholder

После этого сохраните сделанные изменения и выйдите из панели управления.

lazy placeholder

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

Перезагрузка Bluestacks

Когда движок не запускается, это будет выглядеть примерно так:

lazy placeholder

Прогресс загрузки просто стоит на месте, и всё.

Самое простое – попробовать просто перезагрузить движок. Для этого в самом интерфейсе эмулятора предусмотрен пункт меню.

Если это не помогает, тогда можно применить универсальный способ борьбы с любыми неполадками Windows: перезагрузить весь компьютер.

lazy placeholder

Ломаем BIOS: включение поддержки виртуализации VT-x на нетбуке Acer Aspire One

В данной статье мы расскажем вам пошагово о том, как допилить напильником свой нетбук или ноутбук, в котором по какому-то недоразумению выключен и залочен в таком состоянии бит 2 в MSR 0x3A — попросту говоря, у вас есть в процессоре поддержка виртуализации, но она заблокирована биосом. ПРЕДУПРЕЖДЕНИЕ: всё, описанное в этой статье, рассчитано на то, что вы знаете, что делаете. Всё на свой страх и риск! Если не уверены — не пытайтесь повторить это дома.

Итак, в чем же проблема?

Проблема, которую мы будем решать, для конечного пользователя компьютера выглядит так: При использовании гипервизора второго типа (например, VirtualBox)

Вот такое сообщение вы можете видеть при попытке запуска виртуалки с числом процессоров, большим чем 1:

lazy placeholder

Аналогичное сообщение об ошибке вы также получаете, если собираетесь запускать 64-битную виртуальную машину (например, Debian amd64) с 32-разнядной хост ОС, например WinXP.

Можно ли вылечить это?

На этот вопрос можно ответить, проверив некоторые биты в некоторых словах состояния процессора. Самый простой способ убедиться, что в вашем случае проблема лечится — это посмотреть на то, что показывает программа SecurAble. В моем случае это выглядело так:

lazy placeholder

Итак, если у вас программа показывает такую же картинку, как показанная выше, то вы можете вылечить эту проблему. Однако нюанс заключается в том, что это установить нужный бит в регистре процессора можно только в БИОСе, поскольку вредный БИОС вашего ноутбука его выставляет в ноль, потом включает блокирующий бит и изменение этого бита более невозможно (до перезагрузки компа, где БИОС во время POST опять его сбросит и залочит).

Биос на нетбуке Acer Aspire производства Insyde, настройки его очень скудны и по F2 естественно мы не можем зайти в программу редактирования настроек БИОСа и включить виртуализацию там. Это было бы слишком просто.

Поэтому, мы будем дизассемблировать БИОС и менять его код, чтобы у нас бит был выставлен в 1. Если готовы, то читаем далее.

Что нужно знать до начала работы

Итак, некоторая техническая информация — чтобы понимать, что мы делаем и зачем.
Современные процессоры, по крайней мере многие из них, имеют поддержку виртуализации. За нее отвечает бит №5 в слове ECX при вызове команды CPUID с параметром EAX=01H. Именно этот способ проверки — единственно верный, поскольку, как показывает практика, сайт Intel врет, например, для моего процессора Intel Atom N570. По этой ссылке написано:

Intel® Virtualization Technology (VT-x) No Однако мы-то знаем, что это неправда. Для тех, кто на «ты» с программированием на ассемблере, не составит труда выяснить это, написав нечто вроде MOV EAX, 1 CPUID и проверив потом 5-й бит регистра ECX. Мне же было лень этим заниматься, поэтому я скачал опенсорсовую программу CPUID Explorer, запустил ее и посмотрел результат. К слову, CPU-Z тут непригодна — она дает результат слишком «юзер френдли» — нам же нужно было узнать точное значение бита. Вот как это выглядело в моем случае:

lazy placeholder
В кружочек обведен интересующий нас бит VMX. Он выставлен в 1, он есть, несмотря на то, что говорит нам сайт Intel. Документация по командам процессора на стр. 215 говорит нам про команду CPUID, что Bit #5 VMX Virtual Machine Extensions. A value of 1 indicates that the processor supports this technology

Но это еще не все. Чтобы гипервизоры второго типа смогли пользоваться командами поддержки виртуализации (VMX), необходимо явным образом разрешить эти инструкции в MSR (специальном регистре процессора) номер 0x3A. Вот что говорит нам документация по этому регистру на стр. 237: регистр 3Ah: IA32_FEATURE_CONTROL Бит 0: lock bit — если он выставлен, то дальнейшие модификации этого регистра не допускаются, до следующей перезагрузки. Бит 1: VMX в SMX — safer mode extensions. Работа функций виртуализации в SMX допускается только тогда, когда процессор поддерживает SMX — это указывается в соседнем слева, 6-м бите в ECX при вызове команды CPUID.01H — на картинке выше этот бит равен нулю, наш процессор Atm N570 не поддерживает SMX — поэтому и в MSR 0x3A бит №1 должен быть нулевым. Бит 2: VMX не в SMX — это, собственно, и есть бит, отвечающий за поддержку виртуализации. Он соответствует обведенному в кружочек биту в CPUID и именно он должен быть выставлен в 1.

Как проверить содержимое MSR 0x3A

Чтобы убедиться, что мы все про наш компьютер поняли верно, нужно посмотреть, что на самом деле у нас хранится в MSR 0x3A. Для этого я использовал пакет msr-tools в Debian (реальном, не виртуальном. В виртуальном результат неверный). Вот так вы сможете проверить значение этого бита: — ребутаемся в Debian, потом: # apt-get install msr-tools # modprobe msr # rdmsr 0x3A 9
Девять. Девять это 00001001. Как видим, наш BIOS использует недокументированный бит №3 в специальном слове регистра 0x3A — по документации, этот бит Reserved. Но это не суть. Суть в том, что у нас включен lock bit и выключен наш VMX бит №2 — так что все верно, программа SecurAble не врет и у нас действительно поддержка виртуализации отключена на уровне BIOS, хотя и поддерживается процессором.

Почему эту проблему нужно решать

Дело в том, что при отключенной поддержке виртуализации (VMX) в процессорном слове 0x3A ваши виртуальные машины в VirtualBox работают в режиме паравиртуализации. Они, не имея возможности перевести гипервизор в VMX Root и виртуальную машину в VMX Non-root operation, вынуждены делать трансляцию процессорных инструкций НА ЛЕТУ. Проблему представляют 17 инструкций процессора, которые не «VM-safe», т.е. они используют единственные на весь компьютер регистры или блоки данных (таблицы) в процессоре. Эти команды: SGDT, SIDT, SLDT, SMSW, PUSHF/POPF, LAR, LSL, VERR/VERW, CALL, JMP, INT n, INTO, RET, STR и даже банальная MOV! Все эти инструкции изменяются на лету, чтобы виртуальная машина выполнила их в безопасном для системы виде. Подробнее про эту проблему описано тут (англ.). Из-за этого страдает быстродействие виртуальной машины.

Что нам потребуется

Для этой задачи нам потребуются следующие вещи:

Для начала, очень важно знать, что если что-то пойдет не так, то как восстановить компьютер. Для моего ноутбука с биосом InsydeH20 существует недокументированная процедура восстановления биоса:

И вуаля, материнская плата сама (как — загадка) выкачает с USB HDD новый биос и прошьет его за 1 минуту, потом ноут ребутнется.
Я проверил этот способ, залив таким образом стандартный биос с сайта производителя (другой версии, чем стоял у меня до этого) — действительно, работает, версия биоса обновилась. Таким же способом я решил в итоге заливать в систему и прохаченный биос.

Итак, начинаем: Распаковываем биос из SFX-архива, скачанного с сайта производителя. Сам иос будет иметь имя файла что-то вроде ZE6.fd и иметь размер 2 мегабайта ровно. Далее нам необходимо распаковать БИОС, поскольку он сжат. Для этого используется программа PhoenixTool.exe. В первое поле в ее окошке мы указываем этот сжатый биос, и программа сама его декомпиляет на, в моем случае, целых 609 исходных файлов, имеющих имена в формате GUID.ext. Часть из этих файлов — конфигурационные, а часть — двоичные, но все с расширением ROM. Некоторые двоичные файлы содержат программы со стандартным виндовским PE заголовком.

Наша задача — среди этих 609 файлов найти файл, содержащий нужную нам инструкцию

Такой код нашелся только в одном файле с именем 62D171CB-78CD-4480-8678-C6A2A797A8DE.MOD, и выглядел этот код так (после некоторой моей работы по переименованию функций в более понятные, и добавлении пары комментов):

LOCK_VMX proc near push esi push 3Ah call ReadMSR pop ecx mov ecx, eax xor esi, esi and ecx, 1 or ecx, esi pop esi jnz short exitprc ; if(ReadMSR() & 1) goto exitprc; push edx or eax, 1 ; Set lock bit (bit #0) push eax push 3Ah call WriteMSR add esp, 0Ch exitprc: retn LOCK_VMX endp

По определению, код, который лочит регистр, делает это один раз. Потому это самое удачное место для того, чтобы сделать наш хак: меняем цифру 1 на цифру 5 в инструкции:

or eax, 1 Это приведет к тому, что одновременно с выставлением lock bit мы выставляем бит VMX (бит #2). Заметим тут, что мы не имеем права выставлять бит #1, поскольку набор инструкций SMX у нас в процессоре не поддерживается (это говорит CPUID.1H:ECX bit 6.

Менять будем не совсем в файле *.ROM, а в оплетке *.MOD, которая содержит этот файл. Для этого нужно в программе PhoenixTool.exe, которая у нас уже открыта и биос в нее уже загружен, нажать на кнопку Structure, и инайти ветку с нашим именем файла:

lazy placeholder
Нажимаем кнопку Extract, получаем файл *.MOD (который состоит из заголовка + тела файла *.ROM), и правим наш бит именно в этом файле MOD. Смотрим в IDA, какой двоичный код соответствует окрестности инструкции, которую мы меняем, и в HEX редакторе открываем файл, ищем это место в коде, и меняем всего 1 байт с 01 на 05. Сохраняем модифицированный файл *.MOD. Потом в PhoenixTool нажимаем Replace, выбираем модифицированный MOD, и нажимаем Exit. Всё. Программа сама пересобрала биос и упаковала его для нас, при этом назвала его тем же именем, что и было (старый файл сохранен с расширением OLD).

Всё. Теперь заливаем единственный файл с новым биосом на USB HDD (можно и на USB флешку), и выполняем описанную выше процедуру аварийного восстановления биоса. Она прошьет комп этом новым биосом и всё будет готово.

Вот как теперь выглядит вывод программы SecurAble:

lazy placeholder

Теперь VirtualBox запускает виртуалки с 4 ядрами (а не с одним, как было раньше). Теперь я из-под своей основной 32-разряной операционной системы могу запускать 64-битные операционки в виртуалках. И, что самое главное, теперь виртуалки на самом деле виртуализованные (гипервизор использует инструкции VMX), а не паравиртуализованные.

P.S. В биосах других производителей (не Insyde) есть возможность править не сам BIOS, а только его настройки, извлекаемые программой SYMCMOS.EXE. Там процесс такой же, за исключением того, что в дизассемблированном биосе находится номер настройки, которая используется для запрещения или разрешения VMX, и потом эта настройка правится непосредственно в CMOS биоса. В моем же биосе таких настроек нет, или программа symcmos их не находит, поэтому такой путь допиливания напильником не подходит в моем случае. Путь непосредственного хака биоса выглядит надежнее: мы таким образом просто игнорируем какие бы то ни было настройки биоса, просто выставляем бит VMX и лочим регистр 0x3A после этого.

Счастье есть lazy placeholderСпасибо, что дочитали до конца.

Источник

Оцените статью
AvtoRazbor.top - все самое важное о вашем авто