Svm support bios что это - TurboComputer.ru
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд (пока оценок нет)
Загрузка...

Svm support bios что это

Опция BIOS Virtualization — как включить виртуализацию в BIOS

Опция Virtualization Technology. Включение данной опции включает технологию аппаратной виртуализации, основанной на специальной процессорной архитектуре. В отличие от программной виртуализации, с помощью данной техники возможно использование изолированных гостевых систем (виртуальных машинах — VMware, Virtual PC и тд.), управляемых гипервизором напрямую. Гостевая система не зависит от архитектуры хостовой платформы и реализации платформы виртуализации.

На работу программ пользователя в стандартной операционной системе данная опция практически не влияет.

Значения опции:

  • Enabled,
  • Disabled

Опция также может иметь другие названия:

  • Virtualization Technology
  • Vanderpool Technology
  • VT Technology
  • Virtualization

Примечание 1.Аппаратная виртуализация виртуализация с поддержкой специальной процессорной архитектуры. Аппаратная виртуализация обеспечивает производительность, сравнимую с производительностью невиртуализованной машины, что дает виртуализации возможность практического использования и влечет её широкое распространение. Наиболее распространены технологии виртуализации Intel-VT и AMD-V.

  1. В Intel VT (Intel Virtualization Technology) реализована виртуализация режима реальной адресации (режим совместимости с 8086). Соответствующая аппаратная виртуализация ввода-вывода — VT-d. Часто обозначается аббревиатурой VMX (Virtual Machine eXtension). Кодовое название — Vanderpool.
  2. AMD-V часто обозначается аббревиатурой SVM (Secure Virtual Machines). Кодовое название — Pacifica. Соответствующая технология виртуализации ввода-вывода — IOMMU. AMD-V проще и эффективнее, чем Intel VT. Поддержка AMD-V появилась в Xen 3.3.

Intel VT (Intel Virtualization Technology) — intel virtualization technology что это?

VT-x 13 ноября 2005 года Intel выпустила две модели Pentium 4 (модели 662 и 672), которые стали первыми процессорами, поддерживающими VT-x («Vanderpool»). VT-x представляет собой технологию виртуализации Intel режима реальной адресации на платформе x86 — VMX (Virtual Machine eXtension).

Реализована виртуализация режима реальной адресации (режим совместимости с 8086).

VT-d (Virtualization technology for directed I/O) — технология аппаратной виртуализации ввода-вывода , созданная корпорацией Intel в дополнение к её технологии виртуализации вычислений VT-x. Виртуализация ввода-вывода позволяет пробрасывать (pass-through) устройства на шине PCI (и более современных подобных шинах) в гостевую ОС, таким образом, что она может работать с ним с помощью своих штатных средств. Чтобы такое было возможно, в логических схемах системной платы используется специальное устройство управления памятью ввода-вывода (IOMMU), работающее аналогично MMU центрального процессора, используя таблицы страниц и специальную таблицу отображения DMA (DMA remapping table — DMAR), которую гипервизор получает от BIOS через ACPI. Отображение DMA необходимо, поскольку гипервизор ничего не знает о специфике работы устройства с памятью по физическим адресам, которые известны лишь драйверу. С помощью DMAR он создает таблицы отображения таким образом, что драйвер гостевой ОС видит виртуальные адреса IOMMU аналогично тому, как бы он видел физические без него и гипервизора.

Intel Virtualization Technology for Directed I/O (VT-d) — это следующий важный шаг на пути к всеобъемлющей аппаратной поддержке виртуализации платформ на базе Intel. VT-d расширяет возможности технологии Virtualization Technology (VT), существующей в IA-32 (VT-x) и Itanium (VT-i), и добавляет поддержку виртуализации новых устройств ввода-вывода. Ознакомиться подробнее с технической стороной вопроса можно здесь https://ru.wikipedia.org/wiki/

Программа Setup BIOS фирмы AWARD Software International Inc на системных платах GIGABYTE TECHNOLOGY

Название данной опции у данного производителя в данной версии BIOS:

