ELILO
Мне действительно трудно решить, какую часть этого скопировать + вставить, потому что все это действительно хорошо, поэтому я просто попрошу вас прочитать ее.
Род Смит
Автор и поддерживает как gdisk
и rEFInd
.
Но прежде чем сделать это, я бы хотел немного прокомментировать это. Приведенная выше ссылка на ELILO ведет на одну из многих страниц загрузки UEFI, которую вы найдете на rodsbooks.com, написанную Родом Смитом. Он опытный технический писатель, и если вы когда-нибудь гуглили тему загрузки UEFI и не читали что-то из его, это, вероятно, потому что вы пропустили несколько лучших результатов.
Linux UEFI загружается
По сути, ядро Linux может быть напрямую запущено прошивкой.
В приведенной выше ссылке он упоминает загрузчик заглушек EFI ядра Linux - это то, что вы должны использовать, по моему мнению, так как это позволяет ядру linux вызываться непосредственно самой прошивкой. Независимо от того, что вы делаете, что- то выполняется встроенным программным обеспечением - и это звучит так grub
. Если прошивка может напрямую загружать ваше ядро OS, что хорошего в загрузчике? Микропрограмма UEFI монтирует раздел GPT в формате FAT, помеченный esp таблицей разделов, и выполняет путь, который он там сохранил, в качестве переменной загрузки UEFI во встроенном модуле флэш-памяти. Поэтому вы можете поместить ядро linux в этот раздел FAT и сохранить его путь в этой загрузочной переменной. Вдруг ядро становится своим Загрузчик.
Загрузчики
В системах UEFI загрузчики являются избыточными - ELILO включен.
Проблема загрузчиков, которые были разработаны для решения этой проблемы, заключалась в том, что системы BIOS считывали только первый сектор раздела, помеченного загрузкой, и выполняли его. Немного сложно сделать что-то осмысленное с 512-байтовым ядром, поэтому обычным делом было написать крошечную утилиту, которая смонтировала бы файловую систему, в которой вы держали реальное ядро, и загружала его по цепочке.
На самом деле 512 байт часто было недостаточно даже для загрузчиков. grub
например, на самом деле цепная загрузка сама перед тем, как когда-либо загружать ядро, потому что она встраивает свою вторую стадию в пустое пространство между загрузочным сектором и первым сектором вашей файловой системы. Это вроде грязного взлома - но это сработало.
Bootmanagers
Тем не менее, для простоты настройки может быть полезен некоторый посредник.
REFInd Род Смит запускает как приложение EFI - это относительно новая концепция. Это программа, которая выполняется с диска и возвращается в прошивку. Что делает rEFInd - это позволяет вам управлять меню загрузки и затем возвращать ваш выбор загрузки в микропрограмму для выполнения. Он поставляется с драйверами файловой системы UEFI - так, например, вы можете использовать загрузчик заглушки EFI ядра в не-FAT- разделе (например, текущем /boot
). Он очень прост в управлении - если такая вещь вообще необходима - и добавляет простоту ядра исполняемой системы к удобству настраиваемого загрузчика.
Атомная косвенность
Ядру не нужны символические ссылки - оно может mount --bind
.
Если на вашем пути есть какой-то путь, /
где вы должны запретить символические ссылки, это так /boot
. Сиротливая символическая ссылка /boot
- это не та проблема, с которой вам когда-либо придется сталкиваться. Тем не менее, достаточно распространенной практикой является установка сложных косвенных сообщений в /boot
нескольких дистрибутивах - даже если это ужасная идея - для обработки обновлений ядра на месте и / или нескольких конфигураций ядра.
Это проблема для систем EFI, не настроенных для загрузки драйверов файловой системы (например, поставляемых с пакетом rEFInd), поскольку FAT в целом является довольно глупой файловой системой и не понимает их.
Лично я не использую драйверы файловой системы UEFI, поставляемые с rEFInd, хотя большинство дистрибутивов содержат пакет rEFInd, который можно установить через менеджер пакетов и забыть только об использовании их собственной ужасной символьной /boot
конфигурации и упакованных драйверов rEFInd файловой системы UEFI.
Мой Конфиг
Однажды я написал набор инструкций и разместил здесь , но это выглядит так:
% grep esp /etc/fstab &&
> ls /esp/EFI
LABEL=ESP /esp vfat defaults 0 1
/esp/EFI/arch_root /boot none bind,defaults 0 0
arch_root/ arch_sqsh/ arch_xbmc/ BOOT/ ipxe/
Так что я просто поместил эти две строки в моем /etc/fstab
указании на папку, в которой я собираюсь разместить новую установку Linux, /boot
и я почти закончил беспокоиться обо всем этом. Я также должен сделать:
cat /boot/refind_linux.conf
"Arch" "root=LABEL=data rootflags=subvol=arch_root,rw,ssd,compress-force=lzo,space_cache,relatime"
Помимо установки refind-efi
пакета с помощью pacman
первого, это все, что требуется для установки столько отдельных установок / конфигураций, сколько я хочу. Обратите внимание, что большая часть этой строки состоит из специфичных для btrfs параметров монтирования, указанных в качестве параметров ядра. Более типичный /boot/refind_linux.conf
, вероятно, будет выглядеть так:
"Menu Entry" "root=/dev/sda2"
И это все, что нужно.
rodsbooks.com
Если вы все еще хотите ELILO, то вы можете найти инструкции по установке по ссылке выше. Если вы хотите REFInd, вы найдете ссылки на него в первом абзаце. В основном, если вы хотите выполнить какую-либо конфигурацию загрузки UEFI, сначала прочтите rodsbooks.com .