Grub vs. Systemd-boot: którego należy użyć jako programu ładującego

Grub vs. Systemd-boot: którego należy użyć jako programu ładującego

Systemd-boot, wcześniej nazywany „gummiboot”, jest nowszym konkurentem Gruba. W kompatybilnych systemach EFI możesz użyć systemd-boot zamiast Grub, aby uruchomić system operacyjny. Z perspektywy wysokiego poziomu systemd-boot łączy się z bootloaderem już w UEFI, oferując najbardziej podstawowy zestaw funkcji do wyboru systemu operacyjnego. Z drugiej strony Grub ładuje coś, co jest czasami określane jako „cały system operacyjny”, aby zarządzać uruchamianiem systemu operacyjnego użytkownika, zapewniając znacznie większe możliwości.

Co to jest program ładujący?

Program ładujący ładuje system operacyjny. Jest kopiowany do pamięci przez system BIOS komputera z pierwszego prawidłowego bloku dysku i uruchamiany przed uruchomieniem jakiegokolwiek systemu operacyjnego. Stamtąd zapewnia podstawowy zestaw funkcji, które pozwalają modyfikować sposób uruchamiania komputera w tej sesji. Na przykład GRUB daje ci możliwość załadowania różnych jąder dla twojej dystrybucji Linuksa.

Zrzut ekranu ekranu wyboru jądra Linuksa w GRUB 2.

Jeśli program ładujący wykryje wiele rozruchowych obrazów systemu, pozwala użytkownikowi wybrać, który system ma zostać załadowany. Następnie program ładujący uruchamia system operacyjny i przekazuje kontrolę sprzętu systemowi operacyjnemu. W większości systemów program ładujący pojawia się zaraz po ekranie powitalnym płyty głównej.

Zdjęcie ekranu powitalnego systemu BIOS płyty głównej.

FYI: BIOS i UEFI to dwa oprogramowania układowe, które można dziś znaleźć na płytach głównych x86_64. Dowiedz się, co sprawia, że ​​działają i jak określić, które oprogramowanie układowe jest dla Ciebie najlepsze .

Grub a systemd-boot: co to jest Grub?

GNU GRUB , bardziej znany jako Grub lub GRUB 2, oznacza GR i Unified Boot Interface. Jest oparty na specyfikacji multiboot Free Software Foundations . Jego twórcy zaprojektowali go tak, aby działał na dowolnej platformie sprzętowej i uruchamiał prawie każdy system operacyjny typu Unix z praktycznie dowolnego nośnika startowego i systemu plików.

Zrzut ekranu domyślnego programu ładującego GRUB 2 w systemie Ubuntu Linux.

Ponieważ obejmuje szeroki zakres platform i dystrybucji, Grub jest często domyślnym programem ładującym w większości dystrybucji Linuksa. Jeśli miałeś kontakt z bootloaderem Linuksa, prawdopodobnie był to Grub. Zapewnia również opcje konfiguracji wizualnej, takie jak tekst, kolory tła i graficzne obrazy powitalne. Na przykład wersja Gruba dla Debiana używa unikalnego niebiesko-zielonego tła dla swojego monitu.

Zrzut ekranu menu bootloadera GRUB 2 w Debianie 11.

Grub obsługuje systemy multiboot, a jego programiści napisali go specjalnie w tym celu. Jednak może to być trochę trudne, jeśli coś pójdzie nie tak. Problemy występują najczęściej podczas instalowania Gruba w istniejącym systemie z wieloma systemami operacyjnymi, usuwania systemów operacyjnych i instalowania nowych systemów operacyjnych. Grub używa jednego pliku conf, więc każdy system operacyjny jest zawarty w tym samym pliku, który jest edytowany w celu odzwierciedlenia zmian.

Zrzut ekranu okna terminala pokazujący plik grub.cfg w Debianie.

Programy ładujące podstawowego systemu operacyjnego znajdują się w MBR, a inne systemy operacyjne są ładowane łańcuchowo przez programy ładujące na ich własnych partycjach. To działa iw większości przypadków użycia jest absolutnie wystarczające. Ale jest to system, który można łatwo zdenerwować. Na przykład, jeśli nie skonfigurujesz prawidłowo łańcuchowo ładowanych jąder, wiele instalacji Linuksa może zakończyć się „walką” o kontrolę nad MBR.

Grub kontra Systemd-boot: co to jest Systemd-boot?

Fani Linuksa mogli już wcześniej spotkać się z nazwą „ systemd ”. Systemd, skrót od „daemon systemowy”, to zbiór podstawowych demonów wymaganych do uruchomienia systemu Linux. Systemd-boot to kod składający się z kilku tysięcy wierszy i nie ma zależności w pozostałej części pakietu systemd.

