systemd-boot (Русский)

systemd-boot, ранее известный как gummiboot - это простой UEFI менеджер загрузки, который исполняет настроенные EFI образы. Запись по умолчанию выбирается с помощью настроенного шаблона (glob) или меню на экране. Включен в пакет systemd, который устанавливается на системе Arch по умолчанию.

Состояние перевода: На этой странице представлен перевод статьи systemd-boot. Дата последней синхронизации: 2017-12-14. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Прост в настройке, но способен только на запуск исполняемых EFI файлов, таких как ядро Linux EFISTUB, UEFI Shell, GRUB, Windows Boot Manager.

Установка

Загрузка в режиме EFI

  1. Убедитесь, что вы загружены в режиме UEFI.
  2. Проверьте доступны ли EFI переменные.
  3. Корректно примонтируйте Системный Раздел EFI (ESP). В этой статье esp используется для обозначения точки монтирования.
    Примечание: systemd-boot EFI не может загружать бинарные файлы из других разделов. По этой причине, рекомендуется монтировать ваш ESP в /boot. В случае, если вы хотите разделить /boot с ESP, обратитесь к #Обновлениe для большей информации.
  4. Если ESP не примонтирован к /boot, копируйте ваше ядро и initramfs в ESP.
  5. Введите следующую команду для установки systemd-boot: Она скопирует двоичный файл systemd-boot на Системный Раздел EFI ( и - оба идентичны на x86-64 системах) и добавит systemd-boot как EFI приложение по умолчанию (загрузочная запись по умолчанию), загружаемое с помощью EFI Boot Manager.
  6. Наконец, для правильного функционирования вы должны настроить загрузчик.

Загрузка в режиме BIOS

Важно: Это нерекомендованный процесс

Вы с таким же успехом можете установить systemd-boot, если загружаетесь в режиме BIOS. Тем не менее, от вас всё равно требуется сообщить прошивке запускать EFI файл systemd-boot при загрузке:

  • у вас есть работающий EFI shell где-нибудь.
  • ваш интерфейс прошивки предоставляет вам соответствующий способ настройки EFI файла, который будет загружен во время загрузки.

Если вы имеете такую возможность, процесс установки будет проще: перейдите в ваш EFI shell или интерфейс настройки вашей прошивки и измените EFI файл по умолчанию вашей машины на esp/EFI/systemd/systemd-bootx64.efi ( или если у вас 32 битная системная прошивка).

Примечание: интерфейс прошивки в Dell Latitude сериях предоставляет все необходимое, чтобы установить EFI загрузку, но EFI Shell не сможет осуществить запись в ПЗУ компьютера.

Обновлениe

В отличие от предыдущего отдельного пакета gummiboot, который автоматически обновляется с помощью скрипта, обновления systemd-boot теперь должны производиться пользователем вручную. Однако, эта процедура может быть автоматизирована с использованием pacman hooks.

Вручную

systemd-boot (bootctl(1)) предполагает, что ваш Системный Раздел EFI примонтирован в /boot.

# bootctl update

Если ESP не примонтирован в /boot, опцией можно явно указать точку монтирования, например:

# bootctl --path=esp update

Автоматически

AUR (Русский) пакет предоставляет хук Pacman для автоматизации процесса обновления. Установка этого пакета добавит hook, который будет выполняться при каждом обновлении пакета systemd.

В качестве альтернативы, вы можете разместить следующий pacman hook в каталоге /etc/pacman.d/hooks/:

Настройка

Базовая настройка

Базовая конфигурация хранится в файле . Полный список опций описан в . Некоторые важные опции:

  • default – выбираемая по умолчанию запись; можно использовать подстановку, например
  • timeout – задержка меню в секундах. Если таймаут не задан, то меню будет отображаться, только если удерживать клавишу (другие клавиши тоже могут работать) при загрузке.
  • — разрешение экрана в консоли. Значение (по умолчанию) оставляет то разрешение, которое было выбрано прошивкой. Значение выбирает максимальный доступный режим.
  • - следует ли включить редактор параметров ядра. (по умолчанию) - включить, - отключить; Поскольку пользователь может добавить для обхода пароля администратора и получить полный доступ, настоятельно рекомендуется установить эту опцию в .

Пример:

''esp''/loader/loader.conf
default  arch.conf
timeout  4
console-mode max
editor   no

Добавление загрузочных записей

bootctl ищет элементы для загрузочного меню в – каждый найденный файл должен содержать точно одну загрузочную запись. Возможными опциями являются:

  • – название операционной системы. Обязательная.
  • – версия ядра, отображаемая только если существуют несколько записей с одинаковым названием. Не обязательная.
  • – идентификатор машины из , отображаемый только если существуют несколько записей с одинаковым названием и одинаковой версией. Не обязательная.
  • – EFI программа для запуска, относительно вашего ESP ($esp); например, . Либо это, либо linux (смотрите ниже) является обязательным.
  • – опции командной строки для передачи EFI приложению. Не обязательная, но вам нужно будет передать как минимум и если загружаете Linux.

Для Linux вы можете задать и ; это автоматически преобразуется в и – этот синтаксис поддерживается только для удобства и не имеет различий по функциональности.

Установки со стандартной корневой директорией

Вот пример записи для корневого раздела без LVM или LUKS:

Пожалуйста, обратите внимание, что в вышеприведённом примере PARTUUID/PARTLABEL идентифицируют GPT раздел, а это не то же самое, что /, которые идентифицируют файловую систему. Использование PARTUUID/PARTLABEL бывает полезным, потому что они инвариантны (то есть неизменяемы), если вы переформатируете раздел в другую файловую систему или если по какой-то причине изменятся обозначения /dev/sd*. Также оно может быть полезно, если у вас нет файловой системы на разделе (или вы используете LUKS, который не поддерживает метки ).

Установки с LVM корневой директорией

Следующий пример для корневой директории с использованием логического менеджера разделов:

Замените на актуальные названия VG и LV (например, ). Кроме того, вместо них можно использовать UUID:

....
options  root=UUID=<UUID identifier> rw

Обратите внимание, что используется вместо root=PARTUUID=, который используется для корневых разделов без LVM или LUKS.

Установки с зашифрованной корневой директорией

Ниже приведен пример конфигурационного файла для зашифрованного корневого раздела (DM-Crypt / LUKS) с использованием mkinitcpio (Русский) hook:

''esp''/loader/entries/arch-encrypted.conf
title Arch Linux Encrypted
linux /vmlinuz-linux
initrd /initramfs-linux.img
options cryptdevice=UUID=<UUID>:<mapped-name> root=/dev/mapper/<mapped-name> quiet rw

В этом примере используется UUID; если хотите, можете заменить UUID на PARTUUID. Вы можете также заменить путь на регулярный UUID. - название, которое вы желаете использовать. Смотрите Dm-crypt/System configuration#Boot loader.

Если вы используете LVM, ваша опция cryptdevice будет выглядеть следующим образом:

Вы также можете добавить другие EFI приложения, такие как .

Установка корневого подраздела btrfs

При загрузке с подраздела Btrfs (Русский) в роли корневого, добавьте к строке . В примере ниже, корневой раздел монтируется как btrfs подраздел с именем 'ROOT' (например, ):

''esp''/loader/entries/arch-btrfs-subvol.conf
title          Arch Linux
linux          /vmlinuz-linux
initrd         /initramfs-linux.img
options        root=PARTUUID=14420948-2cea-4de7-b042-40f67c618660 rw rootflags=subvol=ROOT

Если это невозможно сделать, то это приведет к ошибке:

Установки с ZFS корневой директорией

В случае загрузки из ZFS dataset, добавьте к строке . Здесь в корневом dataset установлено значение 'zroot/ROOT/default':

When booting off of a ZFS dataset ensure that it has had the bootfs property set with .

EFI Shells или другие EFI приложения

В случае, если вы установили EFI Shells или другие EFI приложения в ESP, вы можете использовать следующие фрагменты:

Поддержка гибернации

Пожалуйста, прочтите статью Power management/Suspend and hibernate (Русский).

Редактор параметров ядра с защитой паролем

В качестве альтернативы можете установить который поддерживает опцию базовой конфигурации. Используйте sbpctl generate для генерации значения для этой опции.

Установка systemd-boot-password следующей командой:

С включенным редактором будет запрошен ваш пароль, перед тем как вы сможете редактировать параметры ядра.

Клавиши в загрузочном меню

В меню используются следующие клавиши:

  • - выбор записи
  • - загрузить выбранную запись
  • - выбрать загрузочную запись по умолчанию (хранится в энергонезависимой EFI переменной)
  • - уменьшить таймаут (хранится в энергонезависимой EFI переменной)
  • - увеличить таймаут (хранится в энергонезависимой EFI переменной)
  • - редактировать командную строку ядра. Не имеет эффекта, если опция конфигурации установлена в 0.
  • - показать версию gummiboot и UEFI
  • Q - выйти
  • - отобразить текущую конфигурацию
  • - помощь

А эти клавиши, нажатые в меню в процессе загрузки, сразу загрузят определённую запись:

  • - Linux
  • - Windows
  • - OS X
  • - EFI Shell
  • - порядковый номер записи

Решение проблем

Создание записи вручную с помощью efibootmgr

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

# efibootmgr -c -d /dev/sdX -p Y -l /EFI/systemd/systemd-bootx64.efi -L "Linux Boot Manager"

где /dev/sdXY - это ваш EFISYS раздел.

Меню не отображается после обновления Windows

Обратитесь к разделу соответствующей статьи: Unified Extensible Firmware Interface#Windows changes boot order.

Смотрите также

gollark: Also, I can break the CD .. Thing.
gollark: Why.
gollark: Good.
gollark: Most of the code is actually for sandboxing.
gollark: It is?
This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.