GRUB - Jak skonfigurować i naprawić bootloader w Linuksie?

Dawid Grabowski .

5 marca 2026

Ekran startowy GRUB dla Debian GNU/Linux w QEMU. Wybierz system lub edytuj polecenia.

GRUB to warstwa, która decyduje, co uruchomi się jako pierwsze po włączeniu komputera: pojedynczy kernel, starszy wpis ratunkowy, Windows w dual boot albo specjalny tryb odzyskiwania. W dystrybucjach Linux ma znaczenie większe, niż się wydaje, bo od niego zależą nie tylko ekran startowy i menu, ale też sposób aktualizacji jądra, praca z UEFI oraz szybkie odzyskanie systemu po błędzie. Poniżej rozkładam temat na konkretne kroki i pokazuję, co naprawdę warto umieć.

Najważniejsze rzeczy o GRUB-ie, które warto mieć pod ręką

  • GRUB jest bootloaderem - ładuje kernel i initramfs, a potem przekazuje sterowanie właściwemu systemowi.
  • Na BIOS działa inaczej niż na UEFI: w BIOS ważny jest dysk i MBR, a w UEFI plik EFI na partycji ESP.
  • grub-install instaluje bootloader, a grub-mkconfig generuje menu i wpisy startowe.
  • Najbezpieczniej zmieniać /etc/default/grub, a nie ręcznie edytować wygenerowany grub.cfg.
  • Przy awarii startu najpierw sprawdza się tryb rescue, potem reinstalację GRUB-a z live USB.
  • Secure Boot, szyfrowany /boot i kilka dysków zwiększają złożoność, ale da się to utrzymać, jeśli konfiguracja jest spójna.

Ekran startowy GRUB dla Debian GNU/Linux w QEMU. Wybierz system lub edytuj polecenia.

Jak GRUB wchodzi do gry podczas startu komputera

Najprościej patrzę na GRUB jak na tłumacza między firmware komputera a właściwym systemem operacyjnym. Firmware - BIOS albo UEFI - uruchamia pierwszy etap, GRUB pokazuje menu i wybiera wpis, a potem ładuje kernel oraz initramfs, czyli minimalny obraz systemu potrzebny do startu właściwej instalacji. To właśnie dlatego GRUB jest tak ważny w dystrybucjach Linux: bez niego nie ma wygodnego wyboru systemu, fallbacku ani sensownego dual boot.

Różnica między BIOS a UEFI jest praktyczna, nie teoretyczna. W BIOS-ie bootloader jest związany z dyskiem i jego wczesnym obszarem rozruchowym, a w UEFI działa jako plik EFI zapisany na partycji ESP. Ja zwykle upraszczam to do jednego zdania: w BIOS pilnujesz dysku, w UEFI pilnujesz partycji EFI i wpisu w firmware.

Cecha BIOS UEFI
Gdzie trafia GRUB Na dysk, w obszar rozruchowy i core image Do pliku EFI na partycji ESP
Typowa instalacja grub-install /dev/sdX grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB
Najczęstszy błąd Instalacja na partycji zamiast na całym dysku Zły punkt montowania ESP albo brak wpisu w firmware
Co sprawdzić po zmianach Kolejność dysków i poprawny nośnik startowy Podpisy, wpis w Boot Managerze i montowanie ESP

To wyjaśnia, dlaczego ten sam problem może wyglądać zupełnie inaczej na dwóch komputerach. Skoro sam mechanizm jest jasny, warto zobaczyć, jak różne dystrybucje Linux podchodzą do niego w praktyce.

Dlaczego dystrybucje Linux traktują GRUB-a inaczej

Tu widać największą różnicę między rodzinami dystrybucji. Jedne próbują jak najwięcej ukryć przed użytkownikiem i generują konfigurację automatycznie, inne stawiają na ręczną kontrolę. Z mojego doświadczenia wynika, że największy błąd popełniają osoby, które zakładają, że wszędzie GRUB działa identycznie. Nie działa - i właśnie dlatego warto znać układ swojej dystrybucji.

