Включение аппаратной виртуализации на Acer Aspire V5-123 в Linux

В этой короткой статье, я расскажу вам как включить аппаратную виртуализацию на ноутбуке серии Acer Aspire V5-123. Эта модель довольно новая на рынке и никаких готовых рецептов на сегодняшний день для этой модели вы не найдёте. Как и у многих других моделей ноутбуков фирмы Acer, аппаратная виртуализация поддерживается тем процессором, что установлен в ноутбук, но фирма Acer не нашла ничего лучше как поставить на ноубук BIOS InsydeH2O, в котором такие полезные возможности как виртуализация и ACPI просто недоступны к включению или каким-либо настройкам.

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

Итак, когда мне понадобилась аппаратная виртуализация, ибо процессор неплох, а памяти так вообще 4Gb я столкнулся с дурацкой ситуацией, как говориться "видит око, но зуб неймёт". Уже при загрузке установленной мной Fedora 20, операционная система мне радостно сообщала, что "hardware virtualization disabled in BIOS". Разумеется я полез в BIOS и разумеется, ничего там не нашёл, такая настройка в нём попросту отсутствует.

Гугление в Интернете вывело меня на кучу статей на Хабре и других ресурсах, где с умным видом объясняли устройство BIOS'а, давали кучу инструментов на его потрошение типа PhoenixTools, EFItools и т.д. и предлагалось сперва взять образ BIOS'а, потом его расковырять и найти (интересно как?) нужное, а затем перепрошиться. При этом куча народу писала как они таким образом привели ноутбук в неработоспособное состояние и вынуждены были идти в сервис. "Нафиг-нафиг", - подумал я, - "мне такого не надо! Это не наш путь" и продолжил поиски.

Наконец они вывели меня на следующую тему на одном из зарубежных форумов. Там люди хренью не маялись, а просто дали простой и понятный рецепт как сделать то, что нужно. Вот только, к великому моему сожалению, рецепт касался модели Acer Aspire V5-122p. Я попробовал следовать этому рецепту один в один и понял, что для моей модели он не работает. Приведённый в теме дамп нужного файла покаызывал, что он серьёзно отличается от аналогичного файла на моей модели ноутбука. Отчаявшись включить секретную страничку в BIOS'е я сосредоточился хотя бы на включении аппаратной виртуализации и мне это удалось, когда я сравнил дамп биоса в теме с моим. Я нашёл нужное смещение и с удовольствием и совершенно бесплатно делюсь этим решением с вами.

Итак. Что нам нужно:

  1. Внешний DVD-ROM с установочным диском Fedora 20, подключенный к ноутбуку или USB-флешка на 100Mb
  2. Установленный на ноутбуке Fedora Linux 20. (см. предыдущую статью)
  3. Установленный редактор бинарных файлов bvi (ставите пакет bvi через yum install bvi и всё)

Тех у кого нет DVD-ROM'а я отсылаю к руководству по созданию загрузочной флешки в Fedora. Только обратите внимание, что нам нужна будет загрузочная флешка, которая должна грузиться через EFI boot.

Далее, перегружаем ноубук и держим нажатой F2, чтобы зайти в BIOS. В BIOS'е необходимо на странице Security задать пароль на BIOS (без этого вам не даст отключить secure boot в режиме UEFI boot). После этого идёте на вкладку Boot, выбираете режим UEFI Boot но сточкой ниже делаете Secure boot: disabled. Загрузка в UEFI boot режиме необходима, иначе в дальнейшем вы не сможете получить доступ к BIOS'у. Так что не пытайтесь грузиться в режиме Legacy. Также в BIOS'е включаете меню загрузки по F12.

Теперь вставляете загрузочную флешку или DVD-ROM как в моём случае и сохраняете изменения в BIOS. Начинается перезагрузка, держите F12. Если всё сделали правильно, вам предложит к загрузке либо USB CD-ROM (в случае DVD-ROM'а) или USB disk в случае флешки. Выбираем, грузимся.

В случае DVD-ROM'а нам выдаёт предупреждение о загрузке с небезопасного источника (забиваем) и стандартное меню загрузочного диска Fedora. Мы в стандартном меню выбираем "Troubleshooting" и Rescue.

Происходит стандартная загрузка в режиме Rescue, в конце которой нам говорит, что всё что нужно смонтировано и нам нужно теперь выполнить chroot /mnt/sysimage, чтобы попасть в ранее установленную на жёсткий диск систему. Мы нажимаем OK и попадаем в shell, где и выполняем то что предложено (команду chroot /mnt/sysimage). После чего мы попадаем в ту самую систему с теми же самыми данными и разделами, которую мы ранее установили. Теперь необходимо получить доступ к BIOS'у. UEFI BIOS страшная и красивая штука, но здесь мы её изучать не будем. Достаточно того, что выполнив команду:

mount none /sys/firmware/efi/efivars -t efivarfs

мы увидим в каталоге /sys/firmware/efi/efivars кучу файлов, представляющих из себя части этого самого BIOS'а. Нас среди всего этого сброда интересует лишь один файл с названием Setup-a04a27f4-df00-4d42-b552-39411302113d. Скопируйте его скажем в /tmp и откройте на редактирование через:

bvi Setup-a04a27f4-df00-4d42-b552-39411302113d

Теперь будьте ОСОБЕННО внимательными! Неправильное смещение, которое вы измените может привести к невозможности загрузки ноутбука. Придётся либо идти в сервис, либо сперва пробовать сбросить BIOS через отключение батареи и т.д. (ищите в гугле).

Итак, находите смещение 0x000000F2, нажимете "r" и заменяете значение 00 на 01. БОЛЬШЕ НИЧЕГО НЕ ТРОГАЕМ. Как и в случае с редакторм vi, нажимаем ESC затем ":" и вводим "wq" для записи файла и выхода. Проверьте себя, перед заменяемым значением должно идти: "01 01 00", т.е. в итоге, после изменения, со смещения 0x000000EF должно идти "01 01 00 01".

Если всё так и вы уверены, что всё сделали правильно, скопируйте обратно из /tmp исправленный вами файл Setup-a04a27f4-df00-4d42-b552-39411302113d в /sys/firmware/efi/efivars.

Теперь последнее, но не менее важное. Вы должны далее набрать exit, чтобы закончить сессию и выйти из chroot-окружения. Затем в shell'е (мне для этого пришлось нажимать ALT-F2) нужно набрать команду

poweroff

Не reboot! Не просто выключить компьютер, а именно выполнить shutdown (через poweroff в нашем случае).

Если всё было верно сделано, то вы можете зайти в BIOS, вернуться к способу загрузки Legacy, загрузиться в установленную ранее Fedora и выполнить команду:

dmesg|grep kvm

которая напишет вам эти ласкающие взгляд строки:

kvm: Nested Virtualization enabled
kvm: Nested Paging enabled

Вот и всё. Благодарности шлите на мыло. Автор: Виктор Вислобоков

А тем, кто любит копировать себе на сайт, напоминаю, что статья публикуется под лицензией Creative Commons BY-NC-ND, так что авторство указывать ОБЯЗАТЕЛЬНО, а делать производные работы на основе этой статьи, а также извлекать выгоду ЗАПРЕЩАЕТСЯ