Efi boot from file: How does UEFI decide whoch efi file to boot into?

efibootmgr — управление диспетчером загрузки EFI

Предоставлено: efibootmgr_0.5.4-7ubuntu1_amd64

 

ИМЯ

       efibootmgr — управлять диспетчером загрузки EFI.
 

ОБЗОР

         efibootmgr  [-a] [-A] [-b  XXXX  ] [-B  XXXX  ] [-c] [-d  ДИСК  ] [-e  1|3|-1  ] [- E  ЧИСЛО  ] [-g]
       [-H  XXXX  ] [-i  ИМЯ  ] [-l  ИМЯ  ] [-L  МЕТКА  ] [-n  XXXX  ] [-N] [-o  XXXX  ,  YYYY  ,  ZZZZ  ...]
       [-O] [-p  ЧАСТЬ  ] [-q] [-t  секунд  ] [-T] [-u] [-U  XXXX  ] [-v] [-V] [-w] [ -@  файл  ]
 

ОПИСАНИЕ

         efibootmgr  — это пользовательское приложение, используемое для модификации расширяемой микропрограммы Intel.
       Интерфейс (EFI) Менеджер загрузки. Это приложение может создавать и уничтожать загрузочные записи,
       изменить порядок загрузки, изменить следующий вариант загрузки и многое другое. 
       Подробные сведения о диспетчере загрузки EFI доступны в спецификации EFI версии 1.02 или более поздней.
       Доступна с:
          (ссылка   на   URL-адрес   http://developer.intel.com) 
                Примечание: 
              efibootmgr требует, чтобы ядро ​​поддерживало доступ к энергонезависимым переменным EFI.
              (через  /proc/efi/vars  для ядер 2.4,  /sys/firmware/efi/vars  для ядер 2.6).
                modprobe   efivars  должны помочь.
 

ОПЦИИ

       Ниже приведен список опций, принимаемых efibootmgr:
         |  --активный 
                 Устанавливает bootnum активным
         |  --неактивный 
                 Делает bootnum неактивным
         |  --номер загрузки   ХХХХ 
                 Изменить загрузку  XXXX  (шестнадцатеричный)
         |  --удалить-загрузочный номер 
                 Удалить bootnum (шестнадцатеричный)
         |  --создать 
                 Создайте новую переменную bootnum и добавьте в bootorder
         |  --диск   ДИСК 
                 Диск с загрузчиком (по умолчанию  /dev/sda  )
         |  --edd   1|3|-1 
                 Принудительно создать переменные EDD 1. 0 или 3.0 или угадать.
         |  --устройство   НОМЕР 
                 Номер устройства EDD 1.0 (по умолчанию 0x80)
         |  --gpt 
                 Принудительно обрабатывать диск с недопустимым PMBR как GPT
         |  --acpi_hid   ХХХХ 
                 установите ACPI HID (используется с  -i  )
         |  --iface   ИМЯ 
                 создать запись сетевой загрузки для именованного интерфейса
         |  --загрузчик   ИМЯ 
                 Укажите загрузчик (по умолчанию  \elilo.efi  )
         |  --этикетка   ЭТИКЕТКА 
                 Отображаемая метка диспетчера загрузки (по умолчанию «Linux»)
         |  --bootnext   ХХХХ 
                 Установите для BootNext значение XXXX (шестнадцатеричный)
         |  --delete-bootследующий 
                 Удалить BootNext
         |  --bootorder   XXXX ,  YYYY ,  ZZZZ 
                 Явно установить BootOrder (шестнадцатеричный)
         |  --delete-bootorder 
                 Удалить BootOrder
         |  --часть   ЧАСТЬ 
                 Номер раздела, содержащего загрузчик (по умолчанию 1)
         |  --тихий 
                 Тихий режим - подавляет вывод. 
         --test   имя файла 
                 Не записывайте в NVRAM, записывайте в  имя файла  .
         |  --время ожидания   секунд 
                 Тайм-аут диспетчера загрузки, в  секунд  .
         |  --удалить-тайм-аут 
                 Удалить переменную тайм-аута.
         |  --юникод  |  --UCS-2 
                 передавать дополнительные аргументы командной строки как UCS-2 (по умолчанию ASCII)
         |  --acpi_uid   ХХХХ 
                 установить ACPI UID (используется с  -i  )
         |  --подробный 
                 Подробный режим - печатает дополнительную информацию
         |  --версия 
                 Просто напечатайте строку версии и выйдите.
         -w  |  --запись-подпись 
                 написать уникальную подпись в MBR, если это необходимо
         - @  |  --append-binary-args  " 10 добавить дополнительные переменные аргументы из файла (используйте - для
                 читать со стандартного ввода).  Данные в файле добавляются в качестве аргументов командной строки к
                 загрузчика, без изменения данных, так что вы можете передать любой
                 необходимы двоичные или текстовые данные.
 