Virtualization значение по умолчанию [Disabled]

Hardware assisted VirtuaIization Technology which help improve performance of system running VirtuaI Machine Softwares.

Virtual Machine allows multiple OS on one conputer simultaneously.

Оборудование для помощи VirtuaIization — технология которая помогает повысить производительность системы, работающей на VirtuaI-машине.

Виртуальная машина позволяет запускать более производительно несколько ОС на одном компьютерные одновременно.

Не включать технологию аппаратной виртуализации, основанной на специальной процессорной архитектуре.

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

Программа Aptio Setup Utility — BIOS фирмы American Megatrends Inc на системных платах Dell Inc.

Название данной опции у данного производителя в данной версии BIOS (ноутбук):

Virtualization значение по умолчанию [Enabled]
Обозначение опции BIOSОписание опции в БИОСеПереведенное значение опции БИОС

Эта опция определяет, будет ли монитор виртуальных машин (VMM) использовать дополнительные аппаратные возможности, обеспечиваемые Intel (R) Virtualization Technology.

Введено = Включить Virtualization Technology.

Заводская настройка по умолчанию — Включена поддержка.

Программа BIOS InsydeH20 Setup Utility компании Insyde Software на на системных платах Hewlett-Packard Company (HP)

Название данной опции у данного производителя в данной версии BIOS:

Virtualization Technology значение по умолчанию [Disabled]

Данная опция находится на вкладке: «System Configuration»

Обозначение опции BIOSОписание опции в БИОСеПереведенное значение опции БИОС

This option specifies whether a Virtual Machine Monitor (VMM) can utilize the additional hardware capabilities provided by Intel(R) Virtualization Technology.
[Disabled]Disabled = Disable Virtualization Technology.Отключен = Отключить Технология виртуализации.
[Enabled]Enabled = Enable Virtualization Technology.

The factory default setting is Enabled.

Hardware VT enables a processor feature for running multiple simultaneous virtual machines allowing specialized software application to run in full isolation of each other. HP recommends that this feature remain disabled unless specialized unless specialized application are being user.

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

Обозначение опции BIOSОписание опции в БИОСеПереведенное значение опции БИОС
[ Enabled ]

Навигация и настройка значений БИОС InsydeH20 Setup Utility фирмы Insyde Software осуществляется стандартно, с помощью следующих клавиш:

AMD SVM Support — что это в биосе — включать или нет? (Support Vector Machine, SVM Mode)

Приветствую дорогие! Выходят новые материнские платы, процессоры, память.. все железо становится лучше и быстрее. Появляются новые функции. Старые остаются. Но сегодня мы поговорим про одну из старых функций, которая уже давно существует.. не знаю когда появилась у AMD, но у Intel она появилась еще в Pentium 4 модель 662/672 — была простая виртуализация VT-x.

Разбираемся

SVM Support (Support Vector Machine) — опция позволяет включить или отключить технологию AMd SVM (Secure Virtual Machine). Данная технология представляет из себя аппаратную виртуализацию AMD, которая необходима для работы некоторых программ.

Данная технология присутствует почти во всех современных процессорах AMD, у Intel есть своя — Intel VT.

Старые процессоры могут не поддерживать виртуализацию.

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

Принцип работы — простыми словами

На самом деле ничего сложного нет:

  1. Виртуализация позволяет некоторым программам посылать команды процессору напрямую — так он их обрабатывает быстрее. Применимо только к специальным программам, которые эмулируют среду — например Андроид, Windows, Линукс и другие.
  2. Есть обычная виртуализация и расширенная. Первая — обеспечивает прямой доступ к процессору. Вторая — доступ к устройствам на шине PCI (например аудио/видеокарта).
  3. Теоретически, аппаратную виртуализацию могут использовать и некоторые обычные программы, например Хром или видео-плеер. Почему? Вы наверно слышали где-то — аппаратное ускорение. Я об этом. Оно может работать быстрее при включенной виртуализации. Такое ускорение вроде есть в Хроме, и может быть в некоторых видеоплеерах.

Нужно ли включать?