Rodzina dystrybucji Jak to zwykle wygląda Co to oznacza w praktyce
Debian, Ubuntu i pochodne Dużo rzeczy jest generowanych skryptami i aktualizowanych po zmianach kernela Edytujesz źródła konfiguracji, a potem odświeżasz menu, zamiast poprawiać gotowy plik
Arch i systemy minimalistyczne Więcej decyzji podejmujesz sam, od instalacji po regenerację menu Masz pełną kontrolę, ale też pełną odpowiedzialność za każdy etap rozruchu
Fedora, openSUSE i podobne Większy nacisk na integrację z polityką aktualizacji kernela, UEFI i podpisów Boot chain trzeba traktować jak część zarządzaną przez system, a nie jako jednorazową instalację

Najbardziej praktyczna zasada jest prosta: nie edytuję ręcznie wygenerowanego grub.cfg, jeśli nie muszę. W większości dystrybucji to plik wynikowy, który i tak zostanie nadpisany przy kolejnym odświeżeniu. Zmiany robi się w /etc/default/grub, w skryptach lub w dedykowanych fragmentach konfiguracyjnych, a potem dopiero generuje finalne menu.

To prowadzi do najważniejszego pytania użytkownika: co konkretnie ustawić, żeby GRUB był wygodny na co dzień, a nie tylko poprawny technicznie.

Jak ustawić menu, domyślny system i czas oczekiwania

W codziennym użyciu liczą się cztery rzeczy: który wpis startuje domyślnie, jak długo menu czeka na wybór, czy menu w ogóle ma być widoczne oraz jakie parametry dostaje kernel. W praktyce to właśnie te ustawienia decydują o tym, czy komputer jest przyjazny w dual boot, czy zamienia się w źródło frustracji po każdej aktualizacji.

Ustawienie Co robi Rozsądny punkt wyjścia
GRUB_DEFAULT Wybiera domyślny wpis menu 0 dla prostych instalacji, saved albo konkretne ID, gdy często przełączasz systemy
GRUB_TIMEOUT Określa czas oczekiwania przed automatycznym startem 3-5 sekund na komputerze osobistym, 5-10 sekund przy dual boot lub testach
GRUB_TIMEOUT_STYLE Decyduje, czy menu ma być widoczne, czy ukryte menu, jeśli chcesz mieć awaryjny wybór bez zgadywania skrótów klawiszowych
GRUB_CMDLINE_LINUX_DEFAULT Dodaje parametry do kernela Typowo quiet splash, a do diagnozy chwilowo nomodeset albo usunięcie tych flag
Własne wpisy Dodają niestandardowe pozycje menu Lepsze w /etc/grub.d/40_custom lub w osobnym pliku niż w finalnym grub.cfg

Po każdej zmianie robię dwie rzeczy: zapisuję konfigurację źródłową i generuję nowe menu. Standardowy rytm wygląda tak: edycja /etc/default/grub, potem grub-mkconfig -o /boot/grub/grub.cfg. Jeśli dystrybucja daje własny wrapper, można go użyć, ale logika pozostaje ta sama - zmieniasz źródło, a nie wynik.

Przy systemach wielobootowych polecam jeszcze jedną rzecz: zostawić menu widoczne choćby przez kilka sekund. Ukryte menu ma sens tylko wtedy, gdy naprawdę nie potrzebujesz awaryjnego wyboru. W praktyce 3-5 sekund zwykle wystarcza, a nie kosztuje nic poza odrobiną wygody.

Skoro ustawienia są już jasne, czas przejść do sytuacji, której każdy wolałby uniknąć: komputer staje na ekranie GRUB-a albo wpada w rescue shell.

Co zrobić, gdy komputer zatrzymuje się na GRUB-ie

Najczęstsze awarie nie oznaczają, że system zniknął. Zwykle coś rozjechało się po zmianie partycji, aktualizacji kernela, wymianie dysku albo po włączeniu Secure Boot bez pełnego przygotowania. Ja zaczynam zawsze od rozpoznania objawu, bo to oszczędza czas: inny scenariusz ratuje się z menu, inny z rescue shell, a jeszcze inny wymaga live USB.

