Storage option rom uefi driver что это

Обновлено: 08.07.2024

UEFI (Unified Extensible Firmware Interface) — замена устаревшему BIOS. Эта спецификация была придумана Intel для Itanium, тогда она еще называлась EFI (Extensible Firmware Interface), а потом была портирована на x86, x64 и ARM. Она разительно отличается от BIOS как самой процедурой загрузки, так и способами взаимодействия с ОС. Если вы купили компьютер в 2010 году и позже, то, вероятнее всего, у вас UEFI.

Основные отличия UEFI от BIOS:
Как происходит загрузка в UEFI?

С GPT-раздела с идентификатором EF00 и файловой системой FAT32, по умолчанию грузится и запускается файл \efi\boot\boot[название архитектуры].efi, например \efi\boot\bootx64.efi
Т.е. чтобы, например, создать загрузочную флешку с Windows, достаточно просто разметить флешку в GPT, создать на ней FAT32-раздел и просто-напросто скопировать все файлы с ISO-образа. Boot-секторов больше нет, забудьте про них.
Загрузка в UEFI происходит гораздо быстрее, например, загрузка моего лаптопа с ArchLinux с нажатия кнопки питания до полностью работоспособного состояния составляет всего 30 секунд. Насколько я знаю, у Windows 8 тоже очень хорошие оптимизации скорости загрузки в UEFI-режиме.

Secure Boot

«Я слышал, что Microsoft реализовывает Secure Boot в Windows 8. Эта технология не позволяет неавторизированному коду выполняться, например, бутлоадерам, чтобы защитить пользователя от malware. И есть кампания от Free Software Foundation против Secure Boot, и многие люди были против него. Если я куплю компьютер с Windows 8, смогу ли я установить Linux или другую ОС? Или эта технология позволяет запускать только Windows?»

Начнем с того, что эту технологию придумали не в Microsoft, а она входит в спецификацию UEFI 2.2. Включенный Secure Boot не означает, что вы не сможете запустить ОС, отличную от Windows. На самом деле, сертифицированные для запуска Windows 8 компьютеры и лаптопы обязаны иметь возможность отключения Secure Boot и возможность управления ключами, так что беспокоится тут не о чем. Неотключаемый Secure Boot есть только на планшетах на ARM с предустановленной Windows!

Что дает Secure Boot? Он защищает от выполнения неподписанного кода не только на этапе загрузки, но и на этапе выполнения ОС, например, как в Windows, так и в Linux проверяются подписи драйверов/модулей ядра, таким образом, вредоносный код в режиме ядра выполнить будет нельзя. Но это справедливо только, если нет физического доступа к компьютеру, т.к., в большинстве случаев, при физическом доступе ключи можно заменить на свои.

В Secure Boot есть 2 режима: Setup и User. Первый режим служит для настройки, из него вы можете заменить PK (Platform Key, по умолчанию стоит от OEM), KEK (Key Exchange Keys), db (база разрешенных ключей) и dbx (база отозванных ключей). KEK может и не быть, и все может быть подписано PK, но так никто не делает, вроде как. PK — это главный ключ, которым подписан KEK, в свою очередь ключами из KEK (их может быть несколько) подписываются db и dbx. Чтобы можно было запустить какой-то подписанный .efi-файл из-под User-режима, он должен быть подписан ключом, который в db, и не в dbx.

Для Linux есть 2 пре-загрузчика, которые поддерживают Secure Boot: Shim и PRELoader. Они похожи, но есть небольшие нюансы.
В Shim есть 3 типа ключей: Secure Boot keys (те, которые в UEFI), Shim keys (которые можно сгенерировать самому и указать при компиляции), и MOKи (Machine Owner Key, хранятся в NVRAM). Shim не использует механизм загрузки через UEFI, поэтому загрузчик, который не поддерживает Shim и ничего не знает про MOK, не сможет выполнить код (таким образом, загрузчик gummiboot не будет работать). PRELoader, напротив, встраивает свои механизмы аутентификации в UEFI, и никаких проблем нет.
Shim зависит от MOK, т.е. бинарники должны быть изменены (подписаны) перед тем, как их выполнять. PRELoader же «запоминает» правильные бинарники, вы ему сообщаете, доверяете вы им, или нет.
Оба пре-загрузчика есть в скомпилированном виде с валидной подписью от Microsoft, поэтому менять UEFI-ключи не обязательно.

