У меня был довольно плохой опыт GRUB2
. Я мог бы сказать (и сказал) некоторые неприятные вещи о его дизайне и процессе разработки. Мне особенно не нравятся его средства обновления: по любой причине он должен полуавтоматически обновлять несколько сценариев - один косвенно через другой в цепочке - для каждого обновления ядра - или много других незначительных (и, казалось бы, не связанных) изменений конфигурации.
Это прямо противоположно предыдущему опыту, с которым я столкнулся LILO
- к которому я серьезно думаю вернуться - поскольку у меня никогда не было проблем с ним, и его конфигурация была довольно простой. Во-первых, насколько я помню, мне приходилось обновлять (или, точнее, только когда-либо обновлялось) один, просто управляемый текстовый файл конфигурации на каждое обновление ядра.
Так как же LILO работает на современном оборудовании с сегодняшними ядрами? Как работает GRUB? Как работают другие загрузчики? Должен ли я выполнить какие-либо предварительные условия, или это просто написать файл конфигурации и запустить lilo
команду, как я ее с любовью помню в старые времена? Обновляет ли пакет ядра (Debian / Ubuntu) обновление LILO, как это происходит с GRUB2?
Ответы:
ELILO
Управление загрузчиками EFI для Linux: использование 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.Мой Конфиг
Однажды я написал набор инструкций и разместил здесь , но это выглядит так:
Так что я просто поместил эти две строки в моем
/etc/fstab
указании на папку, в которой я собираюсь разместить новую установку Linux,/boot
и я почти закончил беспокоиться обо всем этом. Я также должен сделать:Помимо установки
refind-efi
пакета с помощьюpacman
первого, это все, что требуется для установки столько отдельных установок / конфигураций, сколько я хочу. Обратите внимание, что большая часть этой строки состоит из специфичных для btrfs параметров монтирования, указанных в качестве параметров ядра. Более типичный/boot/refind_linux.conf
, вероятно, будет выглядеть так:И это все, что нужно.
rodsbooks.com
Если вы все еще хотите ELILO, то вы можете найти инструкции по установке по ссылке выше. Если вы хотите REFInd, вы найдете ссылки на него в первом абзаце. В основном, если вы хотите выполнить какую-либо конфигурацию загрузки UEFI, сначала прочтите rodsbooks.com .
источник
Я использую LILO вместо GRUB2. Честно говоря, это был не мой выбор - установка GRUB2 завершилась неудачно в установщике Debian Live CD, но затем была возможность установить LILO, что оказалось успешным. У меня 2 года ноутбук работает под управлением Debian Stable. ЛИЛО работает для меня безупречно.
источник
LILO по-прежнему можно использовать даже с BIOS UEFI. Обычно UEFI может загружать ядро Linux напрямую. Это зависит от самого UEFI.
Однако, если вам нужен экран выбора загрузки, например, если вы загружаетесь в несколько ОС на одном компьютере, тогда может пригодиться небольшой загрузчик.
Я бы хотел вместо этого использовать EXTLINUX . Это вариант SYSLINUX, но он находится в
ext
разделах -типа.Прелесть EXTLINUX в том, что, хотя он более расширяемый и имеет гораздо больше возможностей, чем LILO, он может быть таким же простым и активно поддерживаться.
источник
Я не помню ни одного эквивалента
update-grub
. Однако есть старая система, которая все еще поддерживается в Debian. (Он используется для загрузки на моем сервере ARM).Самое последнее ядро является символической ссылкой
/boot/vmlinuz
и initrd для/boot/initrd.img
. Он обновляется пакетом ядра. Загрузчик указывает на те & разыменовывает символическую ссылку при каждой загрузке.Так что вы вполне можете не получить вариант восстановления. В любом случае, это не самый проверенный вариант, поэтому еще лучше сохранить рабочий загрузочный диск :-).
Обновление: если вашей целью является что-то кроме буквального запуска LILO на современном компьютере, возможно, есть лучшие альтернативы, как описано в других ответах здесь :).
Вышесказанное имеет смысл только для оригинальной версии LILO для BIOS. Современное оборудование обеспечивает совместимость с BIOS поверх EFI, если вам не нужна безопасная загрузка или загрузка Windows 8 из того же меню. Теоретически вы можете заставить ELILO работать, но он не поддерживает безопасную загрузку или загрузку Windows 8. В общем, ELILO больше не имеет смысла, так что я думаю, что за этим не так много сообщества.
источник
/boot
грязного решения любой проблемы.