- Настройка загрузки Astra Linux Embedded
- Настройка в графическом меню
- Настройка в терминале
- Введение
- Подготовка компьютера
- Установка SecureBoot
- Отключение SecureBoot
- Установка Astra Linux на машину с поддержкой UEFI
- Проверка параметров загрузки
- Настройка UEFI-загрузки без использования загрузчика grub2
- Проверка загрузки UEFI
- Управление параметрами загрузки UEFI
- Virtual Machine Manager
- Oracle VirtualBox
Настройка загрузки Astra Linux Embedded
При изменении настройки отображения загрузочного меню GRUB2 с помощью графического меню ОС «fly-admin-grub2», могут появится следующие проблемы:
Сведения о текущем состоянии отображения меню GRUB2, получаемые с помощью консольной команды «astra-nobootmenu-control» могут быть неактуальными
При расхождении сведений о текущих настройках отображения меню GRUB2 в графическом меню ОС «fly-admin-grub2» и сведениях, получаемых с помощью консольной команды «astra-nobootmenu-control», попытки изменить настройки с помощью консольной команды «astra-nobootmenu-control» могут быть безрезультатными.
Настройка в графическом меню
Настройки GRUB2 находятся на панели управления «Пуск > Панель Управления > Система > Загрузчик GRUB2»
Данное окно можно открыть выполнив команду с наивысшими правами
Настройка в терминале
Обратите внимание, что команда содержит слово «nobootmenu» — отсутствие загрузочного меню, поэтому когда эта возможность включена, то загрузочное меню отключено.
Для получения желаемого результата выполните команду с наивысшими правами
Отключить отображение загрузочного меню:
astra-nobootmenu-control enable
Включить отображение загрузочного меню:
astra-nobootmenu-control disable
Узнать текущий статус отображения загрузочного меню:
astra-nobootmenu-control is-enabled
Значения результатов статуса:
Подробная справка о команде:
man astra-nobootmenu-control
Введение
Secure Boot («безопасная загрузка») — протокол, являющийся частью спецификации UEFI. Заключается в проверке подписи загружаемых UEFI-образов, используя асимметричную криптографию относительно ключей, хранящихся в ключевом хранилище системы.
- Platform Key (PK) — открытый ключ владельца платформы. Подписи соответствующим закрытым ключом необходимы для смены PK или изменения KEK, db и dbx (описаны далее). Хранилище PK должно быть защищено от вмешательства и удаления;
- Key Exchange Key (KEK) — открытые ключи операционных систем. Подписи соответствующими закрытыми ключами необходимы для изменения баз данных подписей. Хранилище KEK должно быть защищено от вмешательства.
Подготовка компьютера
Установка Astra Linux и последующие действия должны производится только в режиме UEFI (т.е с отключенными в BIOS-е компьютера режимами CSM и Legacy).
Подробнее про установку Astra Linux в режиме UEFI см.:
Для создания загрузочного носителя требуется USB-накопитель с емкостью не менее 1ГБ.
Установка SecureBoot
- Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.7 (потребуется подключение базового репозитория, см. Репозитории Astra Linux Special Edition x.7: структура, особенности подключения и использования );
- Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.6;
- Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.5 с установленными оперативными обновлениями;
- Astra Linux Common Edition 2.11.* — 2.12;
необходимо наличие установленного пакета astra-safepolicy версии 1.0.32 и выше. В системах Astra Linux Special Edition с установленным актуальным обновлением пакет astra-safepolicy устанавливается автоматически, при необходимости установить его можно командой:
Дополнительно можно сразу установить необходимые пакеты (при наличии подключенных репозиториев пакетов эти пакеты будут автоматически установлены при первом запуске инструмента astra-secureboot):
- Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.5 без установленных оперативных обновлений;
- Astra Linux Common Edition 1.11
все пакеты необходимо установить вручную (команду см. выше).
Проверить имя подключенного накопителя, например, командой:
После выполнения указанной команды:
- в каталоге /root/secureboot/key будут размещены все необходимые для работы ключи;
- на указанном в команде USB-накопителе будет размещена загрузочная информация с необходимыми файлами.
В BIOS (или функциональной клавишей F12) выбрать вариант загрузки с UEFI: USB;
Если все действия выполнены правильно, то загрузка будет выполнена с USB-накопителя и должен загрузиться KeyTool.
В меню «KeyTool» выбрать пункт «Edit Keys» и нажать Enter.
В меню «Select Key to Manipulate» выбрать пункт «The Allowed Signatures Database (db)» и нажать Enter ;
В меню «Manipulating Contents of The Allowed Signatures Database (db)» выбрать пункт «Replace Keys»;
Выбрать USB-накопитель, затем последовательно выбрать каталоги efi/ -> boot/ -> keys/ и выбрать файл db.auth;
Повторить действия сначала для KEK, потом для PK, выбрав, соответственно, файлы KEK.auth и PK.auth;
Вернуться в главное меню двойным нажатием на Esc, выбирать Exit;
После перезагрузки войти в BIOS и включить режим SecureBoot.
Отключение SecureBoot
Рекомендованный сценарий отключения SecureBoot:
- Удалить файл /etc/initramfs/post-update.d/update-efi-image;
- Сохранить копию файла /boot/efi/EFI/astralinux/grubx64.efi;
- Переустановить загрузчик grub.
if [ -f /etc/initramfs/post-update.d/update-efi-image ]; then rm /etc/initramfs/post-update.d/update-efi-image; fi
mv /boot/efi/EFI/astralinux/grubx64.efi /boot/efi/EFI/astralinux/grubx64.efi-old
grub-install —bootloader-id=astralinux
Установка Astra Linux на машину с поддержкой UEFI
При установке Astra Linux на машину, поддерживающую загрузку UEFI, установщик автоматически определяет наличие UEFI и автоматически создает и настраивает нужный загрузочный раздел. При этом:
- Дисковый раздел для UEFI-загрузки автоматически монтируется в каталог /boot/efi;
- Для загрузки используется UEFI-вариант штатного загрузчика grub2;
- Образ загрузчика размещается в файле /boot/efi/EFI/astralinuxse/grubx64.efi;
При необходимости загрузочный раздел UEFI можно создать при установке ОС вручную.
Проверка параметров загрузки
Для проверки параметров загрузки можно использовать команду efibootmgr. Пример вывода команды при настроенной по умолчанию UEFI-загрузке:
sudo efibootmgr
BootCurrent: 0004
Timeout: 0 seconds
BootOrder: 0004,0000,0001,0002,0003
Boot0000* UiApp
Boot0001* UEFI VBOX CD-ROM VB2-01700376
Boot0002* UEFI VBOX HARDDISK VBca27e834-16bf61c9
Boot0003* EFI Internal Shell
Boot0004* astralinuxse
Настройка UEFI-загрузки без использования загрузчика grub2
Для создания загрузочной записи, не использующей grub2, нужно скопировать загружаемые образы (файлы /vmlinuz и /initrd.img) на дисковый раздел UEFI, и указать параметры загрузки. Возможный сценарий создания записи:
#!/bin/bash sudo mkdir /boot/efi/EFI/astralinuxefi sudo cp /vmlinuz /boot/efi/EFI/astralinuxefi sudo cp /initrd.img /boot/efi/EFI/astralinuxefi export UUID=$(sudo blkid -s UUID -o value /dev/sda2) sudo efibootmgr -c -g -L "astralinuxefi" -l '\EFI\astralinuxefi\vmlinuz' -u "root=UUID=$UUID rw quiet rootfstype=ext4 add_efi_memmap initrd=\\EFI\\astralinuxefi\\initrd.img"
Сценарий предполагает, что ОС установлена на дисковый раздел /dev/sda2. Сценарий создает каталог /boot/efi/EFI/astralinuxefi, копирует в этот каталог загружаемые образы, и с помощью команды efibootmgr создает загрузочнуй запись с нужными параметрами.
Если в качестве загрузочного диска используется диск, отличный от /dev/sda (например, /dev/vda в системе виртуализации QEMU), следует явно указать диск с помощью опции -d:
После выполнения указанных действий вывод команды efibootmgr покажет наличие нового варианта загрузки (запись Boot0005):
sudo efibootmgr
BootCurrent: 0004
Timeout: 0 seconds
BootOrder: 0005,0004,0000,0001,0002,0003
Boot0000* UiApp
Boot0001* UEFI VBOX CD-ROM VB2-01700376
Boot0002* UEFI VBOX HARDDISK VBca27e834-16bf61c9
Boot0003* EFI Internal Shell
Boot0004* astralinuxse
Boot0005* astralinuxefi
И после перезагрузки система будет загружена с использованием новой загрузочной записи (параметр BootCurrent в первой строке имеет значение 0005):
sudo efibootmgr
BootCurrent: 0005
Timeout: 0 seconds
BootOrder: 0005,0004,0000,0001,0002,0003
Boot0000* UiApp
Boot0001* UEFI VBOX CD-ROM VB2-01700376
Boot0002* UEFI VBOX HARDDISK VBca27e834-16bf61c9
Boot0003* EFI Internal Shell
Boot0004* astralinuxse
Boot0005* astralinuxefi
Проверка загрузки UEFI
Для того, чтобы после перезагрузки ОС убедиться, что ОС действительно загружена с UEFI, помимо использования команды efibootmgr, можно проверить существование каталога /sys/firmware/efi, создающегося автоматически при загрузке UEFI. Выполнить такую проверку можно, например командой просмотра содержимого каталога:
Управление параметрами загрузки UEFI
Для проверки и настройки параметров загрузки UEFI можно использовать инструмент командной строки efibootmgr (требуются права суперпользователя). Справка по применению инструмента доступна в справочной системе man:
Virtual Machine Manager
При создании виртальной машины после этапа создания виртуального диска установить отметку в чек-боксе «Настроить конфигурацию перед установкой», после чего нажать кнопку «Завершить».
В открывшемся окне настроек в пункте «Firmware» выбрать вариант встроенного ПО для UEFI-загрузки. Название варианта может отличаться в различных версиях виртуализации, в общем случае не следует выбирать варианты «.ms» и «secureboot». При написании этой статьи использовался вариант встроенного ПО «UEFI x84_64 /usr/share/OVMF/OVMF_CODE_4m.fd».
Нажать кнопку «Применить» и кнопку «Начать установку».
Oracle VirtualBox
При использовании Oracle VM VirtualBox Менеджер: «Настроить» — «Система» — «Материнская плата» — установить отметку в чек-боксе «Включить EFI (только специальные ОС)».