Objaw Prawdopodobna przyczyna Co robię najpierw
grub> lub grub rescue> Zły prefix, brak modułu normal albo źle widziana partycja Sprawdzam set i ls, ustawiam poprawny root oraz prefix, potem ładuję normal
Menu jest, ale system nie startuje Problem z parametrami kernela, initramfs albo sterownikiem grafiki Edytuję wpis klawiszem e i testowo usuwam quiet splash lub dodaję nomodeset
Nie widać drugiego systemu Nie odświeżono konfiguracji albo wykrywanie innych systemów jest ograniczone Regeneruję menu i sprawdzam, czy wpisy zostały wygenerowane z aktualnych danych
Po zmianie dysku nic nie bootuje GRUB trafił na zły nośnik albo firmware bootuje inną kolejność Reinstaluję bootloader na właściwym dysku i weryfikuję wpis UEFI lub boot order

Jeśli system wpada w rescue shell, zwykle robię to w tej kolejności: najpierw ls, potem ustawienie root i prefix, następnie insmod normal i normal. Przykładowy układ może wyglądać tak: set prefix=(hd0,1)/boot/grub oraz set root=(hd0,1), ale ścieżka zależy od tego, jak dystrybucja ułożyła partycje. To rozwiązanie jest tymczasowe - pozwala wejść do systemu, ale nie zastępuje naprawy instalacji.

Prawdziwa naprawa zwykle wymaga live USB i ponownej instalacji bootloadera. Na UEFI korzystam z grub-install wskazującego właściwy katalog EFI, a na BIOS z instalacji na cały dysk, nie na partycję. Po tym zawsze odświeżam konfigurację poleceniem grub-mkconfig -o /boot/grub/grub.cfg. To ważne, bo bez nowego pliku menu system może nadal startować w stary układ albo w ogóle nie znaleźć kernela.

Gdy w tle dochodzą szyfrowanie, Secure Boot albo kilka dysków, problem staje się bardziej złożony, ale nadal przewidywalny, jeśli rozumie się ograniczenia.

Secure Boot, szyfrowanie i inne przypadki, które komplikują start

W prostych instalacjach GRUB jest niemal niewidoczny. W bardziej złożonych środowiskach zaczyna jednak pracować razem z dodatkowymi warstwami: Secure Boot, LUKS, LVM, RAID czy wieloma dyskami. To działa, ale każda z tych warstw dokłada kolejny punkt, który może pęknąć po aktualizacji albo zmianie sprzętu. Ja traktuję to bardzo praktycznie: im bardziej skomplikowany start, tym większa potrzeba testów po każdej większej zmianie.

Secure Boot

Secure Boot wymaga podpisanego łańcucha startowego. Sama obecność GRUB-a nie wystarczy, jeśli firmware nie ufa jego binariom albo modułom. W wielu dystrybucjach pośrednikiem jest shim, czyli mały podpisany loader, który pomaga uruchomić dalszą część łańcucha. Jeśli włączasz Secure Boot po fakcie, sprawdź nie tylko bootloader, ale też podpisy kernela i ewentualnych modułów, których używa twoja konfiguracja.

Szyfrowany /boot i LUKS

Szyfrowanie zwiększa bezpieczeństwo, ale podnosi próg złożoności. GRUB potrafi czytać wiele układów, jednak przy szyfrowanym /boot trzeba być pewnym, że dana konfiguracja jest wspierana przez twoją dystrybucję i obecny zestaw modułów. Jeśli nie masz wyraźnego powodu, aby szyfrować samą partycję rozruchową, prostszy układ jest zwykle stabilniejszy. To nie jest konserwatyzm dla zasady - po prostu mniej warstw to mniej miejsc, gdzie coś może się rozjechać po aktualizacji.

Przeczytaj również: ALT Linux - Czy to dobra alternatywa dla Ubuntu? Poznaj edycje

LVM, RAID i kilka dysków

GRUB obsługuje złożone układy, ale z punktu widzenia niezawodności liczy się jedno: czy bootloader nadal widzi pliki, których potrzebuje, zanim system przejmie kontrolę. Przy LVM i RAID najważniejsze są poprawne moduły, czytelne identyfikatory dysków i brak zgadywania z typu /dev/sdX. Ja wolę opierać się na UUID albo etykietach, bo kolejność dysków potrafi się zmienić szybciej, niż człowiek zdąży zauważyć. Jeśli dołożysz nowy nośnik, przeniesiesz partycję albo zmienisz układ macierzy, dobrze jest od razu odświeżyć konfigurację i przetestować start.

To prowadzi do prostego, ale bardzo skutecznego nawyku: kilka minut porządków po zmianie systemu oszczędza godziny walki z awarią.

Co warto sprawdzić, zanim będziesz musiał ratować start systemu

  • Miej zapisane, gdzie montuje się partycja EFI w twojej dystrybucji: /boot/efi albo inny punkt montowania.
  • Po instalacji nowego kernela albo zmianie parametrów startowych zawsze generuj nową konfigurację GRUB-a.
  • Jeśli masz kilka systemów, zostaw menu widoczne przynajmniej przez kilka sekund zamiast ukrywać je całkowicie.
  • Nie edytuj ręcznie wygenerowanego grub.cfg, jeśli nie jest to absolutnie konieczne.
  • Po włączeniu Secure Boot wykonaj pełny test restartu, zanim uznasz konfigurację za zakończoną.
  • Trzymaj pod ręką live USB i jeden znany, stabilny kernel, jeśli dystrybucja pozwala łatwo utrzymać więcej niż jedną wersję.

Ja traktuję GRUB jak element infrastruktury, nie jak ozdobę ekranu startowego. Kiedy jest dobrze ustawiony, po prostu działa i nie zwraca na siebie uwagi; kiedy jest zaniedbany, potrafi zatrzymać cały komputer na pierwszym kroku. Jeśli pilnujesz źródłowych plików konfiguracji, używasz właściwych narzędzi do instalacji i odświeżasz menu po każdej większej zmianie, bootloader przestaje być źródłem stresu, a staje się przewidywalnym elementem startu systemu.

FAQ - Najczęstsze pytania

W trybie BIOS GRUB instaluje się w obszarze rozruchowym dysku (MBR). W UEFI jest on plikiem .efi zapisanym na partycji ESP. W BIOS kluczowa jest kolejność dysków, natomiast w UEFI liczy się poprawny punkt montowania partycji EFI i wpis w firmware.
Plik grub.cfg jest generowany automatycznie i zostanie nadpisany przy każdej aktualizacji jądra. Zmiany należy wprowadzać w pliku /etc/default/grub lub skryptach w /etc/grub.d/, a następnie odświeżyć menu poleceniem grub-mkconfig.
Należy użyć komend ls i set, aby wskazać partycję z systemem oraz ścieżkę do modułów (prefix), a potem wpisać insmod normal i normal. Po starcie systemu trzeba przeinstalować GRUB-a i wygenerować nową konfigurację, by trwale naprawić błąd.
Otwórz plik /etc/default/grub i zmień wartość parametru GRUB_TIMEOUT na liczbę sekund, przez którą menu ma być widoczne. Po zapisaniu zmian koniecznie wykonaj polecenie grub-mkconfig -o /boot/grub/grub.cfg, aby zaktualizować ustawienia startowe.

Oceń ten artykuł

Średnia: 0.0 / 5 · 0 ocen

Tagi

grub linux naprawa bootloadera grub konfiguracja grub uefi
Autor Dawid Grabowski
Dawid Grabowski
Jestem Dawid Grabowski, specjalizującym się w systemach Linux, bezpieczeństwie oraz oprogramowaniu. Od ponad pięciu lat analizuję rynek technologiczny, co pozwoliło mi zdobyć głęboką wiedzę na temat najnowszych trendów i rozwiązań w tych dziedzinach. Moim celem jest uproszczenie skomplikowanych zagadnień technicznych, aby każdy mógł zrozumieć kluczowe aspekty związane z bezpieczeństwem i efektywnym wykorzystaniem systemów Linux. W swojej pracy stawiam na obiektywną analizę i rzetelne fakt-checking, co sprawia, że moje teksty są wiarygodnym źródłem informacji. Zawsze dążę do dostarczania czytelnikom aktualnych i dokładnych treści, które mogą pomóc w podejmowaniu świadomych decyzji dotyczących technologii. Moim priorytetem jest budowanie zaufania poprzez transparentność i zaangażowanie w dostarczanie wartościowych informacji.

Komentarze (0)

Dodaj komentarz