В предыдущей статье говорилось про православный systemd-boot. Но, так как я атеист, то предлагаю решение для максимально укуренных мануалами асоциальных маргиналов — загрузка ядра напрямую из UEFI как исполняемого файла.
Особых профитов вы не получите по сравнению с systemd-boot, та хрень, что я предлагаю, нужна исключительно для повышения красноглазости и собственного ЧСВ.
Информация взята из арчевики, хабра и собственной больной фантазии.
Перво-наперво
Нужен раздел под 100 метров, отформатированный в fat32 (да-да, это ваш efi). Но монтировать его надо в /boot а не в /boot/efi. Нужно это для того, чтобы ядро находилось именно на этом разделе (это принципиально важно, без этого условия ничего не получится).
И небольшая утилитка efibootmgr, которая спокойно валяется в репозиториях.
Самый сок. Загрузочная запись efi
Если вам совсем скучно жить и у вас не совсем старый комп, то можете использовать встроенный UEFI shell, который не очень удобный, но в принципе рабочий.
На хабре лежит не очень внятная запись на эту тему, поэтому лучше подсмотреть шаблон с арчевики:
efibootmgr -d /dev/sdX -p Y -c -L "Arch Linux" -l /vmlinuz-linux -u "root=/dev/sda2 rw resume=/dev/sda4 initrd=/initramfs-linux.img"
Вот тут уже всё предельно просто:
- -d /dev/sdX это ваш основной диск (sda,sdb,sdc).
- -p Y собственно номер EFI раздела.
- -L «Arch Linux» лейбл, имя вашей загрузочной записи — можете выбрать любое (да хоть любую крякозябру, вы её увидите от силы 2 раза).
- -l /vmlinuz-linux это ваше ядрышко. Не знаю как в manjaro, но в арче оно называется именно так с небольшими поправками для особых случаев. Если собрано ядро с аура , то называться файлик будет vmlinuz-linux-mainline. Логично предположить что в манжаре будут суффиксы из версии ядра.
- -u … А вот это уже параметры, которые будут передаваться ядру при запуске. Среди них обязательно должен быть указан root — корневой раздел вашей системы (можно указывать не диск, а UUID, LABEL или всё что душе угодно из вывода blkid) и initrd, который лежит рядом с ядром и имеет те же отличительные особенности в названии. Если вы лазили по настройкам граба, то можете вспомнить(или подсмотреть в /etc/defaults/grub) параметры GRUB_CMDLINE и DEFAULT_GRUB_CMDLINE. Ну либо же из статьи про systemd-boot взять значения параметра options.
Естественно команду надо запускать от рута, чтобы она могла внести изменения. После выполнения сразу проверьте, что запись создалась:
efibootmgr -v
Чуть не забыл — запись после создания отредактировать нельзя, только стереть существующую запись и создать новую. Для таких случаев лучше сохранить команду с которой вы эту запись создавали (если вы забыли то можете помолиться и найти её в недрах ~/.bash_history)
Вот мой монструозный конфиг:
sudo efibootmgr -d /dev/sda -p 1 -c -L "Archlinux" -l /vmlinuz-linux-mainline -u 'root=/dev/sda2 rootflags=subvol=@ initrd=/initramfs-linux-mainline.img rw raid=noautodetect selinux=0 plymouth.enable=0 lpj=7981490 resume=/dev/sda4 rcutree.rcu_idle_gp_delay=1 udev.log_priority=3 audit=0 csi_mod.use_blk_mq=1 elevator=bfq acpi_osi=Linux acpi_backlight=vendor'