Содержание
- Как установить Windows 7 на компьютер с UEFI без поддержки CSM с помощью FlashBoot
- Как установить Windows 7 на компьютер с UEFI без поддержки CSM с помощью FlashBoot
- Как запускается сервер: UEFI
- Wake up, Neo!
- Фаза SEC (Security)
- Фаза PEI (Pre EFI Initialization)
- Что такое CMS?
- Фаза DXE (Driver eXecution Environment)
- Фаза BDS (Boot Device Select)
- Фаза RT (Run Time)
- Заключение
- UEFI with CSM что это в биосе?

Это ошибочно. CSM не является кое-чем критически принципиальным для установки Windows 7 на UEFI, ведь вы сможете запустить эту систему в режиме UEFI на не поддерживающих CSM гипервизоре bhyve во FreeBSD либо на виртуальной машине VirtualBox, настроенной под Windows 8 x64, за ранее интегрировав в установочный образ паравиртуальные драйвера VirtualBox VBoxVGA и VBoxSVGA. А раз так, провернуть всё это можно и на железе, главное — знать, как сделать это верно.
Как установить Windows 7 на компьютер с UEFI без поддержки CSM с помощью FlashBoot
Сделанная более 30 годов назад, называемая BIOS базисная система ввода-вывода порядком устарела, и всё большее количество компов сейчас выпускается на базе UEFI — расширяемом интерфейсе прошивки, который можно условно именовать новым поколением BIOS. И хотя UEFI появился не вчера и даже не позавчера, для многих юзеров он остаётся ещё кое-чем новым и практически непонятным, что приводит к различного рода недоразумениям. К примеру, почему-либо считается, что на ПК с UEFI принципно нельзя установить Windows 7 x64, если он не поддерживает режим CSM, в каком «семёрка» указывает наилучшую производительность.
Как установить Windows 7 на компьютер с UEFI без поддержки CSM с помощью FlashBoot
Это ошибочно. CSM не является кое-чем критически принципиальным для установки Windows 7 на UEFI, ведь вы сможете запустить эту систему в режиме UEFI на не поддерживающих CSM гипервизоре bhyve во FreeBSD либо на виртуальной машине VirtualBox, настроенной под Windows 8 x64, за ранее интегрировав в установочный образ паравиртуальные драйвера VirtualBox VBoxVGA и VBoxSVGA. А раз так, провернуть всё это можно и на железе, главное — знать, как сделать это верно.
Что такое CSM
Если не вдаваться глубоко в технические подробности, CSM — это модуль сопоставимости, режим, позволяющий устанавливать и загружать старенькые операционные системы на компьютерах с UEFI так же, как если б заместо UEFI в их употреблялся традиционный BIOS, примером чему может служить загрузка с MBR-дисков на UEFI. Эта функция в интерфейсе UEFI (зависимо от версии) может называться CMS Boot, UEFI and Legacy OS либо CMS OS. При её использовании обычно приходится отключать Secure Boot, работающий только с «чистой» UEFI. Неувязка в том, что в самых новых материнских платах CSM может и не поддерживаться, ведь и эта разработка равномерно уходит в прошедшее.
В поиске решения
Из примера с установкой 64-разрядной Windows 7 на VirtualBox в режиме UEFI можно созидать, что VGA-совместимый GPU с верно сопоставленными портами ввода-вывода и обработчиком INT 10H вправду нужен, причём INT 10H обычно предоставляется прошивкой при включённом режиме CSM. Начиная с Windows 8, обработчик INT 10H закончил употребляться для загрузки системы, а совместно с ним были удалены эмулятор BIOS и драйвер минипорта VGA, а заместо последнего стал употребляться встроенный видеодрайвер на базе протокола вывода графики UEFI, также узнаваемый как GOP.
Так может быть для загрузки Windows 7 на UEFI будет довольно интегрировать измененный обработчик INT 10H, умеющий использовать тот же протокол GOP? Как досадно бы это не звучало, опыты проявили, что этого оказалось недостаточно, потому что кроме вызова VGA через INT 10H, через порт ввода-вывода VGA происходит воззвание к ядру операционной системы (файл NTOSKRNL.EXE). Чтоб решить делему загрузки, разработчикам пришлось сделать патч для NTOSKRNL.EXE, создающий особый подпроцесс при каждой загрузке Windows.
FlashBoot как результат решения задачи
«Видимым» результатом усилий разработчиков стала утилита FlashBoot Pro — обычный и интуитивно понятный инструмент для сотворения загрузочных флешек с пропатчиванием Windows 7 x64, по этому эту систему можно устанавливать на новые компы с UEFI без поддержки режима сопоставимости CSM. Не считая того, FlashBoot и ее проф версия FlashBoot Pro может быть применена для «создания» переносных, загружающихся с флешки систем Windows, создания образов флешек (в том числе загрузочных) и восстановления из них на других переносных накопителях, также их форматирования и полной очистке. FlashBoot Pro дополнительно поддерживается создание клонов Windows 7, 8, 8.1 и 10 с возможностью интеграции драйверов USB 3.0, NVMe и AHCI/RAID, создание загрузочных флешек с Windows XP и «живых» дисков BartPE (мини-версия XP), также самораспаковывающихся архивов.
Создание загрузочной флешки в FlashBoot
Приведём пример создания загрузочной флешки с Windows 7 x64 с пропатченными файлами загрузки для последующей установки системы на новые ПК с UEFI без поддержки CSM. Сперва находим Free-версию программы на официальном сайте www.prime-expert.com/flashboot (Pro-версию можно только купить), устанавливаем и запускаем. Подключаем к компьютеру флешку и жмём в открывшемся окне приложения «Next».
В следующем окне выбираем опцию записи дистрибутива на флешку «OS installer → USB». Далее программа предложит выбрать метод создания загрузочного носителя.
Поскольку нам нужна загрузочная UEFI-флешка без поддержки CSM выбираем опцию «Windows Vista/7/8/8.1/10 installer with added drivers (for UEFI-based Computers)», доступную исключительно в Pro-версии. Она же позволяет интегрировать в процессе создания загрузочного накопителя драйвера. Если нужна UEFI-флешка с поддержкой CSM, подойдёт и «Windows Vista/7/8/8.1/10 installer (for BIOS-based Computers)».
Следующий шаг — выбор источника, которым может служить как установочный ISO-файл, так и записанный на DVD-диск дистрибутив системы.
Жмём «Next» и видим, что FlashBoot уже включила интеграцию драйверов USB 3.x и NVMe, также пропатчивание загрузочных файлов. Активировав пункт «Custom drivers from the specified folder…», можно добавить свои драйвера, указав файлы INF, SYS и CAT.
После очередного нажатия «Next» выбираем в выпадающем списке подключённую флешку и снова нажимаем «Next».
На следующем этапе можно дать метку тома и указать в дополнительных настройках «Set advanced options» нужно ли добавлять в конец флешки нераспределённое пространство, чего мы делать не станем.
В конечном итоге перед вами предстанет список запланированных операций, запускаем их нажатием «Format Now». Процедура записи довольно длительная, копирование файлов образа размером 5,5 Гб на флешку объёмом 7,5 Гб, подключённую по интерфейсу USB 2.0 у нас заняла почти два часа!
За прогрессом записи вы можете наблюдать в окошке мастера. По успешном завершении процедуры вы получите сообщение «Completed successfully. Click OK to exit». Готово, можете использовать флешку для установки Windows.
FlashBoot Pro со скидкой 40% или как мы пытались получить бесплатную версию программы для создания загрузочных флешек.
Читайте наш специальный раздел об установке Windows 7 на новые ноутбуки и ПК с интерфейсом UEFI
Как запускается сервер: UEFI