ПРИМЕРЫ

          1.
         Отображение     текущих   настроек   (  должен быть корневым  ). 
       [root@localhost ~]# efibootmgr
       BootCurrent: 0004
       BootNext: 0003
       BootOrder: 0004,0000,0001,0002,0003
       Таймаут: 30 секунд
       Boot0000* Дисковод (устройство: 0)
       Boot0001* CD-ROM (устройство: FF)
       Boot0002* Жесткий диск (устройство: 80)/жесткий диск (часть 1, Sig00112233)
       Boot0003* Загрузка PXE: MAC(00D0B7C15D91)
       Boot0004* Linux
                 Это показывает:
                    • BootCurrent — загрузочная запись, используемая для запуска работающей в данный момент системы.
                    • BootOrder — порядок загрузки, отображаемый в диспетчере загрузки.  Ботинок
                       менеджер пытается загрузить первую активную запись в этом списке. Если
                       безуспешно, он пробует следующую запись и так далее.
                    • BootNext — загрузочная запись, запуск которой запланирован при следующей загрузке. Этот
                       заменяет BootOrder только для одной загрузки и удаляется менеджером загрузки
                       после первого использования. Это позволяет вам изменить следующее поведение загрузки без
                       изменение BootOrder.
                    • Тайм-аут — время в секундах между появлением менеджера загрузки на
                       экран до тех пор, пока он автоматически не выберет значение запуска из BootNext
                       или BootOrder.
                    • Пять загрузочных записей (0000 - 0004) вместе с флагом активно/неактивно (*
                       означает активный) и имя, отображаемое на экране.
          2.
         Создание   a   новый   загрузочный   вариант 
                 Установщик ОС вызовет  efibootmgr   -c  .  Это предполагает, что  /boot/efi  — это ваш
                 Системный раздел EFI и смонтирован по адресу  /dev/sda1  . Это создает новую загрузку
                 вариант под названием «Linux» и помещает его вверху списка порядка загрузки. Параметры
                 может быть передан для изменения поведения по умолчанию. Загрузчик ОС по умолчанию
                   elilo.efi  .
          3.
         Замена     Багажник   Заказ 
                 Предполагая конфигурацию в примере № 1,  efibootmgr   -o   3,4  может быть вызван для
                 сначала укажите загрузку PXE, затем загрузку Linux.
          4.
         Замена     Багажник   Заказ   на     Следующий   Багажник   Только 
                 Предполагая конфигурацию в примере № 1,  efibootmgr   -n   4  может быть вызван для
                 укажите, что запись Linux будет сделана при следующей загрузке. 
          5.
         Удаление   a   boot   option 
                 Предполагая конфигурацию в примере № 1,  efibootmgr   -b   4   -B  может быть вызвана для
                 удалите запись 4 и удалите ее из BootOrder.
          6.
         Создание   сеть   загрузка   записи 
                 Системный администратор хочет создать вариант загрузки для сетевой загрузки (PXE).
                 К сожалению, для этого требуется немного больше информации о вашей системе.
                 чем может быть легко найден efibootmgr, так что вам нужно передать дополнительные
                 информация - значения ACPI HID и UID. Обычно их можно найти по
                 с помощью диспетчера загрузки EFI (в среде EFI) для создания сетевой загрузки
                 запись, а затем с помощью efibootmgr распечатать ее подробно. Вот один пример:
                      Boot003* Acpi(PNP0A03,0)/PCI(5|0)/Mac(00D0B7F9F510)
                 ACPI(a0341d0,0)PCI(0,5)MAC(00d0b7f9f510,0)
                 В этом случае HID ACPI — «0A0341d0», а UID — «0».  Для zx2000
                 gigE, HID — «222F», а UID — «500». Для rx2000 gigE HID
                 «0002», а UID — «100».
                     Вы создаете загрузочную запись с помощью:  efibootmgr   -c   -i   eth0   -H   222F   -U   5 00  
                   сетевая загрузка 
 

