systemd-boot (известен в миналото като gummiboot) е минималистичен и изключително бърз UEFI заредител (bootloader), който е вграден директно в пакета systemd на [Arch Linux]( https://wiki.archlinux.org/title/Systemd-boot). За разлика от GRUB, той не изисква генериране на сложни конфигурационни файлове чрез скриптове и работи изцяло на текстово ниво, четейки прости конфигурационни файлове.
● Само за UEFI системи: systemd-boot не поддържа старата BIOS (Legacy) архитектура. Той работи единствено в UEFI среда. ● Директно стартиране (EFISTUB): Вместо да зарежда собствени модули за четене на файлови системи, той разчита изцяло на фърмуера на дънната платка (UEFI). Понеже ядрото на Linux в Arch поддържа EFISTUB, systemd-boot просто казва на UEFI фърмуера: "Зареди това ядро с тези параметри". ● Автоматично засичане: Той автоматично открива операционни системи като Windows Boot Manager (ако имате Dual Boot) или macOS, както и Shell среди, без да е нужна ръчна намеса. ● Ограничение на файловата система: Тъй като разчита на UEFI, той може да чете файлове само от дялове, които UEFI „разбира“ – най-често FAT32 (вашият EFI системен дял, или т.нар. ESP). Ядрото (vmlinuz-linux) и initramfs трябва да се намират на този дял.
След инсталация, файловата структура в ESP дяла (обикновено монтиран в /boot или /efi) изглежда по много прост начин:
/boot/ ├── EFI/ │ └── systemd/ │ └── systemd-bootx64.efi <- Самият заредител └── loader/ ├── loader.conf <- Главният конфигурационен файл └── entries/ └── arch.conf <- Файлът за стартиране на Arch Linux
Главният файл: loader.conf Намира се в /boot/loader/loader.conf и контролира глобалното поведение на менюто. Примерно съдържание:
sudo nano /boot/loader/loader.conf default arch.conf timeout 3 console-mode max editor no
default: Кой запис от папка entries/ да се зареди по подразбиране. timeout: Колко секунди да чака менюто, преди да стартира записа (ако е 0, менюто се скрива, но се показва със задържане на Space при включване). editor: Ако е yes, позволява на потребителя да редактира параметрите на ядрото в реално време при стартиране (за сигурност е добре да е no). А сега да видим какво съдържа arch.conf Всеки избор в менюто има отделен .conf файл в /boot/loader/entries/. За стандартен Arch Linux той изглежда така:
sudo nano /boot/loader/entries/arch.conf title Arch Linux linux /vmlinuz-linux initrd /intel-ucode.img initrd /initramfs-linux.img options root=UUID=xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx rw
title: Името, което виждате на екрана. linux: Пътят до ядрото (спрямо корена на EFI дяла). initrd: Пътят до микрокода (Intel/AMD) и основния рамдиск имидж (важно: микрокодът винаги трябва да е първи). options: Опциите на ядрото, където посочвате вашия root дял (чрез UUID, прави се лесно с командата blkid). При по-новите версии на Arch Linux се ползва Unified Kernel Images (UKI). Тук няма да има .img файлове за ядро и initramfs. Вместо това има един файл с разширение .efi и в него се съдържа ядро+initramfs. В този случай файла arch.conf ще изглежда така:
sudo nano /boot/loader/entries/arch.conf title Arch Linux (Hibernation) linux /EFI/Linux/arch-linux.efi options root=PARTUUID=2837f732-bb89-4906-b241-2993554d7f74 zswap.enabled=0 rw rootfstype=ext4 resume=UUID=92273cb0-32da-466d-8380-f257ba28481d resume_offset=720896
За повече информация: SWAP & Hibernate . Най-отдолу има глава Ако ползвате Unified Kernel Images (UKI).
Тъй като systemd-boot идва вграден с systemd, няма нужда да инсталирате допълнителни пакети. След като сте монтирали EFI дяла (например на /boot) и сте влезли в arch-chroot, изпълнявате само една команда:
bootctl install
Тази команда автоматично: 1. Копира нужните .efi файлове в EFI дяла. 2. Създава празна директория loader/entries/. 3. Добавя systemd-boot в NVRAM паметта на дънната платка като първа опция за стартиране. При всяко обновяване на systemd, заредителят се обновява автоматично, ако има активиран systemd hook или чрез ръчно извикване на bootctl update.
| Функция | system-boot | GRUB |
|---|---|---|
| Сложност | Изключително лесен, чист текстов формат | Комплексен, изисква grub-mkconfig |
| Скорост | Зарежда незабавно (по-бърз буут) | Има леко забавяне поради модулната архитектура |
| Файлови системи | Само тези, поддържани от UEFI (FAT32) | Поддържа Btrfs, ext4, XFS и др. директно |
| Поддръжка на BIOS | Не (само UEFI) | Да (и двете) |