Ранее мы уже разбирали последовательность запуска сервера на примере устаревшего Legacy. Пришло время познакомиться с UEFI поближе.
Первая версия того, что сейчас известно как Unified Extensive Firmware Interface (UEFI), разрабатывалась в 90-е годы прошлого тысячелетия специально под системы на Intel® Itanium® и называлась Intel Boot Initiative, а позже — EFI.
Желание «обновить» процесс загрузки было ожидаемо. PC-BIOS, именуемый ныне Legacy, предлагает работать в 16-битном real mode, адресует всего 1 МБ оперативки, а загрузчик вместе с таблицей разделов должен размещаться в первых 512 байтах накопителя. Более того, PC-BIOS передает управление первому найденному загрузчику без возможности возврата назад. При всем этом обработку случаев с несколькими операционными системами возлагают на плечи загрузчика.
Ограничение на размер загрузчика диктует использование разметки Master Boot Record (MBR), появившийся в 1983 году. MBR не стандартизирован, однако множество производителей придерживаются «сложившихся традиций». У MBR есть серьезные ограничения: по дефлоту поддерживается только 4 раздела и объем накопителя менее 2.2 ТБ.
В декабре 2000 года была выпущена первая широко распространенная спецификация EFI под версией 1.02. Спустя пять лет Intel передали EFI в UEFI Forum, добавив Unified в название, чтобы подчеркнуть изменения. Спецификация UEFI лежит в открытом доступе и состоит из нескольких документов:
- ACPI Specification;
- UEFI Specification;
- UEFI Shell Specification;
- UEFI Platform Initialization Specification;
- UEFI Platform Initialization Distribution Packaging Specification.
UEFI универсален, но в данной статье мы будем опираться на стандарт, поглядывая в сторону процессоров на архитектуре x86_64.
Wake up, Neo!