ОШИБКИ

       Пожалуйста, направляйте любые ошибки, функции, исправления и т. д. Мэтту Домшу [email protected].
 

АВТОР

       Эта справочная страница была создана dann frazier [email protected] для Debian GNU/Linux.
       операционной системы, но могут использоваться другими.
 

СМ. ТАКЖЕ

       Элило (1)
                                                                                    EFIBOOTMGR(8)
 

Управление загрузчиками EFI для Linux: основные принципы

Управление загрузчиками EFI для Linux: основные принципы

Первоначально написано: 23 сентября 2011 г. ; последнее обновление: 06.07.2018

Эта веб-страница предоставляется бесплатно и не раздражает.
внешняя реклама; тем не менее, я потратил время на его подготовку, а веб-хостинг
стоит денег. Если вы найдете эту веб-страницу полезной, рассмотрите возможность создания
небольшое пожертвование, чтобы помочь поддерживать этот сайт в рабочем состоянии. Спасибо!

Пожертвовать $1.00 Пожертвовать $2,50 Пожертвовать $5.00 Пожертвовать $10.00 Пожертвовать другое значение

Эта страница является частью моего руководства по управлению загрузчиками EFI.
документ для Linux. Если поиск в Интернете привел вас на эту страницу, вы
может хотеть начать с самого начала.

Что такое EFI?

На заре эры ПК в 1981, IBM поставила свой персональный компьютер
5150 с прошивкой, известной как базовая система ввода-вывода (BIOS).
BIOS задумывался как интерфейс между многими аппаратными устройствами и
Дисковая операционная система (DOS). Однако с годами BIOS
стал менее важным, потому что он был написан с использованием 16-битного кода, и
операционные системы перешли на 32-битный, а теперь и на 64-битный код. Такие передовые
ОС не могут использовать функции BIOS без потери производительности, поэтому современные
Вместо этого операционные системы полагаются на драйверы для взаимодействия с оборудованием. Таким образом, сегодня
Основная роль BIOS — начать процесс загрузки. Как только система
загрузился, биос по сути не имеет значения.

Тем не менее, загрузка компьютера — важная задача, а BIOS — древний
дизайн создает ограничения. Например, BIOS начинает процесс загрузки
загрузив всего 512 байт данных — содержимое первого сектора
загрузочный диск — и его выполнение. Поэтому какая бы программа ни находилась
в этом крошечном месте (основная загрузочная запись или MBR) контролирует, как
компьютерные сапоги. Часто код MBR загружает дополнительный код из
в другом месте, чтобы представить меню опций. Нет универсального
стандарт для того, как это делается, и для ОС характерно стирать
существующий код MBR и, следовательно, рабочие конфигурации загрузчика при
монтаж.

Расширяемый интерфейс встроенного ПО (EFI) и его более новый вариант,
Унифицированный EFI (UEFI) — это микропрограммы, предназначенные для замены
БИОС. EFI поддерживает множество расширенных функций, но самые важные для
Целью этой веб-страницы является тот факт, что EFI загружается совершенно по-другому.
из БИОС. Реализации EFI более сложны, чем BIOS
реализации, поэтому EFI может читать таблицы разделов и файловые системы, которые
типичный BIOS не может. Этот факт позволяет нескольким загрузчикам сосуществовать
на жестком диске, и к ним можно получить доступ полностью с помощью обычного доступа к файлам
механизмы. Эти факты упрощают обслуживание загрузчика EFI и многое другое.
гибче, чем эквивалентные операции для загрузчиков BIOS — по крайней мере, в
теория. На практике ошибки и странности в некоторых реализациях EFI и в
некоторых ОС может затруднить управление загрузчиками EFI, особенно если
вы не знакомы с их принципами. EFI тоже имеет свой дизайн
ограничения, как описано на этой странице.

