Загрузчик systemd: различия между версиями
Дым (обсуждение | вклад) (→Минусы) |
Дым (обсуждение | вклад) Нет описания правки |
||
(не показано 6 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
[[Файл:Systemd-boot-new.jpg|thumb|600px|Для отмены обратного отсчёта выбран пункт не по умолчанию.]] | [[Файл:Systemd-boot-new.jpg|thumb|600px|Для отмены обратного отсчёта выбран пункт не по умолчанию.]] | ||
{{span|font-size: 180%|Загрузчик systemd (только для UEFI)}} | {{span|font-size: 180%|Загрузчик systemd (только для UEFI)}} | ||
Строка 90: | Строка 88: | ||
===Минусы=== | ===Минусы=== | ||
Ручное внесение изменений (в отличие от [[GRUB]]) как в каждый новый пункт загрузчика с удалением устаревших, так и в его общее меню (если имена файлов с пунктами меняются), что чревато невозможностью загрузки криво отредактированного пункта. | Ручное внесение изменений (в отличие от [[GRUB]]) как в каждый новый пункт загрузчика с удалением устаревших, так и в его общее меню (если имена файлов с пунктами меняются), что чревато невозможностью загрузки криво отредактированного пункта. | ||
{{Внимание|Не следует | {{Внимание|Не следует сносить с эфи-раздела предыдущее заведомо рабочее ядро и менять его конфигурацию в меню загрузчика как минимум до успешного запуска и какой ни есть обкатки нового: сам делаю это вручную в обеспечение гарантированной загрузки на всякий случай — вместо того, чтоб доработать скрипт <code>/usr/sbin/remove-old-kernels</code> или добавить в него отдельный скрипт зачистки.}} | ||
{{Памятка|Ребята из Тим давно-о обещают вот-вот добавить автогенерацию менюшки для этого варианта загрузки (ведь проксмокс с этим как-то справляется).}} | {{Памятка|Ребята из Тим давно-о обещают вот-вот добавить автогенерацию менюшки для этого варианта загрузки (ведь проксмокс с этим как-то справляется).}} | ||
А пока не сделано, накостылил собственный скриптец (с учётом валявшейся рядом бубунты — давно избавился, но сугубо для примера), который вызываю после каждого обновления ядра или перестройки образа <code>initrd</code> в обоих дистрах: | А пока не сделано, накостылил собственный скриптец (с учётом валявшейся рядом бубунты — давно избавился, но сугубо для примера), который вызываю после каждого обновления ядра или перестройки образа <code>initrd</code> в обоих дистрах: | ||
Строка 147: | Строка 145: | ||
==Отстрел неприятностей (трабл-шутинг)== | ==Отстрел неприятностей (трабл-шутинг)== | ||
Пока только одной — на некоторых материнках Windows заменяет очередность загрузчиков | Пока только одной — на некоторых материнках Windows заменяет очередность загрузчиков, выставляя себя первой по порядку. | ||
Лечится из самой Windows следующей командой от имени админа (можно оформить батником): | |||
bcdedit /set {bootmgr} path \EFI\systemd\systemd-bootx64.efi | bcdedit /set {bootmgr} path \EFI\systemd\systemd-bootx64.efi | ||
То есть, Windows всё же грузится первой системой, однако загрузчика выбирает не собственного, а systemd-шного. | То есть, Windows всё же грузится первой системой, однако загрузчика выбирает не собственного, а systemd-шного. | ||
Строка 158: | Строка 158: | ||
*[https://t.me/gbIMoBou @gbIMoBou] | *[https://t.me/gbIMoBou @gbIMoBou] | ||
*[[Участник:Дым#Заметки|Другие статьи]] | *[[Участник:Дым#Заметки|Другие статьи]] | ||
[[Категория:Загрузчики]] | |||
[[Категория:Admin]] | |||
[[Категория:Systemd]] |
Версия от 17:21, 17 мая 2025
Загрузчик systemd (только для UEFI)
Подготовка
Удостоверьтесь, что раздел ESP существует и смонтирован:
# mount | awk '/\/boot\/efi/{print $1}'
/dev/что-нибудь
Установка
Состоит в:
- отдаче команды # bootctl install, которая разместит загрузчик systemd по нужному маршруту в разделе ESP (порой приходится добавить опцию с полным маршрутом, но меня это миновало);
- размещении пар «загрузчик + образ ядра» в произвольном (под)каталоге этого раздела;
- создании/правке конфигурационных файлов по намертво прибитым маршрутам (см. Настройку).
Настройка
Каждый пункт меню (кроме автоопределяемого загрузчика Windows) настраивается отдельным файлом. В моём случае их два: для прежнего и свежего ядра (маршрут к каталогу именно таков, имена же файлов произвольные — обязательно лишь расширение .conf
):
развернуть/boot/efi/loader/entries/alt-5.10.217-std.conf |
---|
развернуть/boot/efi/loader/entries/alt-6.1.85-un.conf |
---|
В каждом из них три обязательных строки:
- название пункта — как оно должно выглядеть на экране загрузки;
- маршрут до загрузчика;
- маршрут до образа системы;
…и пара опциональных:
- версия ядра — при наличии одноимённых пунктов выводится в скобках после имени;
- передача опций ядру — к примеру:
- задать число разделов для монтирования iso-образов,
- обойти заморочки AMD-графики,
- указать корневой раздел,
- подгрузить образ с микрокодом процессора (мне пользоваться не доводилось)
- и т.п.
Параметры загрузки меняются через файл (маршрут и имя ровно таковы и более никаковы):
развернуть/boot/efi/loader/loader.conf |
---|
Здесь указаны:
- секунды предзагрузочной задержки,
- пункт загрузки по умолчанию (по сути — имя/маска файла с пунктом меню без расширения
.conf
), - попытка выставить разрешение экрана на максимально доступное,
- возможность внесения изменений в выбранный пункт до загрузки (опционально, разрешено по умолчанию).
Если же есть потребность в загрузке по умолчанию именно Windows, можно создать отдельный файл с соответствующим пунктом — скажем:
развернуть/boot/efi/loader/entries/windows.conf |
---|
А в /boot/efi/loader/loader.conf
опции default
присвоить значение windows
.
Обновление ядра
После установки нового ядра и сноса старых приходится:
- удалить из
/boot/efi/kernels/
(или где решите их держать) дезинсталлированные ядра; - скопировать туда загрузчик и образ нового ядра —
/boot/vmlinuz-<релиз>
и/boot/initrd-<релиз>.img
; - добавить конфиг нового ядра в каталог
/boot/efi/loader/entries/
, скопировав и изменив (или просто изменив — мой случай) конфиг старого, снесённого; - нацелить опцию default в файле
/boot/efi/loader/loader.conf
на конфиг нового ядра (если имя файла менялось); - перезагрузиться;
- при несрабатывании нового пункта загрузить предыдущее ядро и разобраться, где опечатались.
Минусы
Ручное внесение изменений (в отличие от GRUB) как в каждый новый пункт загрузчика с удалением устаревших, так и в его общее меню (если имена файлов с пунктами меняются), что чревато невозможностью загрузки криво отредактированного пункта.
А пока не сделано, накостылил собственный скриптец (с учётом валявшейся рядом бубунты — давно избавился, но сугубо для примера), который вызываю после каждого обновления ядра или перестройки образа initrd
в обоих дистрах:
развернуть/boot/sysbootgen |
---|
Отстрел неприятностей (трабл-шутинг)
Пока только одной — на некоторых материнках Windows заменяет очередность загрузчиков, выставляя себя первой по порядку.
Лечится из самой Windows следующей командой от имени админа (можно оформить батником):
bcdedit /set {bootmgr} path \EFI\systemd\systemd-bootx64.efi
То есть, Windows всё же грузится первой системой, однако загрузчика выбирает не собственного, а systemd-шного.
Исходя из чего специально возиться с настройкой отдельного пункта меню для загрузчика Windows не вижу смысла: Windows и так будет грузиться по умолчанию — без вышеописанных манипуляций.
Ссылки
Более подробно можно почитать здесь (наткнулся уже после того, как вышеизложенное было таки вышеизложено :).