Secure Boot призван защитить от буткитов, от атак типа Evil Maid, и, по моему мнению, делает это эффективно.
Спасибо за внимание!

Конфигурация компьютера
Процессор: "AMD Ryzen™ 5 3600X @ 3.8GHz" under "be quiet! Dark Rock 4"
Материнская плата: MSI MPG B550 GAMING EDGE WIFI
Память: 32GB G.Skill Ripjaws V DDR4-3600MHz (2x16GB) (F4-3600C16D-32GVKC) CL16-19-19-39 1.35V
HDD: 500Gb SSD Samsung 970 EVO Plus NVMe M.2
Видеокарта: 2Gb MSI AMD Radeon RX 550 AERO ITX OC
Звук: "Realtek ALC1200" with "Edifier R1700BTs"
Блок питания: "500W be quiet! PURE POWER 11 (L11-CM-500W)" with "Be Quiet Pure Base 500DX"
Монитор: 27" AOC U2777PQU
Ноутбук/нетбук: ASUS M50Vn + Моноблок Acer Veriton Z4860G (DQ.VRZER.041)
ОС: Microsoft Windows 10 Pro x64
Прочее: Defender Berkeley Wireless combo C-925 / Logitech HD Webcam B910 / Keenetic Ultra (KN-1810) + Air (KN-1611)

Port 3
This item displays the information detected on the installed sSATA drives on the
particular sSATA port.
• Model number of drive and capacity
• Software Preserve Support
sSATA Port 0

Port 3
Select Enabled to enable an sSATA port specified by the user. The options are
Disabled and Enabled.
sSATA Port 0

Port 3 Hot Plug
This feature designates this port for hot plugging. Set this item to Enabled for
hot-plugging support, which will allow the user to replace an sSATA drive without
shutting down the system. The options are Enabled and Disabled.
sSATA Port 0

Port 3 Spin Up Device
On an edge detect from 0 to 1, set this item to allow the PCH to start a COMRE
SET initialization to the device. The options are Enabled and Disabled.
Port 0

у Вас что выбрано?
+
RAID конфигурируется и настраивается отдельной утилитой - не в BIOS мат.платы.

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

СОДЕРЖАНИЕ

Спецификация загрузки BIOS

Спецификация загрузки BIOS (BBS) была разработана консорциумом, в который входят Compaq , Intel и Phoenix Technologies, для стандартизации последовательности инициализации дополнительных ПЗУ PnP BIOS и устаревших дополнительных ПЗУ, не соответствующих стандарту PnP BIOS, и порядка, в котором они перехватывают прерывания. Стандарт представляет понятие таблицы вектора загрузочного соединения (BCV) и приоритета BCV. Основные принципы стандарта делают поведение более определенным и отлаживаемым и дают производителям BIOS возможность для дальнейшего динамического выбора загрузочного устройства для пользователя в дополнение к рекомендациям стандарта.

Распространенный вариант ROM является видео - BIOS , который загружается очень рано в процессе загрузки и перехватывает INT 10h , так что выход из питания на самотестирования (POST) может быть отображен. Видеобиос почти всегда находится в C000 сегменте памяти, в начале области памяти, зарезервированной для дополнительных ПЗУ; это потому, что, когда материнская плата имеет встроенный контроллер VGA, дополнительное ПЗУ будет находиться в BIOS - BIOS знает, где оно находится, и затеняет его в память в фиксированное время. Другие ПЗУ могут быть расположены от сегментов C800 до F400 ранних ПК. Окончательный поисковый адрес был в конечном итоге ограничен E000 в более поздних продуктах. Спецификация загрузки BIOS требует, чтобы дополнительные ПЗУ были выровнены по границам 2 КБ (например, сегменты C800, C880, C900, C980 и т. Д.). Первые два байта ПЗУ должны быть 55 AA .

