пятница, 31 марта 2017 г.

Загрузка Arch Linux используя UEFI (efibootmgr)

При наличии UEFI загрузку Arch Linux можно организовать минуя такие загрузчики как GRUB и systemd-boot.
Для этого потребуются средства пакета efibootmgr для организации загрузочной записи.



Сама запись выглядит следующим образом:

# efibootmgr -d /dev/sdX -p Y -c -L "Arch Linux" -l /vmlinuz-linux -u "root=/dev/sdBZ rw initrd=/initramfs-linux.img"

Где X и Y нужно заменить на соответсвующий диск и раздел, где находится ваш ESP,  а также указать параметр root=/dev/sdBZ, который соответствует корню системы.
Можно указывать как параметр root=/dev/sdBZ, так и использовать root=PARTUUID, как будет показано в примере ниже.

Смотрим наши разделы

sudo cfdisk



1. Раздел ESP (EFI) - sda1
2. Раздел root - sda2
3. Сам диск - sda

Смотрим наш fstab

cat /etc/fstab



Здесь выбираем наш корневой PARTUUID=42934ea9-a99c-422c-b818-21531ce0a207

Получить нужную информацию можно также с помощью команды в терминале

blkid



Подставляем полученные данные в команду для efibootmgr

sdX=sda
Y=1
root=PARTUUID=42934ea9-a99c-422c-b818-21531ce0a207
-L = "Awesome SSD" - здесь указываем название метки, может быть, конечно же, свое название

Получаем и выполняем (команда одной строкой)

sudo efibootmgr  -d /dev/sda -p 1 -c -L "Awesome SSD" -l /vmlinuz-linux -u "root=PARTUUID=42934ea9-a99c-422c-b818-21531ce0a207 rw initrd=/initramfs-linux.img"

В случае, если используются данные root=/dev/sdBZ, команда будет выглядеть следующим образом

sudo efibootmgr  -d /dev/sda -p 1 -c -L "Awesome SSD" -l /vmlinuz-linux -u "root=/dev/sda2 rw initrd=/initramfs-linux.img"

Выполним в терминале

efibootmgr



Видим вновь созданную загрузочную запись Awesome SSD

Меняем последовательность загрузки командой

sudo efibootmgr -o 2,4,1,3

Получаем


Видим, что наша запись установлена по умолчанию при загрузке.

Для удаления времени ожидания Timeout можно выполнить команду

sudo efibootmgr -T

Для задания времени ожидания параметра Timeout

sudo efibootmgr -t 5 # как пример Timeout=5 сек

Теперь можно перегружаться.

systemctl reboot

P.S.
В целом, как я для себя сделал выводы, использование efibootmgr полезно, когда стоит одна система. Если более, то нужно будет менять загрузочные записи или при помощи опять же efibootmgr или в самом BIOS при старте. При загрузке при помощи systemd-boot, можно отредактировать файл /boot/loader/loader.conf, а именно указать параметр timeout=0.



Тогда система будет стартовать без паузы, а чтобы увидеть меню загрузки systemd-boot достаточно удерживать пробел при старте системы.

При таких параметрах разницы в скорости загрузки между systemd-boot и efibootmgr я не увидел.

Для того, чтобы использовать efibootmgr при установке системы, нужно просто исключить пункты установки загрузчиков. В моем случае я исключил все пункты с bootctl install. Все работает, как и должно быть.

Ссылки по теме

Установка Arch Linux 64-бит UEFI systemd-boot (без GRUB)

EFISTUB (Arch Wiki)


Удачи!


Комментариев нет:

Отправить комментарий