виртуализация поддерживается отключено что это
Технология виртуализации в процессоре
Содержание
Содержание
На протяжении последних 15 лет слово «виртуальный» звучит практически из каждого утюга. Нам обещают все более реалистичные виртуальные миры или, как минимум, дополненную реальность. Виртуальная реальность, как в знаменитой трилогии «Матрица», пока в будущем. А вот виртуализация внутри процессора — реальное настоящее.
Зачем нужна виртуализация на домашнем компьютере
Вот простой пример: вы используете для работы и игр Windows, но при этом хотите изучить, например, Linux. Значит, нужно, чтобы эта операционная система находилась под рукой. Или занимаетесь программированием под Android или iOS. В этом случае постоянно требуется проверка разработанного приложения в родной среде.
Без виртуализации пришлось бы устанавливать на один компьютер две операционные системы, делать загрузчик и запускать каждую операционную систему поочередно. Или еще хуже — стирать одну ОС, устанавливать другую с переносом данных, переустановкой нужных приложений и так далее.
Так вот виртуализация позволяет обойтись без всех этих сложных процедур. Используя ее,можно запускать несколько операционных систем одновременно (одну внутри другой или две параллельно) и работать в той среде, которая нужна под конкретную задачу.
Виртуализация в бизнесе
Главная задача виртуализации — оптимальное использование производительности и мощности современной компьютерной техники в бизнес-приложениях, где используется мощное и дорогое оборудование.
Например, ваша организация собирается поставить почтовый сервер для обработки поступающей и исходящей переписки, а еще развернуть DNS и WEB-сервер. Сколько для этого нужно серверных машин? Достаточно одной. Потому что на ней, в виртуально разделенных друг от друга «песочницах», на одном и том же железе заработают как бы три отдельных компьютера, выполняющие каждый свою задачу. Так вы разместите на одном компьютере сразу три отдельных сервера и используете всю мощность и производительность техники, окупив потраченные средства.
Разумеется, так как мощность и производительность серверных систем и пропускная способность каналов связи постоянно растет, у виртуализации появляется все больше возможностей для применения. Наглядный пример из относительно недавно запущенных и находящихся у всех на слуху — сервис GeForce Now, благодаря которому можно на слабых компьютерах запускать современные игры.
Фактически это удаленные виртуальные компьютеры, выделенные сервисом под конкретного игрока. Собственная техника выступает только как терминальное устройство, для которого уже не так важна производительность процессора и видеокарты.
Основные направления развития виртуализации
В целом виртуализация как технология сейчас развивается по трем основным направлениям:
Как работает виртуализация
Мы разобрались с тем, что виртуализация — это хорошо и полезно. А что требуется для того, чтобы она заработала на вашем конкретном компьютере? Надо чтобы процессор поддерживал виртуализацию.
То есть, он должен уметь работать с несколькими системами команд одновременно – например, от одной операционной системы и от другой. А значит, выполнять инструкции, выделять адреса и место под хранение данных так, чтобы они работали только в нужной среде, да еще и взаимодействовали с интерфейсом, портами ввода-вывода, видеокартами и прочими узлами компьютера.
Такая технология есть у обоих крупных производителей процессоров для ПК: у Intel она называется Intel VT, у AMD — AMD –V.
Особенности Intel VT
Впервые о разработке технологии виртуализации компания Intel объявила еще в 2005 году. И с тех пор Intel VT постоянно совершенствуется и расширяется.
Корпорация Intel описывает Intel VT как технологию, развивающую несколько основных направлений. На сегодня это:
Особенности AMD–V
Процессоры AMD по цене доступнее Intel, но это совсем не говорит о том, что они хуже. Есть мнение, что как раз наоборот. Многие игровые платформы строятся именно на основе процессоров, чипсетов и видеокарт этой компании.
И, конечно же, у главного конкурента Intel есть свой набор функций, реализующих аналогичные процессы виртуализации. Точно также на машинах, собранных на процессоре и чипсете AMD, можно развернуть несколько операционных систем и обеспечить их работу с периферийными устройствами, сетью, памятью и пр. или, например, запустить критичное приложение в изолированной среде.
Включение виртуализации на компьютере
Непосредственный запуск виртуальных машин выполняется с помощью специальных приложений:
Но до того, как вы запустите эти программы и приступите к установке и настройке виртуальных машин, вам потребуется включить виртуализацию.
Дело в том, что по умолчанию в настройках BIOS большинства материнских плат виртуализация отключена. И ее необходимо включить в соответствующем разделе, который называется у каждого производителя по-своему, например, «Virtualization Technology» изменив значение опции с «Disabled» на «Enabled».
Если такой опции нет, то может оказаться так, что прошивка вашей материнской платы или процессор (хотя такое сейчас возможно только на старых моделях) виртуализацию не поддерживает. В этом редком, но возможном случае использовать преимущества виртуализации не получится.
Такая функция отключена в BIOS некоторых моделей ноутбуков Aser Aspire, позиционируемых производителем, как техника для домашнего использования.
Но в подавляющем большинстве случаев, вы просто включаете в BIOS виртуализацию, сохраняете настройки и после этого можете устанавливать и запускать гипервизоры или менеджеры виртуальных машин и приступать к работе с ними, управляя несколькими вычислительными процессами в разных оболочках одновременно.
Как включить виртуализацию в BIOS — технологии Intel VT и AMD V
В этой статье мы рассмотрим, как включить виртуализацию в БИОС. Разберемся с такими технологиями, как Intel VT (Intel Virtualization Technology) и AMD-V ( часто ее называют SVM — Secure Virtual Machines), а также найдем решение некоторых возможных проблем.
По умолчанию, в настройках BIOS материнских плат, аппаратная виртуализация отключена. Чтобы ее включить, необходимо перейти в соответствующий раздел, который называется у каждого производителя биоса по своему. Например, «Virtualization Technology» или “Intel Virtualization Technology”. Для запуска, необходимо изменить значение опции с «Disabled» на «Enabled».
Зачем нужна технология виртуализации обычному пользователю
Данная технология помогает расширить возможности компьютера и повысить эффективность используемого аппаратного обеспечения. Особенно широкое применение она получила в тестовых целях: перед запуском новую программу нужно “обкатывать” на различных устройствах, устраняя ошибки.
Виртуализация на домашнем ПК является настоящей необходимостью, если вы занимаетесь программированием под iOS или Android. При желании изучать Linux, используя операционную систему Windows, виртуализация избавит вас от необходимости стирать имеющуюся ОС и устанавливать другую с переносом данных.
Без этой технологии, пришлось бы устанавливать на один компьютер две и более операционных систем, делать загрузчик для них всех и запускать каждую ОС поочередно, что очень не удобно и отнимает много времени.
Виртуализация позволяет обойти все эти недостатки. Используя ее, можно запускать несколько OS одновременно и работать параллельно в той или иной среде выполняя соответствующие задачи.
Технология виртуализации носит разное название у производителей процессоров для ПК. У процессоров Intel – это Intel VT, у AMD — AMD–V.
Включение виртуализации в БИОС на процессоре Intel
Для пользователей процессоров Intel будет актуальна следующая инструкция ⇒
Включение виртуализации в БИОС на процессоре AMD
Инструкция для устройств, использующих AMD, немного отличается ⇒
Решение возможных проблем
Попытка включения нужной функции чаще всего сопровождается следующими проблемами ⇒
С первыми двумя проблемами пользователи сталкиваются, когда виртуализация не поддерживается имеющимся процессором. Чтобы убедиться в этом, следует найти на официальном сайте информацию о характеристиках процессора. Там всегда указывается, поддерживает ли данный CPU технологию виртуализации или нет.
В тех случаях, когда на вашем ПК отсутствует возможность включения виртуализации, не нужно пытаться активировать ее с помощью каких-либо программ. Подобные действия ухудшат работу ПК и не дадут результатов.
Бывают случаи, когда процессор осуществляет поддержку необходимой нам функции, но она неактивна и в БИОС отсутствует строка для ее включения. Теоретически в данной ситуации может помочь обновление БИОС. Возможно, что после обновления строка появится.
В третьем описанном случае неполадка, скорее всего, кроется во включении виртуальной машины Hyper-V или “Песочницы”.
Попробуйте такое решение ⇒
Если проблема по-прежнему не решена, то есть еще один способ. От имени администратора вызовите командную строку. В строчке нужно ввести следующее ⇒
bcdedit /set
После закрытия командной строки, потребуется перезагрузка ПК.
Виртуализация – действительно удивительная технология. Мы заставляем программное обеспечение принимать вид и поведение другого обеспечения, с иными, подчас более значительными преимуществами в возможностях, производительности и прочих спектрах. Получается, что технология виртуализации делает реальным то, что существует в абстракции.
Как видите, используя пошаговую инструкцию можно активировать виртуализацию на ПК без каких-либо трудностей. После активации этой технологии, вы сможете приступать к работе с гипервизорами или менеджерами виртуальных машин, сможете одновременно управлять различным количеством вычислительных процессов в нескольких оболочках.
Включаем виртуализацию в BIOS
Виртуализация может понадобиться тем пользователям, которые работают с различными эмуляторами и/или виртуальными машинами. И те и те вполне могут работать без включения данного параметра, однако если вам требуется высокая производительность во время использования эмулятора, то его придётся включить.
Важное предупреждение
Изначально желательно убедиться, есть ли у вашего компьютера поддержка виртуализации. Если её нет, то вы рискуете просто зря потратить время, пытаясь произвести активацию через BIOS. Многие популярные эмуляторы и виртуальные машины предупреждают пользователя о том, что его компьютер поддерживает виртуализацию и если подключить этот параметр, то система будет работать значительно быстрее.
Если у вас не появилось такого сообщения при первом запуске какого-нибудь эмулятора/виртуальной машины, то это может значить следующее:
Включение виртуализации на процессоре Intel
Воспользовавшись этой пошаговой инструкцией, вы сможете активировать виртуализацию (актуальна только для компьютеров, работающих на процессоре Intel):
Включение виртуализации на процессоре AMD
Пошаговая инструкция выглядит в этом случае похожим образом:
Включить виртуализацию на компьютере несложно, для этого нужно лишь следовать пошаговой инструкции. Однако если в BIOS нет возможности включить эту функцию, то не стоит пытаться это сделать при помощи сторонних программ, так как это не даст никакого результата, но при этом может ухудшить работу компьютера.
Помимо этой статьи, на сайте еще 12513 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Аппаратная виртуализация в Windows 10 – как включить и настроить Hyper-V
Знакомясь с материалами на сайтах и форумах, посвященных компьютерной тематике, вам наверняка не раз приходилось сталкиваться с понятием виртуализации. Возможно, многие из наших читателей уже давно пользуются этой замечательной технологией. Тем же, кто еще не знает, что это такое, будет весьма полезно ознакомиться с данной статьей.
Говорить мы будем о Hyper-V – хоть и не особо популярном, но очень полезном компоненте операционной системы Виндовс, предназначенном для создания виртуальных машин. Ниже подробно разберем, как включить аппаратную виртуализацию в Windows 10 и как использовать ее функционал. Однако сначала скажем пару слов о том, что же, собственно, представляет собой виртуализация.
Что такое виртуализация и какие требования к ПК предъявляет
Виртуализация – это технология предоставления вычислительных мощностей с целью их объединения в логическую структуру, которая имитирует работу аппаратных компонентов и обеспечивает разделение процессов, протекающих в хостовом и виртуальном пространствах. Наиболее часто виртуализация применяется для создания так называемых виртуальных машин – программных и/или аппаратных систем, эмулирующих работу компьютера или другого устройства с установленной на нём операционной системой. Существует несколько типов виртуализации, а именно:
Различные инструменты могут использовать разные виды виртуализации, например, гипервизор Hyper-V, которому посвящен этот материал, нуждается в аппаратной виртуализации. Чтобы иметь возможность создавать и запускать виртуальные машины на Hyper-V, компьютер и операционная система должны отвечать следующим требованиям:
Проверить, поддерживает ли Ваш компьютер виртуализацию Hyper-V, совсем не сложно. Откройте от имени администратора консоль PowerShell или командную строку, выполните в ней команду systeminfo и обратите внимание на пункт «Требования Hyper-V». Если все четыре требования имеют значение «да», можете смело включать гипервизор и создавать виртуальные машины. Если один из этих пунктов имеет значение «нет», необходимо уточнить поддержку виртуализации в прилагаемой к компьютеру спецификации.
Бывает и такое, что опция отключена в BIOS. Чтобы включить виртуализацию в БИОСе, вам нужно зайти в его меню и проследовать по цепочке Advanced – CPU Configuration, найти опцию «Intel Virtualization Technology» и установить для нее значение «Enabled». В разных версиях BIOS наименование раздела и самой опции может отличаться, например, иногда нужный параметр называется Vanderpool Technology, VT Technology, Virtualization и т.п.
Как включить Hyper-V в Windows 10
Разобравшись с основами, перейдем непосредственно к тому, как включить виртуализацию в Windows 10. Hyper-V является встроенным компонентом операционной системы, но в настройках он, скорее всего, будет отключен. Произвести активацию можно разными способами, начнем с самого простого. Откройте командой optionalfeatures апплет «Включение и отключение компонентов», отметьте галочками чекбокс Hyper-V как это показано на скриншоте и нажмите ОК. После того как компонент установится, перезагрузите компьютер.
Второй способ предполагает использование PowerShell. Запустив консоль от имени администратора, выполните команду, приведенную на приложенном ниже скриншоте.
Наконец, задействовать компонент можно с помощью утилиты DISM, выполнив в классической командной строке или той же PowerShell команду DISM /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V. Затем необходимо перезагрузить компьютер. Если до этого виртуализация Hyper-V в Windows 10 была выключена, то теперь она станет активна, и вы сможете приступить к созданию виртуальной машины.
Создание виртуальной машины Hyper-V пошагово
Процедура создания виртуальной машины Hyper-V не отличается особой сложностью, но всё же здесь не все столь прозрачно и ясно как, скажем, в том же популярном стороннем гипервизоре VirtualBox. Разберем алгоритм буквально по шагам. Итак, начнем.
На этом процедура создания виртуального компьютера завершается. Теперь в главном окне гипервизора вы можете кликнуть по его названию ПКМ и запустить, выбрав соответствующий пункт. В результате откроется стандартное окно мастера-установщика той операционной системы, которую вы собирались инсталлировать.
Как выключить функцию аппаратной виртуализации
Будучи включенной, аппаратная виртуализация никак не мешает работе операционной системы и других программ, тем не менее, вы можете ее отключить, если не используете. Деактивируется она точно так же, как и включается – в соответствующем разделе BIOS. Что касается того, как выключить виртуализацию Hyper-V в Windows 10 на программном уровне, тут тоже всё просто. Снимаем галочку с пункта «Hyper-V» в разделе «Программы и компоненты», либо выполняем в PowerShell указанную на скриншоте ниже команду.
Важный момент – отключать компонент Hyper-V в любой версии Windows обязательно нужно в случае использования других гипервизоров, дабы избежать возможных конфликтов в работе программного обеспечения.
Как включить виртуализацию на компьютере или ноутбуке с Windows 10, 8.1 или Windows 7
Виртуализация позволяет пользователям запускать некоторые программы, и даже операционные системы в виртуальной машине, а не ставить их на жесткий диск. Изначальной возможностью пользовались тестировщики, которые работали с новыми программными продуктами. С ее помощью они защищали свою операционную систему от повреждения или вирусов. Сейчас у каждого пятого пользователя стоят эмуляторы для виртуализации рабочей среды Android или принадлежащей к другим операционным системам. Если вы решили использовать защищенную рабочую среду в своем компьютере, то необходимо знать, как включить виртуализацию в Windows.
Что такое виртуализация?
Термин «виртуализация» сегодня определенно в моде — его постоянно употребляют люди, хоть немного знакомые с компьютерной средой. Но далеко не всем известно его значение, и далеко не все представляют себе истинный потенциал этой продвинутой технологии.
Виртуализация, выражаясь самым простым языком, это компьютер в компьютере. Ее использование позволяет вам создавать виртуальную рабочую среду — своего рода изолированную «песочницу», процессы в которой никак не будут затрагивать ресурсы вашей собственной рабочей машины. При помощи виртуализации можно, к примеру, запускать сразу несколько версий одной операционной системы — удобно для тех, кто ценит ретро-игры или часто пользуется устаревшими, но полезными и функциональными приложениями, несовместимыми и актуальной версией Windows.
Дополнительный плюс — процессы, как мы уже отмечали чуть ранее, в этой «песочнице» протекают обособленно, а значит, вероятность занести на компьютер вирус или другое вредоносное ПО стремится к нулю.
Стоит, впрочем, отметить, что практически у любой современной технологии есть свои нюансы и «подводные камни». В нашем случае к ним можно отнести возможности процессоров — далеко не все из них способны работать с виртуализацией.
Вопросы и ответы можно прочитать по ссылке.
Включение технологии аппаратной виртуализации
Виртуальные машины используются для тестирования операционных систем, тестовых программ в среде песочницы (Sandbox) и для экспериментов с системными функциями, не беспокоясь о каких-либо последствиях. Есть часть популярных программ, например, VirtualBox, которые могут работать без этой функции, но тогда не сможем рассчитывать на слишком хорошую производительность. Включение аппаратной виртуализации сделает действия виртуальных машин гораздо мощнее.
Технологии аппаратного ускорения, встроенные в процессоры AMD и Intel, известны как «AMD-V» и «Intel VT-X». Во многих случаях виртуализация по умолчанию отключена. При попытке включить виртуальную машину функция выбрасывает предупреждение об ошибке, информирующее пользователя о том, что для работы программного обеспечения требуется аппаратное ускорение, которое в текущий момент отключено.
Функцию виртуализации можно включить или отключить по желанию и все, что нужно сделать, — это получить доступ в BIOS или UEFI.
Как понять, поддерживает ли мой процессор виртуализацию?
Сделать это собственными средствами операционной системы невозможно, единственный вариант — установка сторонних утилит. Но для начала нужно определиться с тем, какой вообще процессор установлен в вашем компьютере или ноутбуке.
Шаг 1
Запустите диспетчер задач. «Классический» способ — одновременно зажать клавиши Ctrl + Alt + Delete. Также в десятой версии Windows диспетчер можно открыть через панель управления — для этого щелкните правой кнопкой мыши по значку «Пуск» и в появившемся меню выберите соответствующий пункт.
Шаг 2
В диспетчере задач перейдите во вкладку «Производительность» и кликните по строчке «ЦП (центральный процессор»). В правой верхней части открывшегося окна будет указана модель вашего процессора.
Шаг 3
Для процессоров модели Intel: скачайте с официального сайта компании-производителя утилиту под названием Intel Processor Identification Utility. Установите ее и запустите. В открывшемся окне найдите вкладку CPU Technologies. Если напротив модели вашего процессора указано слово «да» или просто написано название конкретной технологии, поздравляем — ваш компьютер поддерживает визуализацию.
Для процессоров модели AMD вся процедура происходит аналогичным образом — с тем лишь исключением, что программа для определения конфигурации называется AMD-V. Скачивать ее, разумеется, тоже нужно с сайта производителя — компании AMD.
Системные требования
Перед установкой любого софта необходимо убедиться, что ваш аппарат его потянет. Иными словами, соответствует ли железо вашего ПК или ноутбука минимальным системным требованиям. Для того чтобы программа работала стабильно, быстро, без зависаний и тормозов, периодических вылетов и долгой загрузки, желательно чтобы компьютер соответствовал рекомендуемым системным требованиям, которые требуют гораздо большей мощности железа нежели минимальные.
Запуск движка виртуализации
Для запуска BlueStacks необходимы следующие минимальные системные требования:
Помимо этого, вы должны обладать правами администратора (на работе в офисе установить не получится, увы) и иметь свежие драйвера чипсета и видеокарты. Если же ваш аппарат не соответствует всем перечисленным требованиям, то в процессе установки и последующего запуска будут происходить те или иные ошибки.
Как войти в системные настройки BIOS?
Чтобы это сделать, придется немного покопаться в системных настройках. Впрочем, эта процедура вовсе не так сложна, как может показаться поначалу. Затруднения могут возникнуть только на этапе входа в BIOS. Все дело в том, что у разных моделей персональных компьютеров и ноутбуков свои «ключи» — «горячие клавиши», которые нужно нажать, чтобы войти в нужный раздел. Но в общих чертах процедура схожа: чтобы попасть в BIOS, вам нужно перезапустить компьютер, и в тот момент, когда на экране появится фирменный логотип, нажать нужную кнопку. У изделий фирмы Acer это F8, у Asus — F12 и так далее.
Альтернативный вариант — открыть параметры компьютера, выбрать пункт «Обновление и безопасность», а затем перейти во вкладку «Восстановление». На этой вкладке нужно будет щелкнуть по строчке «Особые варианты загрузки». Компьютер перезапустится, после чего появится синий экран, где нужно будет выбрать пункт «Диагностика» + «Дополнительные параметры» — «Параметры встроенного ПО UEFI». За этим последует еще одна перезагрузка, после которой вы наконец попадете в нужный раздел с настройками.
Итак, мы успешно вошли в BIOS. Что дальше?
Несмотря на определенные сложно с активацией и настройкой, виртуализация — вещь несомненно полезная. Возможность иметь еще один (а то и не один – все зависит от возможностей процессора) компьютер, куда можно «сбрасывать» лишние задачи, чтобы не загружать ими операционную память и не тратить ресурсы, наверняка обрадует как рядовых, так и продвинутых пользователей ПК. Так что если вы еще не испытали на себе все прелести этой модной сейчас технологии — непременно займитесь этим в ближайшее время. А наша инструкция вам поможет.
Настраиваем виртуализацию на процессоре Intel
Шаг 1
Переходим во вкладку Advanced. Там находим радел под названием CPU Configuration, а в нем — отдельную строчку под названием Intel Virtualization Technology.
Шаг 2
По умолчанию напротив указанной строчки должен стоять параметр «Disabled ». Если состояние параметра отображается как «Enable», значит, виртуализация уже работает, и вы можете смело и без ограничений ей пользоваться. Если нет, значение параметра следует поменять вручную, после чего перезапустить компьютер.
Причины
Следует отметить, что для Bluestacks характерны одинаковые проблемы вне зависимости от версии ОС или самой программы. Основной причиной неисправности можно отметить неполное соответствие системных требований или случайные сбои в работе приложения.
Ошибка Bluestacks «не запускается движок виртуализации» (оригинальный текст сообщения) возникает на 99% загрузки программы. В этом и сложность на слабых компьютерах. Можно выделить такие причины этого сбоя:
Включаем виртуализацию в операционной системе Windows 10
В десятой версии самой популярной операционной системы есть опция, позволяющая включать виртуализацию и без долгих манипуляций с настройками BIOS.
Шаг 1
Вызываем командную строку одновременным нажатием клавиш WIN и R. В появившемся окне пишем слово control и нажимаем Enter.
Шаг 2
Если все было сделано правильно, сразу после нажатия вводной клавиши перед нами откроется панель управления ОС. В ней нужно последовательно отыскать пункты «Программы и компоненты» и «Включение и отключение компонентов Windows».
В первых же строчках появившегося списка вы увидите пункт Hyper-V – это и есть необходимая нам утилита. «Раскройте» ее, нажав на значок в виде плюса, и проставьте галочки во всех свободных окошках.
После этого сохраните сделанные изменения и выйдите из панели управления.
Если все было сделано правильно, Hyper-V сразу же по окончании манипуляций будет доступна в меню программ.
Перезагрузка Bluestacks
Когда движок не запускается, это будет выглядеть примерно так:
Прогресс загрузки просто стоит на месте, и всё.
Самое простое – попробовать просто перезагрузить движок. Для этого в самом интерфейсе эмулятора предусмотрен пункт меню.
Если это не помогает, тогда можно применить универсальный способ борьбы с любыми неполадками Windows: перезагрузить весь компьютер.
Ломаем BIOS: включение поддержки виртуализации VT-x на нетбуке Acer Aspire One
В данной статье мы расскажем вам пошагово о том, как допилить напильником свой нетбук или ноутбук, в котором по какому-то недоразумению выключен и залочен в таком состоянии бит 2 в MSR 0x3A — попросту говоря, у вас есть в процессоре поддержка виртуализации, но она заблокирована биосом. ПРЕДУПРЕЖДЕНИЕ: всё, описанное в этой статье, рассчитано на то, что вы знаете, что делаете. Всё на свой страх и риск! Если не уверены — не пытайтесь повторить это дома.
Итак, в чем же проблема?
Проблема, которую мы будем решать, для конечного пользователя компьютера выглядит так: При использовании гипервизора второго типа (например, VirtualBox)
Вот такое сообщение вы можете видеть при попытке запуска виртуалки с числом процессоров, большим чем 1:
Аналогичное сообщение об ошибке вы также получаете, если собираетесь запускать 64-битную виртуальную машину (например, Debian amd64) с 32-разнядной хост ОС, например WinXP.
Можно ли вылечить это?
На этот вопрос можно ответить, проверив некоторые биты в некоторых словах состояния процессора. Самый простой способ убедиться, что в вашем случае проблема лечится — это посмотреть на то, что показывает программа SecurAble. В моем случае это выглядело так:
Итак, если у вас программа показывает такую же картинку, как показанная выше, то вы можете вылечить эту проблему. Однако нюанс заключается в том, что это установить нужный бит в регистре процессора можно только в БИОСе, поскольку вредный БИОС вашего ноутбука его выставляет в ноль, потом включает блокирующий бит и изменение этого бита более невозможно (до перезагрузки компа, где БИОС во время 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 тут непригодна — она дает результат слишком «юзер френдли» — нам же нужно было узнать точное значение бита. Вот как это выглядело в моем случае:
В кружочек обведен интересующий нас бит 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, и инайти ветку с нашим именем файла:
Нажимаем кнопку Extract, получаем файл *.MOD (который состоит из заголовка + тела файла *.ROM), и правим наш бит именно в этом файле MOD. Смотрим в IDA, какой двоичный код соответствует окрестности инструкции, которую мы меняем, и в HEX редакторе открываем файл, ищем это место в коде, и меняем всего 1 байт с 01 на 05. Сохраняем модифицированный файл *.MOD. Потом в PhoenixTool нажимаем Replace, выбираем модифицированный MOD, и нажимаем Exit. Всё. Программа сама пересобрала биос и упаковала его для нас, при этом назвала его тем же именем, что и было (старый файл сохранен с расширением OLD).
Всё. Теперь заливаем единственный файл с новым биосом на USB HDD (можно и на USB флешку), и выполняем описанную выше процедуру аварийного восстановления биоса. Она прошьет комп этом новым биосом и всё будет готово.
Вот как теперь выглядит вывод программы SecurAble:
Теперь VirtualBox запускает виртуалки с 4 ядрами (а не с одним, как было раньше). Теперь я из-под своей основной 32-разряной операционной системы могу запускать 64-битные операционки в виртуалках. И, что самое главное, теперь виртуалки на самом деле виртуализованные (гипервизор использует инструкции VMX), а не паравиртуализованные.
P.S. В биосах других производителей (не Insyde) есть возможность править не сам BIOS, а только его настройки, извлекаемые программой SYMCMOS.EXE. Там процесс такой же, за исключением того, что в дизассемблированном биосе находится номер настройки, которая используется для запрещения или разрешения VMX, и потом эта настройка правится непосредственно в CMOS биоса. В моем же биосе таких настроек нет, или программа symcmos их не находит, поэтому такой путь допиливания напильником не подходит в моем случае. Путь непосредственного хака биоса выглядит надежнее: мы таким образом просто игнорируем какие бы то ни было настройки биоса, просто выставляем бит VMX и лочим регистр 0x3A после этого.
Счастье есть Спасибо, что дочитали до конца.