Чтобы понять, как работают загрузчики системы, подобные GRUB, сначала исследуем, как загружается персональный компьютер, когда вы его включаете. Вследствие неадекватности традиционных механизмов загрузки ПК есть несколько вариантов, однако основных схем две: MBR и UEFI.
5.8.1. Загрузка с применением таблицы MBR
В дополнение к информации о разделе, которая описана в разделе 4.1, таблица
Это не слишком безопасно, поскольку данный код может перезаписать кто угодно. Однако большинство загрузчиков, включая версии GRUB, поступают именно так. Более того, эта схема не будет работать для диска с разделами GPT при использовании системы BIOS для загрузки, поскольку информация таблицы GPT размещена в области после таблицы MBR. Таблица GPT не затрагивает традиционную таблицу MBR в целях обратной совместимости.
Обходной путь для таблицы GPT состоит в создании небольшого
5.8.2. Загрузка с применением интерфейса UEFI
Производители компьютеров и компании, занимающиеся разработкой ПО, осознали, что традиционная система BIOS является весьма ограниченной, поэтому они решили разработать замену под названием
Загрузка систем с интерфейсом UEFI происходит совершенно иначе, и понять ее гораздо проще. Вместо исполняемого кода загрузки, который расположен вне файловой системы, здесь всегда присутствует специальная файловая система под названием
примечание
Раздел 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).