И здесь тоже все очень просто:

  1. Чтобы ответить на этот вопрос, скажу иначе — отключать нет смысла. Технология никак не грузит ПК, не меняет принцип работы процессора, просто включает в нем некую инструкцию и все.
  2. При отключенной опции иногда могут быть проблемы при установке некоторых программ — они просто могут сообщать вам что нужна технология виртуализации, иногда они ее называют Hyper-V (хотя это виртуализация на основе гипервизора).

Другое название — SVM Mode:

Какие программы нуждаются в этой технологии?

Программ немного и все они имеют общую направленность — эмуляция среды (операционки):

  1. VMware Workstation/Player. Позволяет создать настоящий виртуальный ПК со своим процессором, оперативной памятью, жестким диском и так далее. Требует включенной виртуализации, при отключенной — будут страшные лаги. Сам по себе виртуальный ПК представляет окно в другой ПК — там может быть установлена Windows, будет меню пуск, все как обычно. Но эта Windows полностью изолирована от реальной.
  2. VirtualBox. Аналог предыдущей проги, но полностью бесплатная. В большинстве случаев функции такие же, отличие в интерфейсе. По моему опыту VMware работает быстрее.
  3. BlueStacks/NOX. Позволяет эмулировать среду Андроид — можно устанавливать приложения, тестировать их, даже играть в игры можно. И при этом все это на обычном ПК с Windows. Весомый недостаток — требовательность к ресурсам, виртуальный Андроид не будет шустро работать на том ПК, где шустро работает виртуальная Windows. Минимум 2 ядра (лучше с высокой частотой и последнего поколения) и 4 гига оперы.
  4. Ну и как я писал выше — возможно виртуализация поможет работать быстрее тем программам, которые используют аппаратное ускорение. Но это теория, врать не буду — не тестировал.

Вывод

Мы выяснили, что SVM Support:

  1. Нужно включать. Просто потому что она никак не вредит — ничем, абсолютно. Нет ни одной проблемы в мире, при которой, чтобы решить ее — нужно отключить виртуализацию. Так что смело включайте ее — в биосе выставьте Enabled/Enable.
  2. При использовании софта, который эмулирует виртуальный ПК — включение обязательно.
  3. Присутствует почти на всех современных процессорах как Intel так и AMD, однако по умолчанию может быть отключена.

Надеюсь информация помогла. Удачи.

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Как включить виртуализацию (VT-x) на своем ПК?

ВАЖНО: Эта статья описывает шаги необходимые для включения виртуализации в BIOS и улучшения производительности

Технология виртуализации позволяет BlueStacks N работать плавнее и гораздо быстрее.

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

Скачайте и запустите маленькую утилиту, предоставляемую производителем вашего процессора.

a) Если ваш процессор от Intel, то Intel Processor Identification Utility определит, поддерживает ли ваш ПК виртуализацию (VT-x). Смотрите пункт b) для AMD процессоров (AMD-V технология)

  • Скачайте детектор виртуализации от интел используя данную ссылку
  • Выберите подходящую вашему языку msi download .

Как только утилита будет установлена на ваш ПК, вы сможете запустить ее чтобы определить статус процессора как показано ниже.

Если в отчете вы увидите «Да» рядом с технологией виртуализации, значит вы можете ее включить!

b) Чтобы проверить статус AMD-V, пользователям AMD надо скачать утилиту AMD-V

2. Как включить виртуализацию, если она доступна но выключена на моем ПК?

2.1) Вход в BIOS на вашем ПК для Windows 10,8.1, 8 (UEFI)

2.1.1) Windows 10

1.) Нажмите на Пуск и выберите Настройки

2.) Выберите Обновления и безопасность.

3.) Нажмите Восстановление в левом меню

4.) Под Продвинутыми настройками выберите Перезагрузить Сейчас

5) Выберите Устранение проблем

6) Выберите Продвинутые настройки

7) Выберите UEFI Firmware настройки.

8) Нажмите Рестарт, чтобы перезагрузить систему и войти в UEFI (BIOS).