Хотя EFI предназначен для замены BIOS, некоторые из самых ранних версий EFI
реализации на платформе x 86-64 были дополнениями к
BIOS — модуль EFI добавляется к традиционному BIOS, оставляя BIOS в
управление базовой инициализацией оборудования и загрузкой компьютера, если BIOS
загрузчик обнаружен. Подавляющее большинство EFI на компьютерах, проданных с
Однако версии 2012 или 2013 полностью заменяют устаревший код BIOS. Такой
реализации обычно могут загружаться быстрее, чем BIOS, и они
часто (но не всегда) включают в себя «услаждение для глаз», такое как яркая мышь с поддержкой мыши
графические интерфейсы. Однако с точки зрения программного обеспечения оба типа
эквивалентны — они используют одни и те же загрузчики, структуры дисков и т.
на.

Архитектура EFI
помещает его между ОС и самыми низкими уровнями прошивки, с
оборудование под всем этим. (Источник: Википедия)

Здесь следует упомянуть еще одну особенность EFI: безопасная загрузка. Эта функция предназначена для повышения безопасности, гарантируя, что могут работать только загрузчики, подписанные с помощью криптографического ключа. Если вы или организация, которой вы доверяете, контролируете ключ, маловероятно, что авторы вредоносного ПО смогут подписать свой код, что теоретически может заблокировать одно из направлений атаки вредоносного ПО. Проблема с безопасной загрузкой заключается в том, что Microsoft требует ее использования на настольных и портативных компьютерах, которые поставляются с Windows 8 и более поздними версиями. На практике это означает, что ключи Microsoft включены в подавляющее большинство новых компьютеров. Это было бы не так уж плохо, за исключением того, что никакая другая организация не имеет влияния, чтобы гарантировать, что его ключа включены в такой широкий спектр оборудования. К счастью, Microsoft предлагает услугу подписи, и несколько дистрибутивов Linux используют ее; но многие в сообществе с открытым исходным кодом возражают против зависимости от Microsoft, особенно в таких простых вопросах, как запуск загрузчика. Я описываю технические детали того, как справиться с безопасной загрузкой, на моей странице Работа с безопасной загрузкой. Если вы хотите использовать безопасную загрузку, но при этом не иметь ключей Microsoft, см. мою страницу Управление безопасной загрузкой.

Дисковые структуры EFI

Спецификация EFI включает описание новой таблицы разделов
тип, GUID
Таблица разделов (GPT). Хотя некоторые компьютеры на базе EFI могут загружаться с
Диски MBR, некоторые отказываются от этой практики, поэтому большинство компьютеров EFI используют диски GPT.
Windows также применяет ассоциацию EFI/GPT, по крайней мере, для своей загрузки.
диск — если Windows загружается на компьютере с EFI, загрузочный диск должен быть
GPT, и если он загружается на компьютере с BIOS, загрузочный диск должен использовать
старый стиль MBR. (Есть хакерские способы обойти эти связи; например,
видеть это
статья для информации о загрузке Windows с GPT-диска в BIOS
режиме.) Поэтому при настройке компьютера для загрузки в режиме EFI
вообще лучше всего создать его как диск GPT. В Linux есть три основных
способов создать GPT диск:

  • Используйте инструмент на основе libparted, такой как parted или GParted, для
    создайте свои разделы и явно скажите этому инструменту использовать GPT. В
    parted, вы можете сделать это, набрав mklabel
    gpt. В GParted вы выбираете Устройство -> Создать таблицу разделов,
    разверните пункт Advanced, выберите gpt в качестве таблицы разделов
    введите и нажмите «Применить», чтобы создать новую таблицу разделов. Любой метод
    стирает существующие разделы.
  • Использовать GPT fdisk
    (gdisk, cgdisk или sgdisk), чтобы создать свой
    перегородки. Эти инструменты могут преобразовать существующий диск MBR в формат GPT,
    или они могут разделить пустой диск.
  • Используйте последнюю версию fdisk или один из связанных с ним инструментов,
    cfdisk или sfdisk. Версия в util-linux
    2.27 работает, а версия util-linux 2.20 — нет.
    Я не уверен, когда именно произошло изменение. Ввод g в главном меню fdisk создает новый
    GPT; но этот акт сотрет существующие разделы.