После завершения базовых проверок POST BBS указывает, что BIOS обнаружит и затеняет все дополнительные ПЗУ, которые находятся в BIOS, в вышеупомянутую область, и он будет перемещаться по пространству конфигурации PCI , заполняя XROMBAR и копируя дополнительные ПЗУ карты расширения из ММИО космос в регион. Затем BIOS сканирует регион, и, если дополнительное ПЗУ имеет заголовок расширения PnP, он выполняет дальний вызов смещения + 03h в заголовке дополнительного ПЗУ для его инициализации. Затем он повторно сканирует область после того, как все дополнительные ПЗУ PnP были инициализированы (потому что, как указано в приложении E, процедура инициализации дополнительного ПЗУ могла связать больше заголовков расширения PnP для отдельных дисков, которыми владеет устройство). Он добавляет указатель BCV (при наличии) в заголовки расширения PnP. Он находит таблицу BCV или указатель BEV (при наличии) в таблицу приоритетов IPL. Записи BCV в таблице BCV затем вызываются в соответствии с переключаемым приоритетом в NVRAM . Таблица BCV заполнена указателями функций BCV, но имеет фиксированную запись, представляющую устаревшие дополнительные ПЗУ, которые являются указателем на подпрограмму BIOS, которая вызывает + 03h во всех остальных дополнительных ПЗУ, которые не имеют заголовка расширения PnP. Функция BCV инициализирует перехватчики INT 13h и INT 19h, которые, как предписывает BBS, не должны выполняться в подпрограмме инициализации в + 03h. Если устройство не имеет заголовка расширения PnP, оно может выполнить любую ловушку в подпрограмме в + 03h, поскольку это устаревшая карта.

В подпрограмме начальной инициализации, поскольку дополнительное ПЗУ указывает на структуру данных PCI (не такую ​​же, как пространство конфигурации), код дополнительного ПЗУ знает, что устройство и идентификатор поставщика имеют фиксированное смещение от RIP . Это позволяет ему сканировать конфигурационное пространство PCI, чтобы найти нужное устройство и полосы BAR, которые необходимо использовать. Чтобы предотвратить это сканирование и в случае двух идентичных карт в системе, BIOS передает PFA (шина / устройство / функция) в процедуру инициализации в AX, а номер выбора карты (CSN) для дополнительных ПЗУ ISA передается в BX. Затем он может взаимодействовать с устройством с помощью PMIO / MMIO, чтобы узнать, сколько дисков у него есть и какие из них являются загрузочными, путем чтения MBR . BIOS уже прочесал конфигурационное пространство, выделил BAR и заполнил таблицу ACPI перед вызовом процедуры инициализации, поэтому дополнительное ПЗУ будет использовать адреса, назначенные его BAR. BCV, однако, перехватывает подпрограммы прерывания, которые взаимодействуют с устройством, которые настраиваются на основе местоположения базового адреса MMIO, информации о диске, установленной в подпрограмме инициализации дополнительного ПЗУ, и текущего номера диска в BDA.

Затем процедура BIOS INT 19h использует приоритет таблицы IPL в NVRAM, чтобы решить, следует ли вызывать запись, содержащую обработчик загрузки, который будет читать MBR 00h (BAID гибкого диска; первое устройство в таблице BCV для регистрации диска 00h), или запись, содержащая обработчик загрузки, который будет читать MBR 80h (BAID жесткого диска; первое устройство в таблице BCV для регистрации диска 80h) или одну из записей BEV в таблице. Устройство имеет BEV или BCV только в том случае, если оно является загрузочным.

SCSI контроллер карты может подключить INT 13 , который отвечает за предоставление услуг диска. Он будет делать это в своем BCV, если это карта PnP. Как только это будет сделано, любые последующие вызовы INT 13h будут "перехвачены" дополнительным ПЗУ SCSI (или "SCSI BIOS"), позволяя ему отвечать для дисков, которые могут существовать на шине SCSI. До перехвата прерывания в системе могло не быть дисков, но перехватывая прерывание и изменяя возвращаемые значения, SCSI BIOS может сделать все диски на шине SCSI видимыми для системы.

В этом конкретном случае сам BIOS может вызвать INT 13h, чтобы предоставить пользователю список возможных загрузочных устройств, и поскольку SCSI BIOS перехватил прерывание, пользователь сможет выбрать не только стандартные системные устройства для загрузки, но также и какие диски SCSI. Это связано с тем, что, как предложено в Приложении D спецификации Boot BIOS, BIOS может заполнить таблицу IPL информацией об устройстве и поставщике из вызовов INT 13h на разные диски в паре с номером жесткого диска (80h, 81h . ) , чтобы разрешить загрузку с любого жесткого диска, а не только с первого диска первого контроллера, который перехватил INT 13h как загрузочный (элемент с наивысшим приоритетом в таблице BCV), называемое BIOS Aware IPL Device (BAID) в спецификации.