Zrzut ekranu programu ładującego Systemd-boot w Pop!_OS.

Jednak dzięki swojej prostocie gummiboot został dodany do systemd i przemianowany na „systemd-boot”, aby pasował do konwencji nazewnictwa komponentów systemd. Ogólnym celem Systemd jest szybkie uruchamianie systemu poprzez uruchamianie mniejszej liczby rzeczy i uruchamianie większej liczby równolegle, a systemd-boot podziela ten cel.

Zrzut ekranu okna terminala pokazujący domyślną konfigurację EFI dla Pop!_OS.

Jako bootloader tylko tekstowy, systemd-boot ma oczywiście oldschoolowy wygląd. Dostępne urządzenia rozruchowe są wymienione według ich tytułu, który jest obsługiwany w pliku konfiguracyjnym systemd-boot. Systemd-boot jest w zasadzie interfejsem dla logiki rozruchowej zawartej w EFI, dlatego może być używany tylko z kompatybilnymi systemami EFI. Jest to znacznie mniej konfigurowalny system niż Grub i wykorzystuje modułowość. conf dla każdego systemu operacyjnego, który chcesz uruchomić.

Zrzut ekranu okna terminala pokazujący zawartość partycji /boot/efi komputera.

Dzięki ograniczonemu interfejsowi systemd-boot jest znacznie mniejszym programem ładującym niż Grub. Niektóre osoby instalują go ze względu na szybkość lub efektywniejsze zarządzanie wieloma systemami operacyjnymi. Ponieważ systemd-boot używa podzielonych plików konfiguracyjnych (pojedynczy plik .conf dla każdego jądra lub systemu operacyjnego), ręczna konserwacja systemu z wieloma jądrami lub systemami operacyjnymi może być prostsza. Te rozwijane pliki tekstowe konfiguracji można po prostu skopiować do katalogu systemd podczas instalowania nowego jądra. Upraszcza to konfigurację systemów z wieloma systemami rozruchowymi.

Co jest lepsze: Grub czy Systemd-boot?

Jeśli masz problemy z Grubem, systemd-boot zapewnia radykalnie uproszczoną infrastrukturę rozruchową z konfiguracją plików rozwijanych. Jest bardziej niezawodny, ale nie jest też tak konfigurowalny ani adaptowalny jak Grub. Jeśli korzystasz z systemu EFI z wieloma rozruchami, systemd-boot może zapewnić łatwiejsze zarządzanie rozruchem, a nawet skrócić czas rozruchu. W innych konfiguracjach systemu lub w zastosowaniach wymagających większej elastyczności niż zapewnia systemd-boot, Grub pozostaje najlepszym rozwiązaniem.

Często Zadawane Pytania

Czy można przekonwertować mój system GRUB 2 na Systemd-boot?

Tak. W przeważającej części GRUB i Systemd-boot powinny móc współistnieć w tym samym systemie. Oznacza to, że możesz przekonwertować maszynę używającą GRUB na Systemd-boot.

Należy pamiętać, że instalacja Systemd-boot będzie się różnić w zależności od dystrybucji Linuksa. Jednak w większości przypadków będzie to wymagało załadowania systemu operacyjnego w trybie UEFI i uruchomienia plików su && bootctl install.

Czy systemy BIOS mogą uruchamiać Systemd-boot?

Tak. W przypadku systemów opartych wyłącznie na systemie BIOS możliwe jest uruchamianie Systemd-boot poprzez emulację środowiska podobnego do UEFI. Jednym z najpopularniejszych programów, które mogą to zrobić, jest Clover . Jest to zamiennik programu ładującego dla maszyn Hackintosh, które można skonfigurować do pracy z dystrybucjami Linuksa.

Czy można przyspieszyć GRUB 2?

Tak. Jednym z najłatwiejszych sposobów przyspieszenia GRUB 2 podczas uruchamiania jest skrócenie czasu oczekiwania na monit. Możesz to zrobić, uruchamiając sudo nano /etc/default/grub, a następnie zmieniając GRUB_TIMEOUTwartość na 1.

Z drugiej strony możesz również upewnić się, że GRUB zawsze będzie czekał na odpowiedź użytkownika, zmieniając tę GRUB_TIMEOUT​​​​wartość na -1. Po zakończeniu musisz uruchomić, sudo update-grubaby zastosować nową konfigurację.

Źródło obrazu: Unsplash . Wszystkie przeróbki i zrzuty ekranu autorstwa Ramces Red.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *