Astra Linux.Справка.UEFI

Материал из ТХАБ.РФ
(перенаправлено с «Astra Linux.Справка.EFI»)
Перейти к: навигация, поиск

Установка и настройка ОС на ПЭВМ с (U)EFI BIOS. Использование (U)EFI-загрузчика


1. Перед установкой и настройкой ОС создать на НЖМД таблицу разделов в формате GPT. Поскольку в составе инсталлятора ОС такие утилиты отсутствуют, рекомендуется создавать таблицу с использованием Live CD Parted Magic версии >= 6.6. На нем присутствуют графическая утилита gparted и консольная утилита gdisk, позволяющие выполнить указанные действия. Первой должна быть создана ESP. Размер ESP должен быть приблизительно равен 100 МБ. Отформатировать ESP необходимо в ФС FAT.

П р и м е ч а н и е. В случае, если на ПЭВМ сначала устанавливается ОС Windows 7 с загрузчиком (U)EFI, предварительно создавать раздел ESP нет необходимости, т. к. инсталлятор Windows 7 создаст такой раздел автоматически;

2. Создать USB-накопитель, загружаемый через (U)EFI BIOS. Для этого удалить на USB-накопителе существующую таблицу разделов, создать новый раздел размером приблизительно 100 МБ, установить ему код ef (ESP), отформатировать созданный раздел в ФС FAT, монтировать и создать на нем следующую структуру директорий:


/EFI
/EFI/Boot

В директорию /EFI/Boot поместить файл bootx64.efi. Файл bootx64.efi предварительно скачать из открытых источников в сети Интернет либо создать при помощи EDK. Оставшееся на USB-накопителе свободное пространство отформатировать в любой необходимой ФС (FAT, FAT32, EXT, NTFS) и использовать для хранения данных.

На этот раздел необходимо скопировать deb-пакеты GRUB2 версии >=1.99-8. Их можно взять либо в открытых репозиториях debian (из Ubuntu не подойдут, поскольку собраны с использованием библиотек, отсутствующих в ОС), либо собрать самостоятельно из открытых исходных кодов. Должны быть следующие пакеты:

grub-common, grub2-common, grub-efi-amd64-bin, grub-efi-amd64;

3. Установка ОС проводится в штатном режиме в соответствии с эксплуатационной документацией, за исключением установки загрузчика. Загрузчик не устанавливать;


4. После завершения установки ОС необходимо перезагрузить ПЭВМ и вновь загрузиться с установочного диска ОС в режиме «Восстановление». В режиме восстановления в окне «Войти в режим восстановления» выбрать раздел, на который была установлена ОС, а затем выбрать «Запуск оболочки в /dev/наименование_раздела». Нажать <Alt+F2> и в консоли выполнить команду:


chroot /target

5. Выполнить команду, чтобы убедиться, что не установлены пакеты GRUB, кроме fly-admin-grubeditor:


dpkg -l | grep grub

Если какие-то пакеты все же установлены, необходимо их удалить командой:

dpkg --purge имя_пакета

6. Монтировать раздел с данными USB-накопителя и установить с него все deb пакеты GRUB2. Возможно для этого придется предварительно установить пакеты

gettext и efibootmgr с установочного диска ОС.

7. Создать в корне ФС директорию boot_EFI, монтировать к ней раздел ESP и создать на ней следующую структуру директорий:


/EFI
/EFI/Boot
/EFI/grub

П р и м е ч а н и е. Если на ПЭВМ предварительно была установлена ОС Windows 7 с загрузчиком (U)EFI, то создавать на разделе ESP всю структуру директорий нет необходимости, т. к. инсталлятор Windows 7 создал ее в процессе установки. Необходимо только создать директорию /EFI/grub;

8. Выполнить команду:


grub-install --boot-directory=/boot_EFI/EFI

В результате выполнения указанной команды в директории /boot_EFI/EFI/grub/ должны появиться модули grub2;

9. Выполнить команду:


grub-mkimage -o /boot_EFI/EFI/grub/grub.efi -p /EFI/grub -O x86_64-efi acpi ata ata_pthru bitmap bitmap_scale boot cat chain cmp configfile cpio date datetime echo efi_gop elf ext2 extcmd fat fixvideo font fshelp gettext gfxmenu gfxterm gptsync gzio halt help hfs hfsplus jpeg keylayouts keystatus linux loadbios loadenv ls lspci mmap msdospart multiboot2 multiboot normal part_gpt part_msdos parttool png probe read reboot regexp search_fs_file search_fs_uuid search_label search serial terminal terminfo true uhci usb_keyboard usb usbms usbserial_common video_fb videoinfo video

В результате выполнения указанной команды в директории /boot_EFI/EFI/grub/ будет создан файл grub.efi, собранный с поддержкой необходимых модулей.

П р и м е ч а н и е. В данной команде приведен примерный список модулей. При необходимости можно собирать grub.efi с другими модулями, но нельзя использовать модуль at_keyboard, т. к. он может привести к зависанию загрузчика GRUB2;

