При наличии 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)
Удачи!
Для этого потребуются средства пакета 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)
Удачи!
Комментариев нет:
Отправить комментарий