Последовательность фаз загрузки UEFI (источник UEFI Platform Initialization Specification)
После инициации включения платформы блок питания ждет, пока не завершатся переходные процессы, и после устанавливает сигнал на линию Power_Good. И первым начинает работу не центральный процессор, а автономная подсистема Intel® Management Engine (ME) или аналогичная ей AMD Secure Technology (ST). Эта подсистема проводит собственные операции, а затем подготавливает и запускает первое ядро одного процессора, именуемое Bootstrap Processor (BSP).
В соответствии с принятой терминологией ядро/поток процессора здесь и далее будет называться процессором: начальным (bootstrap processor) или прикладным (application processor).
Как и в Legacy, процессор начинает выполнять первую инструкцию в конце адресного пространства по адресу 0xFFFFFFF0. Эта инструкция — прыжок на первую фазу инициализации платформы — SEC.
Фаза SEC (Security)
В данной фазе должны быть решены следующие задачи:
- обработка события включения;
- инициализация достаточного количества памяти для следующей фазы;
- становление корня доверия системы;
- передача необходимой информации и управления на следующую фазу.
Следом происходит обработка события включения. Под этим подразумевается агрегация информации о состояниях оборудования, чтобы на следующей фазе некоторые модули были в состоянии сделать выводы о «здоровье» и общем состоянии платформы.
Во время фазы SEC не происходит инициализация оперативки. Вместо этого свободный кэш процессора помечается как несбрасываемый, и он превращается во временную оперативку. Такой режим называется no-eviction mode (NEM). В выделенной памяти создается стек, что позволит модулям из следующих фаз использовать стековые языки программирования до инициализации основной оперативки.
Далее происходит инициализация всех прикладных процессоров (Application Processor, AP) с отправкой им специальной последовательности межпроцессорных прерываний (Inter-Processor Interrupt, IPI). Последовательность Init IPI — Start-up IPI — пробуждает прикладной процессор и запускает на нем самотестирование — Built-In Self-Test (BIST). Результаты тестирования записываются и передаются далее для анализа.
В конце фазы Security необходимо найти раздел Boot Firmware Volume (BFV), на котором располагается исполняемый код следующей фазы, также по возможности найти другие, неосновные, разделы с кодом (Firmware Volume, FV).
Чтобы оправдать название фазы Security и стать корнем доверия, во время выполнения этой фазы код, которому мы планируем передать управление, может быть проверен на отсутствие несанкционированных изменений и вредоносных частей программы.
В конце выполнения SEC собрана следующая информация:

- размер и адрес Boot Firmware Volume (BFV);
- размер и адреса других Firmware Volume (FV);
- размер и адрес временной оперативки;
- размер и адрес стека.
Фаза PEI (Pre EFI Initialization)