10. Создать конфигурационный файл grub.cfg. Если на ПЭВМ предварительно была установлена ОС Windows 7 с загрузчиком (U)EFI и необходимо добавить

GRUB2 возможность загружать Windows 7, то в файл /etc/grub.d/40_custom необходимо добавить следующие записи:

menuentry "Windows 7 x86_64 UEFI-GPT" {
search --file --no-floppy --set=root /EFI/Microsoft/Boot/BOOTMGFW.EFI
chainloader /EFI/Microsoft/Boot/BOOTMGFW.EFI
}

В случае, если расположение файла BOOTMGFW.EFI на ESP-разделе отличается от /EFI/Microsoft/Boot/, то необходимо указать корректный путь к нему. Выполнить следующую команду:

grub-mkconfig -o /boot_EFI/EFI/grub/grub.cfg

На некоторых BIOS при перезагрузке ОС возможно некорректное поведение ядра. Для устранения этой проблемы необходимо в файл grub.cfg добавить параметр reboot=a,w в menuentry ’Astra GNU/Linux, with Linux <версия>-generic’ и menuentry ’Astra GNU/Linux, with Linux <версия>-generic (режим восстановления)’ в секции linux /boot/vmlinuz-<версия>generic после параметра root=UUID=номер_UUID.

На некоторых BIOS при загрузке ОС возможно «зависание» ядра. Для устранения этой проблемы необходимо в файл grub.cfg добавить параметр noefi в menuentry ’Astra GNU/Linux, with Linux <версия>-generic’ и menuentry ’Astra GNU/Linux, with Linux <версия>-generic (режим восстановления)’ в секции linux /boot/vmlinuz-<версия>generic после параметра root=UUID=номер_UUID;

11. Для соответствия спецификации EFI, а также для обеспечения возможности загрузки ОС средствами АПМДЗ необходимо скопировать файл

/boot_EFI/EFI/grub/grub.efi в директорию /boot_EFI/EFI/Boot и переименовать его в bootx64.efi.

П р и м е ч а н и е. Если на ПЭВМ предварительно была установлена ОС Windows 7 с загрузчиком (U)EFI, то файл bootx64.efi уже существует. Рекомендуется переименовать его, например в bootx64_bak.efi;

12. Все подготовительные действия по настройке GRUB2 завершены. Размонтировать ESP-раздел, выйти из оболочки chroot-окружения командой exit и перезагрузить ПЭВМ. Загрузить ПЭВМ с предварительно подготовленного USB-накопителя;


13. Если USB-накопитель подготовлен правильно, то при загрузке с него произойдет запуск UEFI Shell. На экране монитора будет отображена карта разделов. Как

правило, первым разделом fs0 будет указан ESP-раздел. Для перехода на него выполнить команду:

fs0:

Затем при помощи команды cd перейти в директорию \EFI\grub и запустить на исполнение grub.efi. Если все предыдущие действия выполнены корректно, то появится окно загрузчика GRUB2, в котором выбрать пункт меню ’Astra GNU/Linux, with Linux <версия>-generic’ и выполнить загрузку ОС.

П р и м е ч а н и е. Если на ПЭВМ предварительно была установлена ОС Windows 7 с загрузчиком (U)EFI и в GRUB2 добавлена возможность загружать Windows 7, то в меню GRUB2 появится пункт «Windows 7 x86_64 UEFI-GPT», при выборе которого должна произойти загрузка Windows 7;

14. После загрузки ОС убедиться, что ядро загружено с поддержкой EFI-расширений путем проверки наличия директории /sys/firmware/efi. Теперь осталось передать менеджеру загрузки EFI информацию о загружаемых ОС. Для этого использовать утилиту efibootmgr, входящую в состав ОС. Для просмотра существующего порядка загрузки необходимо выполнить команду:


efibootmgr -v

Для добавления записи, вызывающей загрузчик GRUB2, выполнить:

efibootmgr -L "GRUB Boot Manager" -d /dev/sda -p 1 -l \\EFI\\grub\\grub.efi -c -v

где GRUB Boot Manager — название записи, как она будет выглядеть в BIOS, -d /dev/sda — диск, на котором расположен ESP-раздел, -p 1 — номер ESP-раздела (нумерация начинается с 1), -l \\EFI\\grub\\grub.efi — путь к файлу grub.efi относительно корня ESP-раздела. Путь обязательно указывается через \\. Для добавления записи, вызывающей загрузчик Windows 7, выполнить:

efibootmgr -L "Windows Boot Manager" -d /dev/sda -p 1 -l \\EFI\\Microsoft\\Boot\\BOOTMGFW.EFI -c -v

В случае неправильного добавления записи ее необходимо удалить следующим образом:

– выполнить команду efibootmgr -v и посмотреть номер записи (например, Boot0004*);
– удалить неправильную запись командой:

efibootmgr -b 0004 -B 0004

15. Перезагрузить ПЭВМ, зайти в BIOS и установить в меню загрузки первым пунктом «GRUB Boot Manager».