Несколько контроллеров могут перехватывать INT 13h одновременно. Например, после контроллера SCSI контроллер AHCI может также перехватить INT 13h, поместив вызов предыдущего обработчика, который был сохранен в IDT в записи 13h контроллером SCSI, в конце своего собственного обработчика, который затем вставляет IDT в запись 13ч. Если INT 13h вызывается с DL = 83h, тогда ответит контроллер, назначивший диапазон диска, содержащий 83h, в противном случае он пропустит и вызовет предыдущий обработчик. Первый контроллер, подключившийся к INT 13h, увидит, что установлено 0 дисков, проверив байт 0040:0075 , который находится в области данных BIOS (BDA), и, если у него есть 4 диска для перечисления, он назначит диапазон 80h – 83h и хранить «4» в BDA.

Сетевое загрузочное ПЗУ

Другой распространенный вариант ПЗУ - это сетевое загрузочное ПЗУ. Дополнительное ПЗУ содержит программу, необходимую для загрузки загрузочного кода. Первоначальные ПЗУ персональных компьютеров IBM подключали INT 18H (первоначально для вызова Cassette BASIC ) и INT 19H, поскольку эти два прерывания были назначены, когда процесс загрузки вот-вот начнется. INT 19H вызывается для инициации процесса загрузки, а INT 18H вызывается, когда система пытается загрузиться со всех возможных устройств, и ни одно из них не было загрузочным. Первоначально, подключив INT 18H, система вызывала Cassette BASIC (если она есть) или пыталась загрузиться по сети, когда все другие загрузочные устройства (дисководы гибких дисков, жесткие диски и т. Д.) Выходили из строя. Подключив INT 19H, система попытается загрузиться по сети раньше всех других устройств. BBS указывает, что дополнительное ПЗУ NIC не перехватывает 19h, вместо этого обработчик 19h BIOS должен вызвать BEV, который затем загрузит загрузочный код.

видео

Video BIOS предоставляет некоторые базовые услуги отображения для BIOS и систем , работающих , например , INT 10H (Наследство BIOS), VBE (Наследство BIOS) и UEFI GOP .

Дополнительные ПЗУ UEFI

Спецификация PCI допускает использование нескольких образов дополнительных ПЗУ на одном устройстве. Эти дополнительные ПЗУ могут быть устаревшими x86 и UEFI. Если для формата дополнительного ПЗУ установлено значение «Совместимость с UEFI» в настройке UEFI, на этапе DXE будет загружено новое дополнительное ПЗУ UEFI, если оно есть, и устаревшее дополнительное ПЗУ, если оно отсутствует. UEFI может использовать устаревшие дополнительные ПЗУ, если включен модуль поддержки совместимости (CSM). Обратите внимание, что при включенной безопасной загрузке выполнение модуля поддержки совместимости и устаревших дополнительных ПЗУ запрещено, поскольку устаревшие драйверы микропрограмм не поддерживают аутентификацию, что является угрозой безопасности.

Выбор режима работы SATA (IDE, AHCI, RAID), NVMe

Идеальная сборка — это когда каждый компонент системы работает со 100% отдачей. Казалось бы, такая тривиальная задача, как подключение жесткого диска к материнской плате не должна вызвать особых затруднений. Подключаем HDD к соответствующему разъему, и, вуаля — в системе есть место для развертывания операционки и хранения файлов. Но не все так просто!

Чтобы познать дзен сборки и получить оптимальную по определенным параметрам (быстродействие, надежность и т. д.) систему, нужно обладать определенным пониманием логики работы современных протоколов и алгоритмов передачи данных, знанием режимов работы контроллера HDD на материнке и умениями в области их практического использования.

BIOS и UEFI — разница есть!

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

BIOS-ом называют управляющую программу, «зашитую» в чип материнской платы. Именно она отвечает за слаженную работу всех подключенных к материнке устройств.

Начиная с 2012–2013 годов, большинство материнских плат снабжается UEFI — усовершенствованной управляющей программой, наделенной графическим интерфейсом и поддерживающей работу с мышью. Но, что называется «по старинке», оба варианта, на бытовом уровне, называют BIOS.

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

