Загрузчик systemd: различия между версиями
Дым (обсуждение | вклад) |
Дым (обсуждение | вклад) Нет описания правки |
||
Строка 9: | Строка 9: | ||
{{Совет|Заранее создайте каталоги для размещения загрузчиков, образов и настроек меню:}} | {{Совет|Заранее создайте каталоги для размещения загрузчиков, образов и настроек меню:}} | ||
<source lang=bash># mkdir -p /boot/efi/{kernels,loader/entries}</source> | <source lang=bash># mkdir -p /boot/efi/{kernels,loader/entries}</source> | ||
==Установка== | ==Установка== | ||
Состоит в: | Состоит в: | ||
Строка 15: | Строка 14: | ||
* размещении пар «загрузчик + образ ядра» в произвольном (под)каталоге этого раздела; | * размещении пар «загрузчик + образ ядра» в произвольном (под)каталоге этого раздела; | ||
* создании/правке конфигурационных файлов по намертво прибитым маршрутам (см. '''Настройку'''). | * создании/правке конфигурационных файлов по намертво прибитым маршрутам (см. '''Настройку'''). | ||
==Настройка== | ==Настройка== | ||
Каждый пункт меню, кроме автоопределяемого загрузчика Windows, настраивается отдельным файлом. В моём случае их два — для прежнего и свежего ядра (маршрут к каталогу именно таков, имена же файлов произвольные; обязательно лишь расширение <code>.conf</code>): | Каждый пункт меню, кроме автоопределяемого загрузчика Windows, настраивается отдельным файлом. В моём случае их два — для прежнего и свежего ядра (маршрут к каталогу именно таков, имена же файлов произвольные; обязательно лишь расширение <code>.conf</code>): | ||
* <code>/boot/efi/loader/entries/alt-prev.conf</code> | * <code>/boot/efi/loader/entries/alt-prev.conf</code> | ||
<source lang=bash> | <source lang=bash> | ||
Строка 41: | Строка 38: | ||
default alt-next | default alt-next | ||
timeout 5 | timeout 5 | ||
console-mode max | |||
</source> | </source> | ||
Здесь указаны: | Здесь указаны: | ||
Строка 61: | Строка 58: | ||
* перезагрузиться; | * перезагрузиться; | ||
* при несрабатывании нового пункта загрузить предыдущее ядро и разобраться, где опечатались. | * при несрабатывании нового пункта загрузить предыдущее ядро и разобраться, где опечатались. | ||
===Минусы=== | ===Минусы=== | ||
Ручное внесение изменений (в отличие от [[GRUB]]) как в каждый новый пункт загрузчика с удалением устаревших, так и в его общее меню (если имена файлов с пунктами меняются), что чревато невозможностью загрузки криво отредактированного пункта. | Ручное внесение изменений (в отличие от [[GRUB]]) как в каждый новый пункт загрузчика с удалением устаревших, так и в его общее меню (если имена файлов с пунктами меняются), что чревато невозможностью загрузки криво отредактированного пункта. | ||
{{Внимание|Не следует удалять гарантированно загружаемое предыдущее установленное ядро и менять его конфигурацию в меню загрузчика как минимум до успешного запуска нового.}} | {{Внимание|Не следует удалять гарантированно загружаемое предыдущее установленное ядро и менять его конфигурацию в меню загрузчика как минимум до успешного запуска нового.}} | ||
==Устранение проблем== | ==Устранение проблем== | ||
Пока только одной — Windows заменяет очередность загрузчиков даже на запароленном UEFI, выставляя себя первой по порядку. Лечится из самой Windows следующей командой от имени админа: | Пока только одной — Windows заменяет очередность загрузчиков даже на запароленном UEFI, выставляя себя первой по порядку. Лечится из самой Windows следующей командой от имени админа: | ||
Строка 72: | Строка 67: | ||
Исходя из этого, специально возиться с настройкой отдельного пункта меню для загрузчика Windows не вижу смысла: без описанных здесь манипуляций Windows и так будет грузиться по умолчанию. | Исходя из этого, специально возиться с настройкой отдельного пункта меню для загрузчика Windows не вижу смысла: без описанных здесь манипуляций Windows и так будет грузиться по умолчанию. | ||
==Ссылки== | ==Ссылки== | ||
Более подробно можно почитать [https://wiki.archlinux.org/index.php/Systemd-boot_(Русский) здесь] (наткнулся уже после того, как вышеизложенное было таки вышеизложено :). | Более подробно можно почитать [https://wiki.archlinux.org/index.php/Systemd-boot_(Русский) здесь] (наткнулся уже после того, как вышеизложенное было таки вышеизложено :). | ||
[[Категория:Загрузчики]] | [[Категория:Загрузчики]] | ||
[[Категория:Systemd]] | [[Категория:Systemd]] | ||
==P.S.== | ==P.S.== | ||
Цветные текстовые шаблоны были здесь реализованы эксперимента ради, а не иного для. | Цветные текстовые шаблоны были здесь реализованы эксперимента ради, а не иного для. |
Версия от 12:13, 28 августа 2020
Загрузчик systemd (только для UEFI)
Подготовка
Удостоверьтесь, что раздел ESP существует и смонтирован по маршруту /boot/efi/
:
# mount | awk '/\/boot\/efi/{print $1}'
/dev/sdb1
sdb1 — у меня; у вас может быть другой диск и раздел.
# mkdir -p /boot/efi/{kernels,loader/entries}
Установка
Состоит в:
- отдаче команды
# bootctl install
, которая разместит загрузчик systemd по нужному маршруту в разделе ESP (порой приходится добавить опцию с полным маршрутом, но меня это миновало); - размещении пар «загрузчик + образ ядра» в произвольном (под)каталоге этого раздела;
- создании/правке конфигурационных файлов по намертво прибитым маршрутам (см. Настройку).
Настройка
Каждый пункт меню, кроме автоопределяемого загрузчика Windows, настраивается отдельным файлом. В моём случае их два — для прежнего и свежего ядра (маршрут к каталогу именно таков, имена же файлов произвольные; обязательно лишь расширение .conf
):
/boot/efi/loader/entries/alt-prev.conf
title ALT Linux 5.1.16
linux kernels/vmlinuz-5.1.16-un-def-alt2
initrd kernels/initrd-5.1.16-un-def-alt2.img
/boot/efi/loader/entries/alt-next.conf
title ALT Linux 5.1.17
linux kernels/vmlinuz-5.1.17-un-def-alt1
initrd kernels/initrd-5.1.17-un-def-alt1.img
#options root=/dev/disk/by-label/root rw initrd=\EFI\kernels\intel-ucode.img
В каждом из них 3 обязательных строки:
- название пункта — как оно должно выглядеть на экране загрузки,
- маршрут до загрузчика и
- маршрут до образа системы.
Опции загрузки меняются через файл (маршрут и имя ровно таковы и более никаковы) /boot/efi/loader/loader.conf
:
default alt-next
timeout 5
console-mode max
Здесь указаны:
- пункт загрузки по умолчанию (по сути — имя файла с пунктом меню без расширения
.conf
), - секунды предзагрузочной задержки и
- возможность внесения изменений в выбранный пункт до загрузки (не знаю, у меня не срослось пока — необязательная опция, единичка по умолчанию).
Если же есть потребность в загрузке по умолчанию именно Windows, можно создать отдельный файл с соответствующим пунктом — скажем, /boot/efi/loader/entries/windows.conf
такого содержания:
title Windows Boot Manager
efi \EFI\Microsoft\Boot\Bootmgfw.efi
А в /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) как в каждый новый пункт загрузчика с удалением устаревших, так и в его общее меню (если имена файлов с пунктами меняются), что чревато невозможностью загрузки криво отредактированного пункта.
Устранение проблем
Пока только одной — Windows заменяет очередность загрузчиков даже на запароленном UEFI, выставляя себя первой по порядку. Лечится из самой Windows следующей командой от имени админа:
bcdedit /set {bootmgr} path \EFI\systemd\systemd-bootx64.efi
То есть, Windows всё же грузится первой системой, однако загрузчика выбирает не собственного, а systemd-шного.
Исходя из этого, специально возиться с настройкой отдельного пункта меню для загрузчика Windows не вижу смысла: без описанных здесь манипуляций Windows и так будет грузиться по умолчанию.
Ссылки
Более подробно можно почитать здесь (наткнулся уже после того, как вышеизложенное было таки вышеизложено :).
P.S.
Цветные текстовые шаблоны были здесь реализованы эксперимента ради, а не иного для.