2.1.2) Windows 8.1, 8 (UEFI-совместимый BIOS)

1) Сделайте следующее:
Горячая кнопка: Windows + «C»
Тачскрин: проведите пальцем с верхого угла в центр
Мышь: Начните с правой стороны ведите мышь по правому краю экрана
Выберите «Настройки»

2. Кликните на «Сменить настройки PC» в нижнем правом углу

Быстрый доступ: Windows + «I»

3) Выберите «Общие» на панели слева

Выберите «Перезагрузить сейчас» под «Продвинутым запуском» на правой панели.

Система перезагрузится в Продвинутое меню загрузки

4) Выберите Устранение проблем

5) Выберите «Продвинутые Настройки»

6) Выберите «Настройки UEFI Firmware» и выберите «Перезагрузить»

Windows запустит BIOS

2.2) Вход в BIOS

Включите или перезагрузите ваш ПК

ВАЖНО: Некоторые шаги могут отличаться исходя из вашей материнской платы, типа процессора, чипсета и производителя. Проверьте документацию вашего ПК чтобы узнать правильные шаги для доступа к BIOS

HP — Пример

  1. Когда ваш ПК перезагружается жмите регулярно на Esc чтобы войти в BIOS
  2. Нажмите F10 чтобы перейти в настройки BIOS (следуйте инструкциям на экране)
  3. Нажмите правую стрелку на клавиатуре чтобы перейти в вкладку Конфигурация Системы, выберите Виртуализация и нажмите Enter

  1. Выберите «Включено» и нажмите Enter
  2. Нажмите F10 и выберите «Да» и нажмите Enter чтобы сохранить изменения и перезагрузиться.

Следуйте инструкциям ниже чтобы включить виртуализацию на данных системах,

Dell

  • При запуске компьютера нажмите F2
  • Нажмите стрелку направо, чтобы перейти в Продвинутые настройки, выберите Виртуализацию и нажмите Enter
  • Нажмите «Включено» и Enter.
  • Нажмите F10 и выберите «Да» и нажмите Enter чтобы сохранить изменения и перезагрузиться.

Asus

  • При запуске компьютера нажмите F2
  • Нажмите стрелку направо, чтобы перейти в Продвинутые настройки, выберите Виртуализацию и нажмите Enter
  • Нажмите «Включено» и Enter.
  • Нажмите F10 и выберите «Да» и нажмите Enter чтобы сохранить изменения и перезагрузиться.

Acer

  • Нажмите стрелку направо, чтобы перейти в Продвинутые настройки, выберите Виртуализацию и нажмите Enter
  • Нажмите «Включено» и Enter.
  • Нажмите F10 и выберите «Да» и нажмите Enter чтобы сохранить изменения и перезагрузиться.

Intel Virtualization Technology в Биосе: включать или нет?

Практически любой владелец ПК, рано или поздно, узнает о том, что на его компьютере присутствует специальный раздел БИОС, позволяющий изменять различные настройки. И изучая это место многие наталкиваются на такой интересный пункт, как Intel Virtualization Technology.

Естественно, сразу же у человека возникают вопросы и предположения:

  1. Что это такое?
  2. Что будет, если подключить данную технологию?
  3. Возможно ли таким образом ускорить работу компьютера, повысить его производительность?

То есть, пользователь сидит и размышляет, включать или нет IVT. Что же, давайте максимально подробно разберемся в этом вопросе.

История и особенности технологии

Впервые процессоры с этой технологией компания Интел выпустила в 2005-ом году. Производитель предложил сразу два варианта пользователям – 662-ю и 672-ю модели.

Изначально технология получила загадочное, многообещающее название «Vanderpool», но большинству юзеров она известна как VT-x.

Сразу хочется отметить, что не все фирменные центральные процессоры от этого производителя выпускаются с поддержкой этой технологии. Ее наличие подтверждается присутствием так называемого флага поддержки «vmx». Для проверки этого флага в операционных системах Linux и Mac присутствуют специальные команды:

  • Для первой это grep vmx /proc/cpuinfo;
  • Для второй ОС – sysctl machdep.cpu.features.