Независимо от того, использует ли загрузочный диск GPT или MBR, EFI использует специальный раздел,
известный как ЭФИ
Системный раздел (ESP) для хранения данных, специфичных для EFI. ESP должен
официально используют файловую систему FAT32, хотя некоторые (особенно старые) Linux
дистрибутивы размещают на этом разделе файловую систему FAT16. (Этот выбор может
вызвать проблемы для Windows 7, которая принимает только FAT32 ESP. По меньшей мере
одна реализация EFI, гибрид Gigabyte
EFI также, кажется, имеет аллергию на ESP FAT16.) На диске MBR ESP
имеет код типа 0xEF. На GPT-диске ESP имеет значение GUID
К12А7328-Ф81Ф-11Д2-БА4Б-00А0К93EC93B, но большинство инструментов создания разделов скрывают GUID
ценности, потому что людям неудобно их использовать. В GPT fdisk ESP
отображается как имеющий код типа EF00, и большинство инструментов на основе libparted используют
«флаг загрузки» (и избыточный «флаг esp») для идентификации ESP. Обратите внимание, что в
libparted, «флаг загрузки» раздела GPT полностью отличается от
«флаг загрузки» на MBR-диске. Вы должны , а не установить «флаг загрузки» на любой
Раздел ОС под GPT, только на ESP.

Хотя в спецификации EFI ничего не говорится о размере ESP, в большинстве операционных систем он довольно мал: компьютеры Mac поставляются с ESP на 200 МБ, а установщик Windows 7 создает один из 100 МБ. (Это значение было увеличено до чуть более 200 МБ в более новых версиях Windows.) Однако некоторые пользователи обнаружили, что некоторые EFI имеют ошибки, которые вызывают проблемы с FAT32 ESP размером менее 512 МБ (537 МБ). Одной из очень распространенных проблем являются файлы, которые не могут быть прочитаны EFI. Команда Linux mkdosfs по умолчанию использует FAT16 для разделов размером до 520 МБ (546 МБ). Поэтому, добавляя запас прочности для защиты от путаницы в МиБ/МБ и ошибок округления, я рекомендую создать ESP размером не менее 550 МБ. Если вы должны использовать ESP меньшего размера и столкнулись с загадочными проблемами, попробуйте преобразовать его в FAT16; большинство ESP будут работать с этим нормально, и это может устранить ваши проблемы. С другой стороны, это может привести к сбою установщика Windows, если вам потребуется установить эту ОС.

ESP содержит драйверы EFI, приложения EFI, сценарии EFI и загрузку EFI.
погрузчики, между прочим. Этот диапазон данных EFI иллюстрирует тот факт,
что EFI довольно сложный; во многих отношениях он похож на DOS по мощности. Этот
набор веб-страниц посвящен в основном загрузчикам EFI (и менеджерам загрузки), конечно.

Каждый загрузчик EFI хранится в собственном подкаталоге
Каталог EFI на ESP. Эти подкаталоги обычно называются
после ОС, которая их создала. Например, Ubuntu размещает загрузочный EFI
файлы загрузчика в EFI/ubuntu, а Red Hat помещает свои загрузочные файлы EFI
в EFI/RedHat. (Fedora также использовала каталог EFI/redhat.
name через Fedora 17, но он переключился на EFI/fedora с
версия 18.) После установки Linux ESP обычно монтируется в
/boot/efi, поэтому эти каталоги будут
/boot/efi/EFI/ubuntu и /boot/efi/EFI/redhat,
соответственно, на работающей установке Linux. Предложение на freedesktop.org
будет способствовать установке ESP в /boot, а не в
/загрузка/efi. Это предложение еще не было принято ни одним крупным
дистрибутив, хотя пользователи Arch Linux любят монтировать ESP в
/ботинок.

Эти каталоги загрузчика EFI содержат файл загрузчика EFI, чей
имя заканчивается на .efi, а также файлы конфигурации, файлы поддержки,
и, возможно, даже ядра Linux и исходные файлы RAM-диска. Детали различаются
с одного загрузчика на другой.