Фаза PEI на материнской плате SuperMicro
Задача фазы Pre EFI Initialization заключается в сборе информации о подключенных устройствах и подготовке минимально необходимого количества оборудования для запуска процесса полной инициализации.
По своей задумке фаза PEI должна быть легковесной, потому что память процессорного кэша ограничена. Помимо этого, в фазе PEI может происходить восстановление после сбоя, поэтому есть потребность размещать код фазы PEI в более отказоустойчивом хранилище.
Данная фаза состоит из ядра, называемого PEI Foundation, и подключаемых модулей PEI Module (PEIM). Центральной частью ядра является диспетчер модулей, PEI Dispatcher, который управляет порядком исполнения модулей, также организует межмодульное взаимодействие (PEIM-to-PEIM Interface, PPI).
Отметим, что фаза SEC исполнялась с флэш-памяти на материнской плате, и исключительно в начале PEI необходимый для этой фазы исполняемый код копируется во временную оперативку.
Далее к работе приступает PEI Dispatcher. Он запускает PEI модули в конкретном порядке: сначала модули без зависимостей, затем зависящие от первых и так до того времени, пока модули не закончатся.
Архитектура фазы PEI позволяет разрабатывать собственные модули, которые могут передавать результаты своей деятельности в следующую фазу. Передача информации происходит через специальную структуру данных Hand-off Block (HOB).
В процессе запуска PEI модулей отметим следующие:
- CPU PEIM — инициализация процессоров;
- Platform PEIM — инициализация северного (в т.ч. Memory Controller Hub) и южного (I/O Controller Hub) мостов;
- Memory Initialization PEIM — инициализация основной оперативки и перенос данных из временной памяти в RAM.
Состояние S3 (Suspend to RAM) — это состояние сна, при котором процессор и часть чипсета отключаются с потерей контекста. При пробуждении из такого состояния процессор начинает выполнение как при обычном включении. Но вместо полной инициализации и прохождения всех тестов система ограничивается восстановлением состояния всех устройств.
Что такое CMS?
При запуске из любого другого состояния управление передается в фазу Driver Execution Environment.
Фаза DXE (Driver eXecution Environment)

Инициализация механизма AHCI в фазе DXE
Задача фазы Driver Execution Environment (DXE) сводится к инициализации оставшихся устройств. К моменту старта фазы DXE процессор и основная память готовы к работе, а на драйверы DXE не накладываются строгие ограничения по потребляемым ресурсам.
Аналогично PEI Foundation в данной фазе есть собственное ядро — DXE Foundation. Ядро создает необходимые интерфейсы и загружает три вида DXE сервисов:
- UEFI Boot Services — сервисы времени загрузки;
- UEFI Runtime Services — сервисы времени исполнения;
- DXE Services — специальные сервисы, необходимые ядру DXE.
В UEFI нет специализированной фазы, где оборудование проходит POST (Power-On Self-Test). Вместо этого каждый модуль PEI и DXE фазы проводит свой набор тестов и сообщает об этом при помощи POST-кодов пользователю и при помощи HOB в следующие фазы.
Среди множества загружаемых драйверов на процессорах x86_64 стоит уделить внимание драйверу System Management Mode Init (SMM Init). Этот драйвер подготавливает все для работы режима системного управления (System Management Mode, SMM). SMM — это особый привилегированный режим, который позволяет приостановить выполнение текущего кода (в т.ч. операционную систему) и выполнить программу из защищенной области памяти SMRAM в собственном контексте.
Режим SMM неофициально считается кольцом защиты с номером -2. Ядро ОС работает на 0 кольце, а более ограниченные в правах кольца защиты имеют номер от 1 до 3. Официально нулевое кольцо считается наиболее привилегированным. Все же, гипервизор с аппаратной виртуализацией условно называют кольцом -1, а Intel ME и AMD ST — кольцом -3.
Дополнительно отметим модуль Compatibility Support Module (CSM), который обеспечивает совместимость с Legacy и позволяет загружать ОС без поддержки UEFI. Позднее мы рассмотрим этот модуль подробнее.
После инициализации всего оборудования наступает время выбора загрузочного устройства.
Фаза BDS (Boot Device Select)
В фазе Boot Device Select реализуется политика загрузки приложений UEFI. Несмотря на то, что это отдельная фаза, все сервисы, включая диспетчера, созданные на фазе DXE, остаются доступны.
Цель фазы BDS сводится к выполнению следующих задач:
- инициализация консольных устройств;
- поиск устройств, с которых можно загрузиться;
- попытка загрузиться с найденных устройств в порядке приоритета.

