UEFI — Ааа, слышал… но все же, что это?
Из песочницы
UEFI – взгляд вперед (часть 1/3)
Не так давно приходилось разбираться с тем, что такое UEFI и с чем же его едят. Тема весьма актуальна, а статей на русском языке не очень много. Что же, постараюсь исправить ситуацию и поделиться информацией, кою удалось «нарыть». Для начала, вводная глава для ознакомления с тем, что же такое UEFI и зачем оно нужно.
UEFI (Unified Extensible Firmware Interface) является связующей оболочкой между операционной системой и аппаратной частью (железом). В будущем планируется, что UEFI полностью вытеснит BIOS (Basic Input Output System) и займет его место. UEFI является относительно старой технологией, разработанной в 2005 (Unified EFI Forum) году. Однако, сие высказывание некорректно относительно данной ситуации, так как несмотря на то, что 8 лет довольно большой срок для IT-технологии и в иных сферах за эти годы успевали сменить сразу по нескольку технологий, UEFI изначально развивался довольно медленно и лишь в последние годы стал получать все большую известность. Ниже вы можете ознакомиться с графиком релизов UEFI.
Первоочередной целью при создании UEFI была разработка удобной и многогранной оболочки для 64-х битных систем с более развитым пользовательским интерфейсом и сетевым контролем.
И так, какими же преимуществами обладает UEFI?
Как установить Windows в режиме UEFI?
Установить Windows любом из указанных режимов на момент написания может даже ребёнок, сам процесс упрощён донельзя. Нам понадобятся лишь:
- образ необходимой версии Windows, скачанный по инструкциям статьи Загрузочная флешка с Windows. Я при этом использовал собственноручно созданный образ Windows 7 с набором дополнительных обновлений;
- флешка объёмом побольше (от 4 Гб; рекомендую от 8 Гб)
- программа Rufus.
Далее. Перед тем, как приступить к подготовке указанным способом, убедитесь, что версия материнской платы вообще поддерживает режим UEFI. Если всё в порядке, и выбранном варианте вы уверены, продолжаем. Для дальнейшей работы закрываем фоновые программы и готовим флешку для принятия файлов установки с образа. Это может сделать сама утилита Rufus. Так что…
Запускаем Rufus и выставляем настройки по фото. Важные пункты я обвёл красным:
Соглашаемся с предупреждениями и приступаем, щёлкнув по кнопке Старт.
Ждём окончания установки Windows на флешку. Скорость установки определяется возможностями компьютера и типом USB порта и параметрами самой флешки. После окончания можно протестировать работоспособность загрузочного устройства на виртуальной машине или “наживую”.
Для самой установки Windows необходимо либо выставить загрузку с флешки в BIOS либо после включения компьютера/ноутбука “поймать” меню выбора загрузочного устройства (Boot Pop Up Menu). Последнее на разных материнских платах появляется по-разному:
- Phoenix BIOS – F5
- AMI BIOS – F7
- American Megatrends – F8
Также встречаются клавиши Tab, реже – другие в зоне клавиш F (у каждого производителя может быть своя, у Lenovo, к примеру, F12). Далее просто следуем советам менеджера по установке системы. Кто теряется, обратитесь к разделу Установка операционных систем.
Минусы варианта
Даже созданный волне официальным способом носитель вероятно наткнётся на застывший экран с надписью
Starting Windows
Впрочем, некоторые из манипуляций в BIOS помогут исправить ситуацию с установкой Windows с созданной нами флешки в режиме UEFI. Так, идеальным вариантом был бы тот, что включает обоюдную поддержку (UEFI и Legacy):
Эволюция системного программного обеспечения
Более двух десятилетий в качестве ПО низкого уровня, используемого при старте компьютера для тестирования его оборудования, передачи управления железом главной загрузочной записи MBR, которая выбирает и запускает загрузчик нужной операционной системы, использовался BIOS.
C его помощью пользователи могут управлять огромным количеством параметров аппаратных компонентов.
CMOS – электронный элемент с независимым питанием в виде батарейки, где и хранится вся текущая конфигурация компьютера.
BIOS появился еще в конце 80-х годов. Да, он регулярно усовершенствовался и обновлялся, модифицировался под потребности пользователей и разработчиков, давая им возможность управлять режимами работы оборудования и электропитанием, но всему когда-то приходит конец. Тем более, что система ввода/вывода – тот компонент, который меньше всего претерпел изменения за почти три десятка лет в области информационных технологий.
Рис. 1 – Внешний вид UEFI
BIOS обладает массой недостатков:
- он не поддерживает загрузку из жестких дисков объёмом больше 2 ТБ – купили вы новый винчестер на 3 или 4 ТБ, а установить операционную систему на него не сможете, это технологическое ограничение главной загрузочной записи (никто в 80-х и не подумывал, что HDD могут быть столь неимоверного объема);
- BIOS функционирует в 16-ти битном режиме (при том, что фактически все современные процессоры являются 64 и 32-х битными) при использовании всего 1024 КБ памяти;
- процесс одновременной инициализации нескольких устройств поддерживается, но он весьма неотлажен и проблематичен, что снижает скорость запуска компьютера (каждый аппаратный компонент и интерфейс инициализируется отдельно);
- БИОС – рай для пиратов – он не имеет никаких защитных механизмов, что позволяет загружать любые операционные системы и драйверы, в том числе с изменённым кодом и неподписанные (нелицензионные).
Первая версия UEFI разработана корпорацией Intel для Itanium, но позже была портирована на IBM PC.
Это самостоятельная операционная система с графическим интерфейсом, состоящая из множества модулей и имеющая неограниченный доступ к ресурсам аппаратных компонентов.
Особенности новой EFI с графическим интерфейсом:
- её код написан полностью на C++, что позволяет увеличить производительность во время загрузки ПК посредством задействования возможностей 64-разрядных центральных процессоров;
- адресного пространства операционной системы хватает для поддержки 8*1018 байт дискового пространства (такого запаса хватит на несколько десятилетий) при том, что весь объем цифровой информации на данный момент почти на три порядка ниже;
- адресация оперативной памяти – теоретические расчёты показывают, что UEFI позволит устанавливать до 16 эксабайт оперативной памяти (на 9 порядков больше, чем в мощных современных ПК);
- ускоренная загрузка ОС осуществляется благодаря параллельной инициализации аппаратных компонентов и загрузке драйверов;
- драйверы подгружаются в оперативную память ещё до запуска операционной системы, причём они не являются платформозависимыми;
- вместо старой схемы разметки разделов используется прогрессивная GPT, однако для её задействования придётся отформатировать жесткий диск;
- удобная и симпатичная графическая оболочка поддерживает управление посредством мыши;
- есть встроенные утилиты для диагностики, изменения конфигурации и обновления прошивок аппаратных компонентов;
- поддержка макросов в формате .nsh;
- модульная архитектура – позволяет загружать собственные драйверы или скачанные из интернета;
- одно из самых значимых и важнейших изменений (в частности для Microsoft), которые привнесла UEFI – наличие Secure Boot Option. Она вызвана оберегать Bootloader от выполнения вредоносного кода, защитить операционную систему от вирусов ещё до её запуска посредством эксплуатации цифровых подписей.
Рис. 2 – Схема взаимодействия оборудования и ОС посредством UEFI
О последней функции поговорим подробнее.
Как установить Windows в режиме Legacy?
Условия создания флешки те же, что и в предыдущем варианте. Только теперь окно Rufus до записи на флешку в части некоторых настроек выглядит так:
Более подробное (хотя процесс прост) описание – в содержании статьи Загрузочная флешка с Windows от Rufus. Там, на примере немного устаревшей версии утилиты всё расставлено по полочкам. Процесс выбора готовой уже флешки при установке Windows на компьютер также схож с аналогичным из предыдущего абзаца:
- выбор флешки в качестве загрузочного устройства из BIOS или Boot Pop Up Menu
- выбор/создание/разбиение диска по необходимости
- установка системы и драйверов к устройствам
Успехов.
Мультизагрузка в UEFI
С самого начала массового распространения персональных компьютеров, время от времени вставала задача развертывания нескольких операционных систем на одном ПК, в котором мог размещаться один или несколько физических носителей. Не так давно ситуацию существенно изменило открытие технологии виртуализации, но полностью проблему это не сняло. В классическом своём понимании, применительно к станциям, загружающимся по традиционному способу PC/AT BIOS с использованием классической разметки MBR, мультизагрузка представляла собой сторонний код в главном загрузочном секторе (MBR), который загружает так называемый менеджер загрузки (мультизагрузчик), хранящий настройки для каждой установленной на компьютере операционной системы и предоставляющий меню выбора загрузки той или иной ОС. Если говорить про наше время, то есть про мультизагрузку применительно к носителя, разбитым уже при помощи GPT разметки, то теперь многое изменилось. Как мы уже отмечали, UEFI напрямую умеет работать с GPT-дисками, поэтому задача по установке нескольких операционных систем существенно упрощается. Теперь все функции мультизагрузчика берет на себя встроенный UEFI Boot Manager, принципы функционирования которого мы описали выше. Инсталлятору ОС достаточно лишь сделать то, с чем он и так прекрасно справляется: разместить загрузчик на специальный раздел ESP в «свою» иерархию директорий, после чего этот загрузчик становится «видимым» в настройках UEFI. Помимо установщика ОС, теперь и сам пользователь при помощи настроек (графического/текстового интерфейса UEFI) может вручную добавить загрузчик, находящийся на любом подключенном и видимом системой физическом носителе. Все эти добавленные различными способами загрузчики становятся доступными через Меню загрузки, которое пользователь может настраивать/вызывать непосредственно во время работы UEFI, то есть на начальной стадии загрузки ПК. Другими словами, мультизагрузка в UEFI просто вопрос запуска UEFI-приложений (загрузчиков конкретных ОС), размещающихся на подключенных носителях на специальном разделе ESP в иерархии директорий с корнем в .
Модификация UEFI BIOS, часть первая: знакомство с UEFITool
Tutorial
Прикрываясь полумифическими «безопасностью» и «защитой простого пользователя от буткитов» производители UEFI все сильнее закручивают гайки с каждым новым поколением своих продуктов. При этом поддержка предыдущих поколений быстро сходит на нет, и их пользователям ничего не остается, кроме как брать эту самую поддержку в свои руки. Конечно, при отсутствии исходного кода вносить какие-то изменения довольно сложно, но и без него можно сделать многое.
В своих предыдущих статьях об UEFI я планировал описать различные полезные модификации, которые помогают преодолеть некоторые заложенные производителями ограничения, но тогда до них руки не дошли, зато теперь — самое время.
В первой части этой статьи я опишу работу с написанным мной инструментом для модификации образов UEFI, а вторая будет посвящена самим модификациям.
Как делать не надо
Есть, на самом-то деле, несколько способов настроить UEFI-загрузку. Я начну с описания других вариантов — чтобы было понятно, как (и почему) делать не надо. Если вы пришли за руководством — мотайте в самый низ.
Не надо лезть в NVRAM и трогать efivars
Наиболее «популярная» процедура установки загрузчика в систему такова: установщик ОС создаёт специальный раздел, на нём — структуру каталогов и размещает файлы загрузчика. После этого он с помощью особой утилиты (efibootmgr в linux, bcdedit в windows) взаимодействует с прошивкой UEFI-чипа, добавляя в неё загрузочную запись. В этой записи указывается путь к файлу загрузчика (начиная от корня файловой системы) и при необходимости — параметры. После этого в загрузочном меню компьютера появляется опция загрузки ОС. Для linux существует возможность вообще обойтись без загрузчика. В загрузочной записи указывается путь сразу к ядру вместе со всеми параметрами. Ядро должно быть скомпилировано с опцией EFISTUB (что давно является стандартом для большинства дистрибутивов), в этом случае оно содержит в себе заголовок «исполняемого файла EFI», позволяющий прошивке его запускать без внешнего загрузчика.
При старте системы, когда пользователь выбирает нужную ему загрузочную запись, прошивка UEFI сперва ищет на прописанном в этой записи диске особый EFI-раздел, обращается к файловой системе на этом разделе (обязательно FAT или FAT32), и запускает загрузчик. Загрузчик считывает из файла настроек свой конфиг, и либо грузит ОС, либо предоставляет загрузочное меню. Ничего не замечаете? Да, у нас два загрузочных меню — одно на уровне прошивки чипа UEFI, другое — на уровне загрузчика. В реальности о существовании второго пользователи могут даже не догадываться — если в меню всего один пункт, загрузчик Windows начинает его грузить без лишних вопросов. Увидеть экран с этим меню можно, если поставить вторую копию Windows или просто криво её переустановить.
Обычно для управления загрузочными записями руководства в интернете предлагают взаимодействовать с прошивкой UEFI. Есть аж пять основных вариантов, как это можно сделать: efibootmgr под linux, bcdedit в windows, какая-то софтина на «Маках», команда bcfg утилиты uefi shell (запускается из-под UEFI, «на голом железе» и без ОС, поскольку скомпилирована в том самом особом формате) и для особо качественных прошивок — графическими средствами UEFI (говоря популярным языком, «в настройках BIOS»).
За всеми вышенаписанными «многобуков» вы могли легко упустить такую мысль: пользователь, чтобы изменить настройки программной части (например, добавить параметр запуска ОС), вынужден перезаписывать flash-память микросхемы на плате. Есть ли тут подводные камни? О да! Windows иногда способна сделать из ноутбука кирпич, linux тоже, причём . Качество прошивок часто оставляет желать лучшего — стандарты UEFI либо реализованы криво, либо не реализованы вообще. По логике, прошивка обязана переживать полное удаление всех переменных efivars без последствий, не хранить в них критичных для себя данных и самостоятельно восстанавливать значения по-умолчанию — просто потому что пользователь имеет к ним доступ, и вероятность их полного удаления далека от нуля. Я лично в процессе экспериментов неоднократно (к счастью, обратимо) «кирпичил» свой Lenovo — из загрузочного меню исчезали все пункты, включая опцию «зайти в настройки».
Работа с загрузочными записями UEFI — тоже не сахар. К примеру, утилита efibootmgr не имеет опции «редактировать существующую запись». Если ты хочешь немного изменить параметр ядра — ты удаляешь запись целиком и добавляешь её снова, уже измененную. При этом строка содержит в себе двойные и одинарные кавычки, а также прямые и обратные слеши в не особо очевидном порядке. Когда я наконец заставил эту магию работать — я сохранил её в виде bash-скриптов, которые до сих пор валяются у меня в корневой ФС:
Не надо использовать GRUB
Это чёртов мастодонт, 90% функциональности которого предназначено для дисков с MBR. Для настройки необходимо отредактировать ряд файлов, после чего выполнить команду генерации конфига. На выходе получается огромная малопонятная нормальному человеку простыня. В составе — гора исполняемых файлов. Ставится командой, которую просто так из головы не возьмешь — надо обязательно лезть в документацию
Для сравнения — самый простенький UEFI-bootloader, который есть в составе пакета systemd, ставится командой
Эта команда делает ровно две вещи: копирует исполняемый файл загрузчика на EFI-раздел и добавляет свою загрузочную запись в прошивку. А конфиг для неё занимает ровно СЕМЬ строчек.
Linux Kernel EFI Boot Stub или «Сам себе загрузчик»
Из песочницы
Введение
Прочитав недавнюю статью Загрузка ОС Linux без загрузчика, понял две вещи: многим интересна «новинка», датируемая аж 2011 годом; автор не описал самого основного, без чего, собственно, и работать ничего не будет в некоторых случаях. Также была ещё одна статья, но либо она уже устарела, либо там опять таки много лишнего и недосказанного одновременно.
А конкретно, был упущен основной момент — сборочная опция ядра CONFIG_EFI_STUB. Так как в последних версиях U(lu/ku/edu/*etc*)buntu эта опция по умолчанию уже включена, никаких подозрений у автора не появилось.
Насколько мне известно, на текущий момент она включена в дистрибутивах указанных версий и выше: Arch Linux, Fedora 17, OpenSUSE 12.2 и Ubuntu 12.10. В комментах ещё упомянули, что Debian с ядром 2.6 умеет, но это не более, чем бэкпорт с последних версий. На этих дистрибутивах пересобирать вообще ничего не нужно! А ведь на других CONFIG_EFI_STUB, скорее всего, либо вообще отсутствует, т. к. опция доступна только с ядра версии 3.3.0 и выше, либо выключена по умолчанию. Соответственно, всё, описанное ниже, справедливо для ядра, собранного с опцией CONFIG_EFI_STUB.
О безопасности UEFI, часть пятая
После небольшого перерыва продолжаем разговор о безопасности UEFI. В этот раз речь пойдет о технологии SecureBoot, ее преимуществах и недостатках, об атаках на нее и защите от них.
Впервые о SecureBoot речь зашла в стандарте UEFI 2.2 в 2011 году, но окончательно все аспекты были реализованы в версии 2.3.1C в начале 2012 года. Основным разработчиком технологии была Microsoft, которая сразу же заявила, что для получения сертификата Windows 8 Ready для своей еще не выпущенной новой ОС требуется реализация и включение SecureBoot по умолчанию на всех новых ПК. Это заявление вызвало волну резкой критики со стороны сторонников свободного ПО, которая успешно докатилась и до Хабра.
Если вам интересно, чем именно закончилось противостояние MS и сообщества, как SecureBoot выглядит после почти 4 лет взросления, и какие атаки на него все еще возможны — добро пожаловать под кат.
Стоп, чуть не забыл: по доброй традиции, набор ссылок на предыдущие части, для тех, кто умудрился их пропустить.
Простые приемы реверс-инжиниринга UEFI PEI-модулей на полезном примере
Здравствуйте, уважаемые читатели Хабра.
После долгого перерыва с вами опять я и мы продолжаем копаться во внутренностях UEFI. На этот раз я решил показать несколько техник, которые позволяют упростить реверс и отладку исполняемых компонентов UEFI на примере устаревшего-но-все-еще-популярного PEI-модуля SecureUpdating, который призван защищать прошивку некоторых ноутбуков HP от модификации.
Предыстория такова: однажды вечером мне написал знакомый ремонтник ноутбуков из Беларуси и попросил посмотреть, почему ноутбук с замененным VideoBIOS’ом не хочет стартовать, хотя такой же точно рядом успешно стартует. Ответ оказался на поверхности — не стартующий после модификации ноутбук имел более новую версию UEFI, в которую добрые люди из HP интегрировали защиту от модификации DXE-тома (а там и находится нужный нам VideoBIOS вместе с 80% кода UEFI), чтобы злобные вирусы и не менее злобные пользователи ничего там не сломали ненароком. Тогда проблема решилась переносом PEI-модуля SecureUpdating из старой версии UEFI в новую, но через две недели тот же человек обратился вновь, на этот раз на похожем ноутбуке старая версия модуля работать отказалась, и моя помощь понадобилась вновь.
Если вас заинтересовали мои дальнейшие приключения в мире UEFI PEI-модулей с дизассемблером и пропатченными переходами — добро пожаловать под кат.
Устройство NVRAM в UEFI-совместимых прошивках, часть первая
Здравствуйте, уважаемые читатели. Когда-то очень давно, почти 3 года назад, я написал пару статей о форматах данных, используемых в UEFI-совместимых прошивках. С тех пор в этих форматах мало что изменилось, поэтому писать про них снова я не буду. Тем не менее, в тех статьях был достаточно серьезный пробел — отсутствовали какие-либо упоминания об NVRAM и используемых для её хранения форматах, т.к. тогда разбор NVRAM мне был попросту неинтересен, ибо те же данные можно получить из UEFI Shell на работающей системе буквально одной командой dmpstore.
По прошествии трех лет выяснилось, что хранилище NVRAM умеет разваливаться по различным причинам, и чаще всего это событие приводит к «кирпичу», т.е. воспользоваться вышеупомянутой командой уже не получится, а данные (или то, что от них осталось) надо доставать. Собрав пару развалившихся NVRAM’ов вручную в Hex-редакторе, я сказал «хватит это терпеть!«, добавил поддержку разбора форматов NVRAM в UEFITool NE, и решил написать цикл статей об этих форматах по горячим следам и свежей памяти.
В первой части поговорим о том, что вообще такое этот NVRAM, и рассмотрим формат VSS и его вариации. Если интересно — добро пожаловать под кат.
Почему UEFI Secure boot это трудность для Linux
Перевод
Недавняя публикация на Хабре об ограничениях UEFI вызвала широкое обсуждение, в продолжении темы, хочу поделиться переводом актуального поста из блога Matthew Garrett, одного из разработчиков RedHat.
Я писал о технических деталях поддержки Linux`ом спецификации UEFI Secure boot. Не смотря на то, что я прямо указал, что она игнорирует вопросы лицензирования и распространение ключей, тем не менее опираясь на неё люди утверждают, что поддержка Secure boot может быть добавлена в Linux с минимальными усилиями. В некотором смысле, они правы. Технические детали реализации достаточно просты. Но трудности заключены не в них.
Пишем DXE-драйвер для снятия скриншотов с BIOS Setup и других UEFI-приложений
Tutorial
В прошлой статье про SecureBoot мне очень не хватало возможности сделать снимок экрана при настройке UEFI через BIOS Setup, но тогда выручило перенаправление текстовой консоли в последовательный порт. Это отличное решение, но доступно оно на немногих серверных материнских платах, и через него можно получить только псевдографику, а хотелось бы получить настоящую — она и выглядит приятнее, и вырезать ее каждый раз из окна терминала не надо.
Вот именно этим мы и займемся в этой статье, а заодно я расскажу, что такое DXE-драйвер и как написать, собрать и протестировать такой самостоятельно, как работают ввод с клавиатуры и вывод на экран в UEFI, как найти среди подключенных устройств хранения такое, на которое можно записывать файлы, как сохранить что-нибудь в файл из UEFI и как адаптировать какой-то внешний код на С для работы в составе прошивки.
Если вам все еще интересно — жду вас под катом.
Эксплуатация подписанных загрузчиков для обхода защиты UEFI Secure Boot
English version of this article.
Введение
Прошивки современных материнских плат компьютера работают по спецификации UEFI, и с 2013 года поддерживают технологию проверки подлинности загружаемых программ и драйверов Secure Boot, призванную защитить компьютер от буткитов. Secure Boot блокирует выполнение неподписанного или недоверенного программного кода: .efi-файлов программ и загрузчиков операционных систем, прошивок дополнительного оборудования (OPROM видеокарт, сетевых адаптеров).
Secure Boot можно отключить на любой магазинной материнской плате, но обязательное требование для изменения его настроек — физическое присутствие за компьютером. Необходимо зайти в настройки UEFI при загрузке компьютера, и только тогда получится отключить технологию или изменить её настройки.
Большинство материнских плат поставляется только с ключами Microsoft в качестве доверенных, из-за чего создатели загрузочного ПО вынуждены обращаться в Microsoft за подписью загрузчиков, проходить процедуру аудита, и обосновывать необходимость глобальной подписи их файла, если они хотят, чтобы диск или флешка запускались без необходимости отключения Secure Boot или добавления их ключа вручную на каждом компьютере.
Подписывать загрузчики у Microsoft приходится разработчикам дистрибутивов Linux, гипервизоров, загрузочных дисков антивирусов и программ для восстановления компьютера.
Мне хотелось сделать загрузочную флешку с различным ПО для восстановления компьютера, которая бы грузилась без отключения Secure Boot. Посмотрим, как это можно реализовать.
Доверенная загрузка Шрёдингера. Intel Boot Guard
Предлагаем вновь спуститься на низкий уровень и поговорить о безопасности прошивок x86-совместимых компьютерных платформ. В этот раз главным ингредиентом исследования является Intel Boot Guard (не путать с Intel BIOS Guard!) – аппаратно-поддержанная технология доверенной загрузки BIOS, которую вендор компьютерной системы может перманентно включить или выключить на этапе производства. Ну а рецепт исследования нам уже знаком: тонко нарезать реверс-инжинирингом имплементацию данной технологии, описать её архитектуру, наполнив недокументированными деталями, приправить по вкусу векторами атак и перемешать. Подбавим огня рассказом о том, как годами клонируемая ошибка на производстве нескольких вендоров позволяет потенциальному злоумышленнику использовать эту технологию для создания в системе неудаляемого (даже программатором) скрытого руткита.
Кстати, в основе статьи – доклады «На страже руткитов: Intel BootGuard» с конференции ZeroNights 2016 и 29-й встречи DefCon Russia (обе презентации здесь).
Типичные проблемы при настройке BIOS для загрузки с флешки
Нельзя сказать, чтобы проблемы входа в BIOS и его настройки для последующей загрузки с внешних носителей были особо распространенным явлением, тем не менее, сталкиваться с ними иногда приходится. Рассмотрим наиболее типичные из них.
Включенный быстрый запуск
Если при включении ПК вы жмете клавиши входа в BIOS, но при этом всё равно загружается Windows, скорее всего, у вас включен быстрый запуск. Если эта функция активна, при выключении ПК задействуется гибридный режим гибернации, тогда как для входа в БИОС нужен «холодный» старт компьютера. Есть три решения этой проблемы:
- Выключите компьютер с зажатой клавишей Shift.
- Используйте вместо выключения перезагрузку.
- Отключите быстрый старт. Зайдите в параметры электропитания и проследуйте по цепочке настроек, показанных на скриншотах ниже.
Включенный Secure Boot
Препятствовать загрузке с флешки может Secure Boot — встроенная функция BIOS UEFI, предназначенная для предотвращения запуска неавторизованного ПО во время включения компьютера. На разных моделях материнских плат процедура отключения этой функции может отличаться. В обычных BIOS настройка чаще всего располагается в разделе Boot > Security или System Configuration, в UEFI ее можно найти в разделе Boot. Чтобы ее отключить, в меню OS Type нужно выбрать пункт Other OS, в обычном БИОС функция отключается выставлением ей значения Disabled.
Флешка не видна в BIOS
Причин у этой неполадки может быть несколько. Вот две основные из них:
- Порт, к которому подключен накопитель, неисправен.
- В BIOS отключен контроллер USB. Маловероятный сценарий, но следует исключить и его. Ищите отвечающую за включение/отключение USB-портов настройку в разделе Advanced или Integrated Peripherals, если это Award BIOS. Название настройки может отличаться, но как правило, в ней всегда присутствует слово «USB». Значение этой настройки должно быть Enabled.
Как видите, в настройке BIOS для загрузки компьютера с флешки нет ничего принципиально сложного. Трудности могут возникнуть разве что на этапе поиска нужных параметров, поскольку иметь дело с базовой системой ввода/вывода рядовым пользователям приходится нечасто.
Немного о багах в BIOS/UEFI ноутбуков Lenovo/Fujitsu/Toshiba/HP/Dell
В этой статье я приведу описание багов в BIOS/UEFI ноутбуков, с которыми приходилось работать и для которых приходилось адаптировать загрузчики. В первую очередь речь пойдет о багах, которые не видны пользователю, но которые могут помешать работе загрузчика даже при условии, что все было сделано правильно. Баги были выявлены как в интерфейсах соответствующих сред исполнения, так и в коде режима SMM процессоров Intel. Приводимый материал основывается на накопленном опыте, который растянут на достаточно большой период времени. Поэтому к моменту написания список конкретных моделей был утрачен. Тем не менее, сохранился список фирм-производителей, на ноутбуках которых возникали проблемы. Баги будут описаны последовательно, начиная с простых и заканчивая самыми сложными. Также по ходу описания будет приведен способ их обхода.