В 2013-ом году компания Intel предложила решение, которое ускоряет эту технологию. Оно стало доступно с архитектуры Haswell и называется VMCS. VT-x изначально создавалась для процессоров серии Pentium 4. На более современных моделях используется более продвинутый аналог – VT-d.

Аналогичная технология существует и у конкурента Интел – компании AMD. Она называется AMD-V и также имеет второе кодовое название – «Pacifica».

Для большинства процессоров VT-x изначально, по умолчанию, находится в неактивном состоянии. То есть, ее надо включать. И делается это как раз через BIOS. Но перед тем, как осуществить данный шаг, необходимо понимать, зачем это вообще нужно.

Нужна ли VT-x обычному пользователю ПК?

Суть Intel Virtualization Technology заключается в том, что технология позволяет создавать на обычном персональном компьютере так называемые виртуальные машины. И все. То есть, ни о каком ускорении, повышении производительности речи совершенно не идет.

Естественно, сразу же возникает вопрос – а пользуется ли обычный пользователь ПК этими самыми виртуальными машинами. Да, чаще всего их используют различные узкопрофильные специалисты, которые занимаются программированием, наладкой и другими процессами. Но и обычному обывателю такая ВМ может пригодиться. Для чего? Вот только несколько, самых популярных примеров:

  • Установка и полноценное использование на одном персональном компьютере сразу несколько различных операционных систем. Например, ОС Виндовс и Линукс. Удобно, когда требуется запустить какую-то специфическую программу, ради которой нет необходимости полностью менять операционку;
  • Использование программного обеспечения, благонадежность которого, по каким-либо причинам вызывает подозрения. Возможно, в них сидят вирусы, различные программы-шпионы или взлома. И запускать такое ПО на обычном компе очень нежелательно. А использование виртуальной машины позволит гарантировать, что основная система не пострадает. И одновременно получить желаемый результат;
  • Тестирование ПО. Иногда для этого необходимо создавать специальные условия. Например, иметь на ПК определенное количество ядер в процессоре, конкретную частоту ЦП, объем памяти и так далее. Использование ВМ позволяет легко выставить нужную конфигурацию и проверить результат. И не надо для этого физически что-то менять в оборудовании. Например, человек хочет запустить и часто использовать какую-то программку. Но характеристик его ПК недостаточно. Требуется апгрейд оборудования. Изначально можно подобрать оптимальную конфигурацию системы таким образом, а только затем – отправиться в магазин и приобрести все необходимое.

Есть множество программ, которым требуется определенная версия операционной системы. Особенно это касается достаточно старых продуктов. Например, у вас стоит Десятка или Семерка Виндовс, а очень хочется запустить какое-то ПО (например, игру), которое нормально функционирует только в XP или в более ранних версиях. Установите ВМ и проблема будет быстро решена.

Еще один интересный вариант – работа с сайтами. Да, ВМ позволяет создавать эмуляцию сети. Представьте ситуацию:

  • Вы – неопытный пользователь, который очень хочет иметь собственный сайт. Но не имеет опыта в их создании;
  • Денег на это особо нет, чтобы привлекать сторонних специалистов. Плюс очень хочется научиться всему самому.

Можно пойти классическим путем:

  • Обратиться к хостинг-компании;
  • Заплатить за домен и оплату услуг удаленного сервера;
  • А затем – приняться за создание личного интернет-ресурса.

А если не получится? Или в процессе создания перехочется? Получается, что деньги были потрачены зря?

Установив виртуальную машину, можно спокойно создать эмуляцию сети и в полностью идентичном реальному режиму приступить к созданию прототипа своего сайта. И, если все получится и устроит человека – повторить все уже классическим способом.

Какие виртуальные машины предпочитают использовать сегодня?

Их достаточно большое количество. Но наиболее популярными вариантами считаются следующие:

VirtualBox

Этот продукт легко интегрируется с практически со всеми современными операционными системами. То есть, его можно запускать, если изначально на компе стоит Виндовс, Линукс, ОС Мак и так далее.