Таким весомым аргументом стало ограничение на возможность работы с накопителями большого объема в изначальной версии BIOS. Дело в том, что объем диска ограничен значением, приблизительно равным 2,1 ТБ. Взять эту планку без кардинальных изменений управляющего софта было невозможно. К тому же БИОС работает в 16-битном режиме, используя при этом всего 1 МБ памяти, что в комплексе приводит к существенному замедлению процесса опроса (POST-опрос) устройств и началу загрузки из MBR области с установленной «осью».

UEFI лишена вышеперечисленных недостатков. Во-первых, расчетный теоретический порог объема дисковой подсистемы составляет 9,4 ЗБ (1 зеттабайт = 10 21 байт), а во-вторых, для загрузки операционки используется стандарт размещения таблиц разделов (GPT), что существенно ускоряет загрузку операционной системы.

Разметка жестких дисков

Как говорилось ранее, у стандартов BIOS и UEFI — различный подход к разметке области жесткого диска. В BIOS используется так называемая главная загрузочная запись (MBR), которая четко указывает считывающей головке HDD сектор, с которого нужно начать загрузку ОС.

В UEFI это реализовано иначе. В этом стандарте используется информация о физическом расположении таблиц разделов на поверхности HDD.

Как это работает?

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


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

Еще одно существенное отличие — при использовании «старого» BIOS и MBR на диске можно максимально создать четыре логических раздела. В случае необходимости создания их большего количества придется доставать свой шаманский бубен и прибегнуть к определенным действиям на грани магии и «химии». По сути, предстоит проделать трюк с одним из основных разделов. Сначала преобразовать его в расширенный, а затем создать внутри него нужное количество дополнительных разделов. В случае использования стандарта GPT все это становится неактуальным, поскольку изначально в ОС Windows, при использовании новой философии разметки HDD, пользователю доступно создание 128 логических разделов.

Что касается физической разбивки диска на логические разделы, то здесь нужно четко понимать задачи, под которые они создаются. Нужно приучить себя четко разделять данные пользователя и системные файлы. Исходя из этого, логических дисков в системе должно быть как минимум два. Один под операционку, второй под пользовательские данные.

Оптимальный вариант — иметь в ПК два физических диска. SSD объемом 120–240 ГБ под систему и быстрые игрушки и HDD под документы и файлы мультимедиа необходимого объема.

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

Режимы работы SATA

Покончив с необходимым теоретическим минимумом, следует определиться с выбором режима работы контроллера HDD материнской платы и сферами их применения.


  • IDE — самый простой и безнадежно устаревший вариант, использование которого было актуально лет n-цать назад. Представляет собой эмуляцию работы жесткого диска PATA. Режим находит применение при работе с устаревшим оборудованием или программным обеспечением, требующим устаревших операционных систем. Современные SSD в таком режиме работать не будут!

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

  • AHCI — режим работы современного накопителя, предоставляющий расширенный функционал и дополнительные «плюшки». В первую очередь — возможность «горячей» замены жестких дисков. Для домашнего ПК или офисной машины — это не очень актуально, а вот в случае с серверным оборудованием, такая возможность поможет сэкономить много времени и нервов системного администратора. Во-вторых, наличие реализованного алгоритма аппаратной установки очередности команд (NCQ), существенно ускоряющей работу накопителя и производительность системы в целом. Это достигается за счет грамотного и оптимального алгоритма движения считывающей головки по блину классического HDD или более эффективного использования ячеек памяти в случае SSD накопителя.


  • RAID — возможность организации совместной работы нескольких накопителей в едином дисковом массиве. В зависимости от задач, можно объединить диски в систему повышенной надежности (RAID 1) информация в которой будет дублироваться на каждый из дисков массива, или высокопроизводительную систему (RAID 0 или RAID 5), когда части одного файла одновременно записываются на разные диски, существенно сокращая при этом время обращения к дисковому массиву.
  • NVMe — абсолютно новый стандарт, специально разработанный под SSD-накопители. Поскольку твердотельные диски уже «выросли» из протокола передачи данных SATA-III, и берут новые вершины в передаче данных по интерфейсу PCI-E, обеспечивая при этом наивысшую скорость выполнения операций чтения/записи. При этом по скорости превосходят своих SSD-собратьев, работающих в режиме AHCI, практически вдвое.

К выбору режима работы накопителя следует отнестись ответственно. Выбрать его нужно перед началом установки операционной системы! В противном случае, при его смене на уже установленной операционке, очень велика вероятность получения экрана смерти (BSOD) и отказа ПК работать.


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

Читайте также: