Дерево страниц

При написании статьи использовались:

  1. Виртуальная машина KVM, настроенная на использование загрузочного ПО для загрузки UEFI.
  2. Виртуальная машина VirtualBox с включенной опцией "Включить EFI (только специальные OC)". Установка выполнялась на чистый виртуальный носитель, не имеющий размеченных дисковых разделов.

Данная статья применима к:

  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.8)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
  • Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
  • Astra Linux Special Edition РУСБ.10015-16 исп. 1
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.5)
  • Astra Linux Common Edition 2.12
Настройку загрузки SecureBoot см. в статье Загрузка Astra Linux в SecureBoot режиме

Установка Astra Linux на машину с поддержкой UEFI

При установке Astra Linux на машину, поддерживающую загрузку UEFI, установщик автоматически определяет наличие UEFI и автоматически создает и настраивает нужный загрузочный раздел. При этом:

  • Дисковый раздел для UEFI-загрузки автоматически монтируется в каталог /boot/efi;
  • Для загрузки используется UEFI-вариант штатного загрузчика grub2;
  • Образ загрузчика размещается в файле /boot/efi/EFI/astralinuxse/grubx64.efi;

При необходимости загрузочный раздел UEFI можно создать при установке ОС вручную.

Установка пакетов

Установить пакет efibootmgr, если он не был установлен ранее:

sudo apt install efibootmgr

Проверка параметров загрузки

Для проверки параметров загрузки можно использовать команду 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, и указать параметры загрузки.

  • Возможный сценарий создания записи для платформы x86-64:
    #!/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 -d "$dev_boot" -c -g -L "astralinuxefi"   -l "\\EFI\\astralinuxefi\\vmlinuz" \
     -u "root=UUID=$UUID rw quiet rootfstype=ext4 add_efi_memmap initrd=\\EFI\\astralinuxefi\\initrd.img"
    sudo efibootmgr -d "$dev_boot" -c -g -L "astraEFI1"       -l "\\EFI\\astralinuxefi\\vmlinuz" \
     -u "root=UUID=$UUID rw quiet rootfstype=ext4 add_efi_mmap initrd=\\EFI\\astralinuxefi\\initrd.img net.ifnames=0 libata.force=noncq xhci_hcd.quirks=128 parsec.mac=0 parsec.max_ilev=0"
    # Вариант загрузочной записи для загрузки без мандатного управления доступом с использованием мандатного контроля целостности:
    sudo efibootmgr -d "$dev_boot" -c -g -L "astraEFI1mic"    -l "\\EFI\\astralinuxefi\\vmlinuz" \
     -u "root=UUID=$UUID rw quiet rootfstype=ext4 add_efi_mmap initrd=\\EFI\\astralinuxefi\\initrd.img net.ifnames=0 libata.force=noncq xhci_hcd.quirks=128 parsec.mac=0 parsec.max_ilev=63"
    # Вариант загрузочной записи для загрузки с использованием мандатного управления доступом и с использованием мандатного контроля целостности:
    sudo efibootmgr -d "$dev_boot" -c -g -L "astraEFI1micMAC" -l "\\EFI\\astralinuxefi\\vmlinuz" \
     -u "root=UUID=$UUID rw quiet rootfstype=ext4 add_efi_mmap initrd=\\EFI\\astralinuxefi\\initrd.img net.ifnames=0 libata.force=noncq xhci_hcd.quirks=128 parsec.max_ilev=63"
    Сценарий предполагает, что ОС установлена на дисковый раздел /dev/sda2. Сценарий создает каталог /boot/efi/EFI/astralinuxefi, копирует в этот каталог загружаемые образы, и с помощью команды efibootmgr создает загрузочную запись с нужными параметрами.
  • На платформе aarch64 (Astra Linux Special Edition 4.7) загружаемые образы находятся в каталоге /boot и запакованы. Скопировать их можно командами:
    sudo gunzip -k -c /boot/vmlinuz | sudo tee /boot/efi/EFI/astralinuxefi/vmlinuz > /dev/null
    sudo gunzip -k -c /boot/initrd.img | sudo tee /boot/efi/EFI/astralinuxefi/initrd.img > /dev/null
    В остальном действия для платформы aarch64 не отличаются от действий для платформы x86-64.
  • Если в качестве загрузочного диска используется диск, отличный от /dev/sda (например, /dev/vda в системе виртуализации QEMU), следует явно указать диск с помощью опции -d:

    sudo efibootmgr

    sudo efibootmgr -d /dev/vda ...

После выполнения указанных действий вывод команды 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
После успешной перезагрузки  можно удалить ставшую ненужной запись:
sudo efibootmgr -B -b 4

Проверка загрузки UEFI

Для того, чтобы после перезагрузки ОС убедиться, что ОС действительно загружена с UEFI, помимо использования команды efibootmgr, можно проверить существование каталога /sys/firmware/efi, создающегося автоматически при загрузке UEFI. Выполнить такую проверку можно, например командой просмотра содержимого каталога:

ls -l /sys/firmware/efi

Управление параметрами загрузки UEFI

Для проверки и настройки параметров загрузки UEFI можно использовать инструмент командной строки efibootmgr (требуются права суперпользователя). Справка по применению инструмента доступна в справочной системе man:

man efibootmgr
Включение загрузки UEFI в виртуальных машинах

Virtual Machine Manager

При создании виртуальной машины после этапа создания виртуального диска установить отметку в чек-боксе "Настроить конфигурацию перед установкой", после чего нажать кнопку "Завершить".

В открывшемся окне настроек в пункте "Firmware" выбрать вариант встроенного ПО для UEFI-загрузки. Название варианта может отличаться в различных версиях виртуализации, в общем случае не следует выбирать варианты ".ms" и "secureboot".  При написании этой статьи использовался вариант встроенного ПО "UEFI x84_64 /usr/share/OVMF/OVMF_CODE_4m.fd".

Нажать кнопку "Применить" и кнопку "Начать установку".

Oracle VirtualBox

При использовании Oracle VM VirtualBox Менеджер: "Настроить" - "Система" - "Материнская плата" - установить отметку в чек-боксе "Включить EFI (только специальные ОС)".