Поддерживает как 32-разрядную, так и 64-рязряднуцю систему.

VMware

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

Единственный недостаток – она платная. Можно пользоваться и бесплатным вариантом, но в нем основной функционал будет изрядно урезан.

Microsoft Virtual PC

Полностью бесплатная оболочка. Правда, исходя из названия, сразу же можно выявить один недостаток. А именно, возможность работы только с ОС Microsoft Windows. Никаких Linux или Mac установить таким образом не получится.

Как активировать технологию VT-x

Итак, вы решили, что Intel Virtualization Technology является для задуманных целей необходимостью Естественно, возникает вопрос – как включить? Делается это следующим образом:

  1. Инициировать перезагрузку персонального компьютера стандартным способом.
  2. Во время включения компьютера успеть нажать на «Del» или на «F2».
  3. Таким образом вы попадете в меню настроек БИОС.
  4. Необходимо перейти в раздел, который называется Advanced BIOS Features.
  5. В нем найти пункт Virtualization или Virtualization Technology.
  6. Переключить рядом «Disabled» на «Enabled».

Остается только не забыть сделать сохранение изменений и перезапустить комп еще раз.

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

В данной статье мы расскажем вам пошагово о том, как допилить напильником свой нетбук или ноутбук, в котором по какому-то недоразумению выключен и залочен в таком состоянии бит 2 в MSR 0x3A — попросту говоря, у вас есть в процессоре поддержка виртуализации, но она заблокирована биосом.

ПРЕДУПРЕЖДЕНИЕ: всё, описанное в этой статье, рассчитано на то, что вы знаете, что делаете. Всё на свой страх и риск! Если не уверены — не пытайтесь повторить это дома.

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

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

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

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

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

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

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

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

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

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

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

Итак, некоторая техническая информация — чтобы понимать, что мы делаем и зачем.

Современные процессоры, по крайней мере многие из них, имеют поддержку виртуализации. За нее отвечает бит №5 в слове ECX при вызове команды CPU >
Однако мы-то знаем, что это неправда. Для тех, кто на «ты» с программированием на ассемблере, не составит труда выяснить это, написав нечто вроде
и проверив потом 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, потом:

Девять. Девять это 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! Все эти инструкции изменяются на лету, чтобы виртуальная машина выполнила их в безопасном для системы виде. Подробнее про эту проблему описано тут (англ.). Из-за этого страдает быстродействие виртуальной машины.

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

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

  • оригинальный BIOS для нашего нетбука с сайта производителя.
  • IDA
  • phoenixtool210.zip (гугл знает, где скачать)
  • HHD Hex Editor Neo или любой другой HEX Editor
  • FAR Manager 🙂
  • nasm — для дизассемблирования
  • Знание о том, как залить BIOS аварийным способом

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

  • отформатить USB HDD в FAT16 с партицией мегов на 100 (FAT32 не понимает)
  • залить туда один файл со сжатым биосом (ZE6.fd в моем случае)
  • выключить ноут, потом вынуть все USB устройства и аккумулятор
  • вынуть шнур питания
  • подключить USB HDD
  • нажать и удерживать Esc+Fn
  • воткнуть питание и через 5 сек нажать кнопку включения питания
  • отпустить кнопки клавиатуры

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

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

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

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

оказалось, что искать команду MOV EAX, 3AH перед командой WRMSR бессмысленно — в моем биосе WRMSR оформлена как отдельная функция и принимает параметры через стек. Поэтому я делал это так (мне показалось то проще, чам в IDA): установил на Linux пакет nasm, который включает в себя ndisasm. Потом дизассемблировал все файлы *.ROM командой

И потом простым поиском нашел команду wrmsr в них — таких файлов оказалось 29. Потом пришлось каждый из ни загружать в IDA и искать там нужный код, который лочит регистр 3AH.

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

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

Это приведет к тому, что одновременно с выставлением 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 после этого.

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

Читайте также:  Флешка не читается просит отформатировать что делать
Ссылка на основную публикацию
Adblock
detector