Если вам нужно установить загрузчик независимо от загрузчика вашей ОС
установлен, вы можете создать для него собственный каталог. я обычно
назовите мой после самого загрузчика, например, EFI/refind для
REFInd. Следует упомянуть еще один каталог загрузчика: EFI/BOOT.
В этом каталоге находится файл загрузчика bootx64.efi, который служит
в качестве резервного загрузчика, если он не указан во флэш-памяти прошивки
хранилище. Имя файла зависит от архитектуры — имя файла
это bootia32.efi на компьютерах с IA-32 (x86) и
bootaa64. efi на компьютерах ARM64. Подавляющее большинство основанных на EFI
x Компьютеры 86-64 используют 64-битные EFI и поэтому используют
bootx64.efi — файл загрузчика по умолчанию. Несколько ранних компьютеров Mac и
некоторые планшеты на базе Atom имеют 64-битные процессоры, но 32-битные EFI; и некоторые ранние
В компьютерах Mac на базе Intel использовались 32-разрядные процессоры и EFI, поэтому их загрузчики по умолчанию
называются bootia32.efi. Некоторые EFI пытаются запустить
EFI/Microsoft/BOOT/bootmgfw.efi в качестве резервного варианта
загрузчик. Это имя загрузчика Windows EFI, поэтому предположительно
проверка этого имени помогает в случае стирания NVRAM компьютера.

Процесс загрузки EFI

Процесс загрузки EFI не ссылается на код в MBR, и обычно
также не использует код в загрузочном секторе раздела. Вместо этого
EFI загружает загрузчик, указанный встроенным менеджером загрузки EFI. Этот менеджер загрузки поддерживает список параметров загрузки в NVRAM, а также порядок их использования. Если вы загружаетесь без переопределения порядка загрузки, компьютер будет пробовать каждый элемент в указанном порядке до тех пор, пока ни один не перестанет возвращаться. Если запись возвращается (поскольку она указывает на несуществующий файл, программа завершает работу и т. д.), пробуется следующий элемент в списке. Загрузчик, запускаемый прошивкой, может напрямую загружать ОС (поскольку загрузчик Windows EFI
загрузчик), или он может представить меню или подсказку с дополнительными параметрами (как
большинство загрузчиков Linux EFI делают). Во время установки ОС загрузчик ОС записывается на диск, и его загрузчик должен быть добавлен в список опций встроенного менеджера загрузки — обычно в качестве первой записи.

Упомянутый ранее резервный загрузчик (EFI/BOOT/bootx64.efi или его варианты в зависимости от архитектуры) представляет собой особый случай. Это имя файла изначально предназначалось для использования только на съемных носителях, чтобы с них можно было загрузиться для установки ОС. (Если бы не это фиксированное имя файла, заводской компьютер не смог бы ничего загрузить!) Это имя файла было быстро принято в качестве резервного имени файла для установки на жесткий диск. Таким образом, если дубликат обычного загрузчика установлен с именем резервного файла, компьютер останется загружаемым, если список менеджера загрузки на основе NVRAM поврежден. На практике некоторые EFI имеют сильно поврежденные диспетчеры загрузки, которые склонны забывать или игнорировать свои загрузчики. Эти компьютеры надежно загружаются только с резервного загрузчика. Во многих случаях резервный загрузчик обрабатывается через обычную загрузочную запись, которая ссылается на файл bootx64.efi или на диск; однако детали сильно различаются от одного компьютера к другому.

Также обратите внимание, что недисковые загрузочные устройства могут иметь записи диспетчера загрузки EFI. Это характерно для сетевых устройств для загрузки по сети. Записи для таких устройств обычно создаются прошивкой, когда вы активируете опцию сетевой загрузки; но ими можно манипулировать (изменять их порядок) с помощью тех же инструментов, которые вы используете для манипулирования другими записями, как описано на следующей странице. Некоторые EFI предоставляют записи для запуска оболочки EFI, утилиты настройки EFI или других инструментов.

В принципе, EFI могут предоставлять меню, позволяющие пользователям выбирать, какой из
доступные загрузчики для использования во время загрузки. Однако на практике эти
загрузочные меню часто неудобны в использовании. Часто приходится нажимать специальную
клавишу в какой-то момент процесса загрузки для доступа к меню менеджера загрузки;
если вы этого не сделаете, загрузится ОС по умолчанию. Некоторые реализации
вообще не предоставляйте такое меню менеджера загрузки. Обратитесь к своему компьютеру или
документацию материнской платы, чтобы узнать, как получить доступ к меню загрузки.

