Читаем Внутреннее устройство Linux полностью

Чтобы понять, как работают загрузчики системы, подобные GRUB, сначала исследуем, как загружается персональный компьютер, когда вы его включаете. Вследствие неадекватности традиционных механизмов загрузки ПК есть несколько вариантов, однако основных схем две: MBR и UEFI.

5.8.1. Загрузка с применением таблицы MBR

В дополнение к информации о разделе, которая описана в разделе 4.1, таблица MBR (Master Boot Record, главная загрузочная запись) содержит небольшую область (441 байт), которую система BIOS выполняет по завершении проверки POST (Power-On Self-Test, самотестирование при включении питания). К сожалению, эта область слишком мала, чтобы разместить загрузчик системы, поэтому необходимо дополнительное пространство. В результате возникает то, что иногда называют многоэтапным загрузчиком системы. В этом случае начальный фрагмент кода в таблице MBR не делает ничего, кроме загрузки оставшейся части кода загрузчика системы. Эти фрагменты загрузчика обычно помещаются в область между таблицей MBR и первым разделом диска.

Это не слишком безопасно, поскольку данный код может перезаписать кто угодно. Однако большинство загрузчиков, включая версии GRUB, поступают именно так. Более того, эта схема не будет работать для диска с разделами GPT при использовании системы BIOS для загрузки, поскольку информация таблицы GPT размещена в области после таблицы MBR. Таблица GPT не затрагивает традиционную таблицу MBR в целях обратной совместимости.

Обходной путь для таблицы GPT состоит в создании небольшого загрузочного раздела BIOS со специальным идентификатором UUID, чтобы предоставить место для размещения полного кода загрузчика системы. Однако таблица GPT обычно используется с интерфейсом UEFI, а не с традиционной системой BIOS, это приводит нас к схеме загрузки с применением интерфейса UEFI.

5.8.2. Загрузка с применением интерфейса UEFI

Производители компьютеров и компании, занимающиеся разработкой ПО, осо­знали, что традиционная система BIOS является весьма ограниченной, поэтому они решили разработать замену под названием расширенный интерфейс прошивки (EFI, Extensible Firmware Interface). Этому интерфейсу потребовалось некоторое время, чтобы прижиться в ПК, а теперь он достаточно распространен. Текущим стандартом является унифицированный интерфейс UEFI (Unified EFI), содержащий такие функции, как встроенная оболочка, а также возможность чтения таблиц разделов и навигация по файловым системам. Схема GPT является частью стандарта UEFI.

Загрузка систем с интерфейсом UEFI происходит совершенно иначе, и понять ее гораздо проще. Вместо исполняемого кода загрузки, который расположен вне файловой системы, здесь всегда присутствует специальная файловая система под названием «системный раздел EFI» (ESP, EFI System Partition), содержащий каталог efi. Каждый загрузчик системы обладает идентификатором и соответствующим подкаталогом, например efi/microsoft, efi/apple или efi/grub. Файл загрузчика системы снабжен расширением .efi и располагается в одном из таких подкаталогов вместе с дополнительными файлами поддержки.

примечание

Раздел ESP отличается от загрузочного раздела BIOS, описанного в подразделе 5.8.1, и обладает другим идентификатором UUID.

Однако есть здесь некоторая тонкость: нельзя просто взять и поместить код старого загрузчика системы в раздел ESP, поскольку этот код был написан для интерфейса BIOS. Вместо этого вы должны предоставить загрузчик системы, написанный для интерфейса UEFI. Например, при использовании загрузчика GRUB вы должны установить UEFI-версию загрузчика GRUB, а не BIOS-версию. Помимо этого, следует «известить» прошивку о новых загрузчиках системы.

Как отмечалось в разделе 5.6, есть сложности с «безопасной загрузкой».

5.8.3. Как работает загрузчик GRUB

Подведем итог нашему обзору загрузчика GRUB, рассмотрев то, как он выполняет свою работу.

1. Система BIOS или прошивка ПК инициализирует аппаратные средства и выполняет поиск кода загрузки в устройствах хранения в указанной загрузочной последовательности.

2. Обнаружив код загрузки, система BIOS или прошивка загружают и исполняют его. Именно здесь в дело вступает загрузчик GRUB.

3. Загружается ядро загрузчика GRUB.

4. Происходит инициализация ядра. К этому моменту загрузчик GRUB получает доступ к дискам и файловым системам.

5. Загрузчик GRUB идентифицирует свой загрузочный раздел и загружает в него конфигурацию.

6. Загрузчик GRUB дает пользователю возможность изменить конфигурацию.

7. По истечении времени ожидания или после ответных действий пользователя загрузчик GRUB выполняет конфигурирование (последовательность команд, о которых говорилось в подразделе 5.5.2).

Перейти на страницу:

Похожие книги

Основы программирования в Linux
Основы программирования в Linux

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов

Нейл Мэтью , Ричард Стоунс , Татьяна Коротяева

ОС и Сети / Программирование / Книги по IT
1001 совет по обустройству компьютера
1001 совет по обустройству компьютера

В книге собраны и обобщены советы по решению различных проблем, которые рано или поздно возникают при эксплуатации как экономичных нетбуков, так и современных настольных моделей. Все приведенные рецепты опробованы на практике и разбиты по темам: аппаратные средства персональных компьютеров, компьютерные сети и подключение к Интернету, установка, настройка и ремонт ОС Windows, работа в Интернете, защита от вирусов. Рассмотрены не только готовые решения внезапно возникающих проблем, но и ответы на многие вопросы, которые возникают еще до покупки компьютера. Приведен необходимый минимум технических сведений, позволяющий принять осознанное решение.Компакт-диск прилагается только к печатному изданию книги.

Юрий Всеволодович Ревич

Программирование, программы, базы данных / Интернет / Компьютерное «железо» / ОС и Сети / Программное обеспечение / Книги по IT
Access 2002: Самоучитель
Access 2002: Самоучитель

В книге рассматривается широкий круг вопросов, связанных с использованием программной среды Access 2002, которая является составной частью пакета Office 2002 и предназначена для создания банка данных в самых различных предметных областях.Подробно описывается методика проектирования объектов базы данных (таблицы, формы, отчеты, страницы доступа к данным, запросы, модули).Детально обсуждаются вопросы создания интегрированной базы данных в единой среде Access 2002: формирование БД с нуля, конвертирование в программную среду баз данных, созданных в ином программном окружении – Clarion, FoxPro.Особое внимание уделяется формированию разнообразных запросов к интегрированной базе данных Access 2002 с использованием языков программирования SQL, VBA и макросов.Приводятся общие сведения о возможностях языка обмена данными между различными компьютерами и приложениями (XML). Описываются возможности использования гиперссылок, связывающих базу данных с другими программными продуктами. Объясняется, как можно работать с базой данных Access 2002 без установки ее на компьютер, используя технологию ODBC (Open Data Base Connectivity). В приложениях приводятся количественные параметры Access 2002 и связанная с этой СУБД терминология.Предлагаемая книга будет полезна специалистам, занимающимся практической разработкой банков данных и приложений на их основе, а также студентам вузов, изучающим информатику.

Павел Юрьевич Дубнов

Программирование, программы, базы данных / ОС и Сети / Книги по IT