PCIe BIOS карты расширения LSI
Поиском загружаемых областей на устройствах занимается Boot Manager. На некоторых картах расширения, например, на сетевых картах и RAID-контроллерах, может находиться собственный «BIOS», называемый Option ROM, или OpROM. Содержимое OpROM устройств запускаются сразу после обнаружения, а после выполнения управление возвращается в Boot Manager.
Все разделы, на которых находятся загружаемые области, сохраняются в памяти менеджера загрузки и упорядочиваются в соответствии с порядком загрузки. Если ни одного приложения не нашлось, Boot Manager может вызвать диспетчера DXE, на случай если за время поисков диспетчер загрузил дополнительные драйвера и менеджеру загрузки могут «открыться» новые устройства.
Как отмечалось ранее, использование разметки Master Boot Record накладывает ограничения на размер разделов и их количество на накопителе, также вызывает определенные неудобства в содержании нескольких операционных систем. Решение всех этих проблем является частью спецификации UEFI — GUID Partition Table.
GPT (GUID Partition Table)
GUID Partition Table — это стандартизированный формат размещения таблиц разделов, пришедший на замену устаревшей MBR.
Во-первых, GPT использует адресацию логических блоков (Logical Block Addressing, LBA) вместо адресации «Цилиндр — Головка — Сектор» («Cylinder, Head, Sector», CHS). Смена способа адресации позволяет GPT работать с накопителями объемом до 9.4 ЗБ (9.4 * 10 21 байт) против 2.2 ТБ у MBR.
Во-вторых, таблица разделов претерпела изменения, и теперь в пределах одного накопителя можно создать до 2 64 разделов, хотя операционные системы поддерживают менее 128 в случае Microsoft Windows и 256 в случае Linux.

В-третьих, каждый раздел имеет свой идентификатор типа, который описывает назначение раздела. Так, например, идентификатор C12A7328-F81F-11D2-BA4B-00A0C93EC93B однозначно указывает на системный раздел EFI (EFI System Partition, ESP), с которого Boot Manager может попробовать загрузить приложение.
При разработке GPT не обошли стороной и совместимость с MBR. Дисковые утилиты могли не распознать GPT диск и затереть его. Чтобы избежать этого, при разметке GPT первые 512 байт заполняются защитной MBR (Protective MBR) — разметкой из одного раздела на весь накопитель с системным идентификатором 0xEE. Такой подход позволяет UEFI понимать, что перед ним не настоящий MBR, а старому программному обеспечению без поддержки GPT — видеть раздел с данными неизвестного типа.
В GPT отказались от загрузочной области в пользу ESP-разделов, которые распознаются как загрузочные. Boot Manager собирает информацию обо всех ESP на диске, что позволяет без конфликтов иметь несколько загрузчиков на накопителе, по одному на каждый ESP.
Загрузка операционной системы
После опроса всех устройств и поиска загрузочных областей Boot Manager начинает загружать в порядке приоритета загрузки. В общем случае управление передается в UEFI-приложение, которое начинает выполнять свою логику. Однако для систем с совместимостью с Legacy режимом в списке загрузочных областей может найтись накопитель с разметкой MBR и придется обращаться к CSM, модулю поддержки совместимости.
Модуль CSM позволяет запускать операционные системы, которые не поддерживают UEFI. Для загрузки таких ОС модуль CSM эмулирует окружение, в которое попадает «классическая» ОС:
- загружает Legacy-драйвер;
- загружает Legacy BIOS;
- переводит видеовывод в совместимый с Legacy режим;
- создает в памяти необходимые для Legacy структуры данных, отсутствующие в UEFI;
- загружает драйвер CompatibilitySmm для работы SMM в Legacy.
Фаза RT (Run Time)
Начало загрузки ОС или Legacy-загрузчика приводит к началу фазы Run Time. В данной фазе все сервисы DXE (кроме UEFI Runtime Services) перестают быть доступны.
Содержимое фазы RT может быть разным. Здесь может быть привычный по Legacy загрузчик ОС — например, GRUB2 или Windows Boot Manager, который переводит процессор в 64-битный режим и запускает ОС. Но могут быть и самостоятельные приложения или сразу ядро операционной системы.
Ядро Linux начиная с версии 3.3 при наличии флага CONFIG_EFI_STUB превращается в обычное UEFI-приложение и может быть запущено из UEFI без использования сторонних загрузчиков.
Как и в случае с Legacy, загрузчику или самому ядру необходимо перевести процессор в 64-битный режим, загрузить все драйвера, настроить планировщик и запустить init. Init, в свою очередь, запускает процессы в пространстве пользователя, после этого появляется окно логина в ОС.
Заключение
Загрузка в UEFI — это более сложный, но стандартизированный и почти во всем универсальный процесс. Схожесть с Legacy наблюдается лишь в общих чертах, а дьявол, как известно, кроется в деталях.
Как Вы думаете, как скоро получится полностью уйти от Legacy?
Пишите свое мнение в комментариях.
UEFI with CSM что это в биосе?
Вот еще на форуме читаю, чел пишет что он вынужден был поставить режим UEFI with CSM, ибо в чистом UEFI не работала загрузка с USB-DVD.
Кстати, когда перевел UEFI with CSM на русский, ну просто для интереса, то вот какой результат:

Другими словами так и написано — UEFI с CSM
Так, постараюсь еще инфы накопать.
Еще нашел такую инфу, гляньте:

Короч я немного понял. Смотрите, опция UEFI with CSM позволяет включить функции современного биоса и старого.. но вот какие именно функции? Я думаю что имеется ввиду как раз загрузочные функции. Ну я уже писал выше — чел не мог загрузиться с USB-DVD, поставил режим UEFI with CSM — и все нормалек. Я точно не знаю — но что-то типа мол современный биос может не поддерживать загрузку некоторых устройств, а вот старый — поддерживать может. И вот режим UEFI with CSM это как раз поддержка функций старого биоса и нового. Вот так я думаю ребята.
Вот очередной чел написал про UEFI with CSM, смотрите:

А вот вам картинка по поводу отличия UEFI биоса от обычного:

Ну это просто вам на заметку.
Еще я вот заметил, что если есть какие-то траблы с установкой винды — то стоит попробовать включить режим UEFI with CSM, может помочь.
Ну а вот этот пункт в биосе, видите ли он идет в разделе Boot mode select (но в другом биосе может быть иначе):

Короче ребята.. почитал еще.. почитал.. и понял — UEFI with CSM не совсем понятно что это. Уверен исключительно в одном, что этот режим совмещает функции внутри себя из современного биоса и старого. Какие функции? Как я писал.. вроде загрузочные. Если выставить просто UEFI — то какое-то устройство может не определиться на этапе загрузки.. или например если винда была поставлена в режиме UEFI with CSM, а вы потом выставите режим UEFI — то винда может не загрузиться.. Вы уж извините, но честно сложно понять В общем если все работает четко — трогать этот пункт не советую
На этом все друзья, извините если что не так — удачи вам и будьте счастливы, договорились?!
Похожие статьи
-
Содержание Uefi — что это такое?Загрузочная флешка Uefi. Установка Uefi Что такое UEFI Отличия BIOS от UEFI Новая технология безопасности Преимущества…
-
Содержание Загрузочная флешка не отображается в Boot Menu — BIOS Загрузка Legacy и EFI, Secure Boot Дополнительные причины того, что флешка не…
-
Содержание Загрузка средства HP PC Hardware Diagnostics (UEFI) на устройство USB Настольный пк hp elite HP HP Elite Slice Обновление BIOS: по шагам…