Большинство, но не все, современные компьютеры на базе EFI включают BIOS
режим совместимости, который позволяет им загружаться с помощью загрузчиков BIOS. Этот
Функция известна как модуль поддержки совместимости (CSM) .
Как правило, вы можете активировать или деактивировать поддержку CSM, используя параметры на
Меню загрузки в утилите настройки прошивки, поэтому ищите такие опции, если
вы хотите переключить режим загрузки вашего компьютера. Обратите внимание, что с помощью CSM
создает потенциал для значительных осложнений, поэтому я не советую использовать
это если можно. Смотрите мой CSM: The Good, the
Плохая и Уродливая страница для получения дополнительной информации по этому вопросу.

Хотя управление загрузчиками путем жонглирования файлами в ESP, возможно,
намного лучше, чем управление загрузчиками путем перезаписи кода в MBR или
других местах на диске, управление загрузчиком EFI имеет ахиллесову
heel: Поскольку прошивка пытается загрузить загрузчик, расположение которого
хранится в NVRAM, система становится уязвимой к сбою, если либо
жесткий диск заменен или NVRAM стерта. Пользователи сообщают, что не могут
загрузиться, если они обновят свою прошивку, и переместить диск с одного компьютера
к другому требует настройки параметров загрузки NVRAM. Кроме того, некоторые
Реализации EFI «услужливо» удаляют настройки NVRAM для загрузчиков, которые они
не может обнаружить, что может потребовать повторного создания настроек NVRAM, если вы
временно извлеките жесткий диск, а затем переустановите его. Чтобы сделать дело
хуже того, некоторые компьютеры «забывают» свои настройки NVRAM без провокации,
что требует установки загрузчика как EFI/BOOT/bootx64.efi.
Это не так уж плохо само по себе, но если установщик ОС или загрузчика
устанавливает загрузчик так, как он официально должен, он не будет работать и
пользователь должен вмешаться вручную. Одним из способов решения таких проблем является установка копии rEFInd на флэш-накопитель USB или CD-R. Когда вы загружаете его, rEFInd сканирует ваши обычные загрузчики и должен позволить вам запустить их. Другой обходной путь — использовать резервный загрузчик fbx64.efi.

Загрузчики и менеджеры загрузки

Два похожих термина часто используются взаимозаменяемо, но на самом деле они относятся к разным вещам:

  • Менеджеры загрузки представляют меню параметров загрузки или обеспечивают какой-либо другой способ управления процессом загрузки. Затем пользователь может выбрать параметр, и диспетчер загрузки передает управление выбранному инструменту.
  • Загрузчики выполняют задачу загрузки ядра ОС в память, часто вместе с вспомогательными файлами, такими как файл начального RAM-диска Linux (initrd), и запуска ядра.

Некоторые программы, в том числе популярный GRUB (как GRUB Legacy, так и GRUB 2), функционируют как менеджеры загрузки, так и загрузчики, поэтому, возможно, эти термины часто используются взаимозаменяемо. Однако в мире EFI некоторые программы (такие как ELILO, SYSLINUX и загрузчик-заглушка EFI) могут загружать только ядра Linux и поэтому являются только загрузчиками; и другие (такие как rEFIt, rEFInd и gummiboot/systemd-boot) строго управляют загрузкой. На самом деле спецификация EFI требует, чтобы EFI предоставляли свои собственные менеджеры загрузки, но они часто очень минимальны или неудобны в использовании. На практике вы можете использовать диспетчер загрузки для запуска одного или нескольких различных загрузчиков. Загрузчики часто (но не всегда) зависят от ОС, поэтому диспетчер загрузки может запускать один загрузчик для одной ОС и другой загрузчик для второй ОС. Комбинированный инструмент, такой как GRUB, скорее всего, будет использовать собственные функции загрузчика для запуска ядра Linux и функции диспетчера загрузки для запуска загрузчика для другой ОС, например Windows или macOS.

Хотя эта серия веб-страниц включает в себя загрузчика в своем названии, я также рассказываю о менеджерах загрузки. Частично это связано с тем, что загрузчик-заглушка EFI имеет тенденцию стирать различие. Как описано на его странице, эта программа превращает ядро ​​​​Linux в собственный загрузчик. Это означает, что менеджер загрузки может запускать ядро ​​Linux так же, как и загрузчик.

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

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