GRUB2 – motywy, konfiguracja i naprawa wpisów rozruchowych

Oskar Gajzler
Przez
Oskar Gajzler
Redaktor IINTE.edu.pl, na co dzień zajmuje się technologiami internetowymi i tłumaczeniem skomplikowanych tematów na prosty język. Pisze poradniki o tym, jak załatwiać sprawy przez internet, jak...
16 min czytania

1. Czym jest GRUB2 i jak działa

GRUB2 (GRand Unified Bootloader 2) to wieloetapowy program rozruchowy, który działa w trzech krokach:

  • ładuje się jako pierwszy po BIOS/UEFI,
  • wyświetla menu wyboru systemu,
  • przekazuje sterowanie do jądra wybranego systemu (Linux, system Windows, BSD itd.).

Najprostszy łańcuch uruchamiania wygląda następująco: MBR/partycja EFI → GRUB2 → menu → wybór systemu. W typowym menu znajdziesz m.in. następujące pozycje:

  • system Linux (domyślny),
  • system Windows,
  • inne jądra lub tryby (np. „tryb awaryjny”),
  • narzędzia (memtest, recovery).

GRUB2 składa się z kluczowych elementów konfiguracji i skryptów:

  • plik konfiguracyjny – /boot/grub/grub.cfg (automatycznie generowany),
  • szablon ustawień – /etc/default/grub (tu zmieniasz najczęściej ustawienia),
  • skrypty generujące wpisy – /etc/grub.d/ (m.in. 10_linux, 30_os-prober, 40_custom),
  • pliki binarne i moduły – w katalogu /boot/grub/.

W zdecydowanej większości dystrybucji nie edytuje się ręcznie pliku grub.cfg, ponieważ jest nadpisywany przez update-grub / grub-mkconfig.

2. Podstawowe pojęcia – MBR vs UEFI, gdzie siedzi GRUB

2.1. Tryb BIOS/MBR

W trybie BIOS obowiązują następujące zasady:

  • GRUB instalowany jest w MBR dysku (pierwsze 512 bajtów) oraz w tzw. „post-MBR gap”,
  • partycje zwykle korzystają z klasycznej tablicy MBR,
  • rozwiązanie spotykane na starszych komputerach lub na maszynach z wyłączonym UEFI.

2.2. Tryb UEFI/GPT

W trybie UEFI obowiązują poniższe reguły instalacji:

  • GRUB instaluje się do partycji EFI (ESP, FAT32, zazwyczaj 100–500 MB),
  • bootloader ma postać pliku .efi (np. \EFI\ubuntu\grubx64.efi),
  • UEFI utrzymuje listę wpisów rozruchowych (m.in. Windows Boot Manager i GRUB).

W praktyce naprawa GRUB w trybie UEFI zwykle sprowadza się do przywrócenia wpisu GRUB w NVRAM (liście bootowania) oraz upewnienia się, że pliki .efi w partycji EFI istnieją i są poprawne.

3. Gdzie i co konfigurować w GRUB2

Najważniejsze miejsca konfiguracji to:

  • główna konfiguracja użytkownika – /etc/default/grub;
  • skrypty generujące wpisy – /etc/grub.d/ (np. 10_linux, 30_os-prober, 40_custom);
  • wygenerowana konfiguracja – /boot/grub/grub.cfg (nie edytujemy ręcznie).

Po każdej zmianie konfiguracji uruchom odpowiednią komendę:

W Debian/Ubuntu/Mint:

sudo update-grub

W innych dystrybucjach (np. Arch, Fedora):

sudo grub-mkconfig -o /boot/grub/grub.cfg

Na wielu systemach update-grub jest tylko skryptem wywołującym grub-mkconfig.

4. Podstawowe ustawienia w /etc/default/grub

Poniżej znajdziesz przykładowy fragment pliku z najczęściej zmienianymi parametrami:

GRUB_DEFAULT=0

GRUB_TIMEOUT=10

GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

GRUB_CMDLINE_LINUX=""

GRUB_TERMINAL_OUTPUT=gfxterm

GRUB_GFXMODE=1920x1080,auto

GRUB_GFXPAYLOAD_LINUX=keep

4.1. Domyślna pozycja startowa – GRUB_DEFAULT

Jak kontrolować, co startuje domyślnie:

  • GRUB_DEFAULT=0 wskazuje pierwszy wpis w menu,
  • możesz podać numer (0, 1, 2…) lub pełną nazwę wpisu ("Debian GNU/Linux"),
  • możesz użyć saved, aby GRUB uruchamiał ostatnio wybrany system (wymaga włączenia zapisywania wyboru).

4.2. Czas oczekiwania – GRUB_TIMEOUT

Konfiguracja czasu wyświetlania menu:

  • GRUB_TIMEOUT=10 to liczba sekund, przez które widoczne jest menu,
  • 0 oznacza brak opóźnienia (menu niewidoczne; przytrzymaj Shift/Esc, aby je pokazać),
  • -1 powoduje czekanie w nieskończoność.

4.3. Parametry jądra – GRUB_CMDLINE_LINUX_DEFAULT

Najczęściej używane parametry to:

  • quiet – mniej logów przy starcie,
  • splash – ekran powitalny,
  • dodatkowe parametry (np. dla sterowników, ACPI, diagnostyki).

Zmiany przydają się, gdy chcesz m.in.:

  • wyłączyć grafikę hybrydową,
  • pominąć moduły wymagające Secure Boot,
  • dodać nomodeset przy problemach z grafiką.

5. Personalizacja wyglądu GRUB2 (motywy)

5.1. Obraz tła

Najprostsza i efektowna personalizacja polega na ustawieniu własnego tła. Zrób to tak:

  1. Przygotuj plik graficzny w odpowiednim formacie i rozdzielczości:
  • format: PNG lub JPG,
  • rozdzielczość dopasowana do ekranu (np. 1920×1080),
  • plik zapisany np. jako /boot/grub/mybackground.png.
  1. Dodaj ścieżkę do tła w /etc/default/grub (edytor uruchom z uprawnieniami administratora):

GRUB_BACKGROUND="/boot/grub/mybackground.png"

  1. Zaktualizuj konfigurację GRUB:

sudo update-grub

Po restarcie GRUB powinien wyświetlać nowe tło.

5.2. Zmiana rozdzielczości

Aby wymusić rozdzielczość interfejsu GRUB, ustaw następujące wartości:

GRUB_GFXMODE=1920x1080,auto

GRUB_GFXPAYLOAD_LINUX=keep

Dzięki opcji keep jądro przejmuje ustawioną rozdzielczość, co eliminuje „mignięcie” ekranu podczas startu.

5.3. Motywy GRUB2

Zaawansowane motywy (ikony, niestandardowe układy) działają z katalogu np. /boot/grub/themes/mój_motyw/ i pliku theme.txt. Aby je aktywować, dodaj do /etc/default/grub linię:

GRUB_THEME="/boot/grub/themes/mój_motyw/theme.txt"

Po każdej zmianie pamiętaj o przebudowaniu konfiguracji:

sudo update-grub

Motywy możesz pobrać z repozytoriów dystrybucji lub z zewnętrznych stron albo stworzyć własny (katalog z grafikami + plik theme.txt).

6. Konfiguracja wpisów rozruchowych

6.1. Automatyczne wykrywanie systemów (os-prober)

W dystrybucjach debianowych (Ubuntu, Mint, Debian) wykrywanie innych systemów (system Windows, inne Linuxy) realizuje skrypt /etc/grub.d/30_os-prober. Podczas uruchamiania update-grub wykonuje on następujące kroki:

  • skanuje dyski,
  • wykrywa inne instalacje,
  • dodaje odpowiednie wpisy do grub.cfg.

Jeśli system Windows „zniknął” z menu, często wystarczy wykonać polecenie:

sudo update-grub

W razie potrzeby doinstaluj pakiet os-prober (w nowszych Ubuntu bywa domyślnie wyłączony).

6.2. Ręczne dodawanie wpisów – katalog /etc/grub.d/

W /etc/grub.d/ znajdują się skrypty generujące fragmenty grub.cfg. Najważniejsze z nich to:

  • 10_linux – wpisy dla zainstalowanego Linuksa,
  • 20_linux_xen – wpisy dla jąder Xen,
  • 30_os-prober – wykrywanie innych systemów (system Windows, inne Linuxy),
  • 40_custom – miejsce na własne wpisy.

Możesz dopisać własny wpis w 40_custom lub stworzyć własny skrypt, np. 09_moj_system.

Przykład – prosty wpis do Windows (BIOS/MBR)

Jeśli automatyczne wykrywanie nie działa, dodaj ręczny wpis w 40_custom w trzech prostych krokach:

  1. Otwórz plik do edycji:

sudo nano /etc/grub.d/40_custom

  1. Dodaj na końcu (przykład dla partycji /dev/sda1):

menuentry "Windows 10 (ręcznie)" {

insmod ntfs

set root='(hd0,1)'

chainloader +1

}

Warto wiedzieć, że (hd0,1) oznacza pierwszy dysk i pierwszą partycję (numeracja GRUB może się różnić; sprawdzisz to komendą ls w konsoli GRUB lub narzędziami lsblk/fdisk -l w Linuksie).

  1. Zapisz plik i zaktualizuj konfigurację:

sudo update-grub

Własny skrypt w /etc/grub.d/

Zamiast 40_custom możesz utworzyć odrębny skrypt, np.:

sudo nano /etc/grub.d/15_windows

Wklej zawartość skryptu:

#!/bin/sh

exec tail -n +3 $0

menuentry "Windows 10 (skrypt)" {

insmod ntfs

set root='(hd0,1)'

chainloader +1

}

Nadaj uprawnienia wykonania i przebuduj konfigurację:

sudo chmod +x /etc/grub.d/15_windows

sudo update-grub

Liczba na początku nazwy skryptu (np. 15_) wpływa na kolejność wpisów w menu.

7. Zmiana kolejności i nazewnictwa wpisów

7.1. Kolejność

Kolejność w menu wynika z numerów skryptów w /etc/grub.d/ oraz kolejności wpisów generowanych przez każdy skrypt.

Aby przenieść system Windows wyżej: możesz utworzyć własny skrypt, np. 09_windows, który wykona się przed 10_linux, albo ustawić GRUB_DEFAULT tak, aby jako domyślny startował Windows (bez fizycznej zmiany kolejności w menu).

7.2. Zmiana nazw (etykiet)

Własne wpisy (w 40_custom lub w twoich skryptach) nazwiesz, edytując tekst w menuentry "...". Wpisy Linuksa można czasem zmienić parametrem GRUB_DISTRIBUTOR lub przez ostrożną edycję skryptu 10_linux.

8. GRUB2 a Windows – typowe problemy i rozwiązania

System Windows potrafi „zawłaszczyć” proces rozruchu, zwłaszcza po następujących operacjach:

  • świeżej instalacji Windows po Linuksie,
  • dużych aktualizacjach typu „feature update”,
  • zmianach w ustawieniach UEFI.

Najczęstsze efekty to:

  • komputer startuje od razu do Windows,
  • menu GRUB znika,
  • pojawia się błąd „unknown filesystem” lub „grub rescue>”.

8.1. Po instalacji Windows zniknął GRUB

To klasyczny scenariusz: system Windows nadpisuje MBR (BIOS) lub zmienia wpisy UEFI na własny Boot Manager. Rozwiązanie różni się w zależności od trybu: w BIOS/MBR trzeba ponownie zainstalować GRUB na MBR, a w UEFI przywrócić wpis GRUB w NVRAM lub zainstalować go ponownie w ESP. Szczegóły znajdziesz w rozdziale 9.

8.2. Windows modyfikuje wpisy EFI

Po niektórych aktualizacjach Windows może nadpisać wpis Boot Manager w UEFI. W takiej sytuacji:

  • ustaw GRUB jako domyślny w UEFI (BIOS Setup → Boot Order),
  • ewentualnie użyj efibootmgr w Linuksie, by zmienić BootOrder,
  • możesz też „przepiąć” Windows Boot Manager, aby startował przez GRUB (zaawansowane, w Windows: bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi).

9. Naprawa GRUB2 – praktyczne scenariusze

9.1. Najprostsza sytuacja – Linux nadal startuje

Jeżeli Linux wciąż się uruchamia (np. bez menu GRUB lub tylko po ręcznym wyborze dysku), wykonaj poniższe kroki:

  1. Zaloguj się do zainstalowanego Linuksa.
  2. W razie potrzeby przeinstaluj pakiety GRUB, zależnie od trybu rozruchu:

Debian/Ubuntu/Mint (BIOS):

sudo apt install --reinstall grub-pc

Debian/Ubuntu/Mint (UEFI 64-bit):

sudo apt install --reinstall grub-efi-amd64

  1. Upewnij się, że GRUB trafił na właściwy dysk (BIOS) lub do poprawnego ESP (UEFI).
  2. Przebuduj konfigurację:

sudo update-grub

W wielu przypadkach wystarczy samo przebudowanie konfiguracji:

sudo update-grub

To zwykle przywraca wpis Windows do menu po jego ponownej instalacji.

9.2. System się nie uruchamia – metoda live USB + Boot-Repair

To najprostsze rozwiązanie dla mniej zaawansowanych użytkowników.

Krok 1 – przygotuj live USB z Linuksem

Wykonaj poniższe czynności, aby utworzyć nośnik instalacyjny:

  • pobierz obraz ISO popularnej dystrybucji (np. Ubuntu),
  • użyj narzędzia Rufus (Windows), Etcher (wieloplatformowy) lub „Startup Disk Creator” (Ubuntu), aby nagrać ISO na pendrive,
  • pamiętaj, że pendrive zostanie wyczyszczony.

Krok 2 – uruchom komputer z live USB

Skonfiguruj rozruch z pendrive’a zgodnie z poniższymi wskazówkami:

  • wejdź do BIOS/UEFI (najczęściej Del, F2, F10, F12 lub Esc po włączeniu komputera),
  • ustaw pendrive jako pierwsze urządzenie w Boot Order,
  • zapisz zmiany (zwykle F10) i zrestartuj komputer,
  • z menu live wybierz „Wypróbuj bez instalacji”.

Krok 3 – zainstaluj Boot-Repair

Po uruchomieniu systemu live wykonaj instalację narzędzia:

  • połącz się z internetem (Ethernet lub Wi‑Fi),
  • otwórz terminal i wykonaj kolejno polecenia.

sudo add-apt-repository ppa:yannubuntu/boot-repair

sudo apt update

sudo apt install -y boot-repair

Krok 4 – uruchom Boot-Repair i napraw GRUB

Wyszukaj Boot-Repair w menu aplikacji lub uruchom w terminalu:

boot-repair

Po skanowaniu wybierz „Recommended repair” (Zalecana naprawa), postępuj według wskazówek, a po zakończeniu zamknij program, wyjmij pendrive i zrestartuj komputer.

W większości przypadków menu GRUB zostanie odtworzone, a system Windows znów pojawi się w menu.

9.3. Naprawa „ręczna” z live USB (chroot)

To metoda dla bardziej zaawansowanych lub gdy Boot-Repair nie pomaga. Ogólny schemat wygląda tak:

  1. Uruchom system live Linux.
  2. Ustal, gdzie jest zainstalowany system (np. poleceniem lsblk lub fdisk -l).
  3. Zamontuj partycję z systemem (root):

sudo mount /dev/sdXN /mnt

  1. Jeśli masz osobne /boot lub /boot/efi, zamontuj je odpowiednio (przykład dla ESP):

sudo mount /dev/sdY1 /mnt/boot/efi

  1. Zamontuj pseudo-systemy:

sudo mount --bind /dev /mnt/dev

sudo mount --bind /proc /mnt/proc

sudo mount --bind /sys /mnt/sys

  1. Wejdź do zainstalowanego systemu przez chroot:

sudo chroot /mnt

  1. Zainstaluj GRUB zależnie od trybu:

BIOS:

grub-install /dev/sda

UEFI (x86_64):

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB

  1. Wygeneruj konfigurację:

update-grub

  1. Wyjdź z chroot, odmontuj katalogi i zrestartuj komputer.

To sprawdzony schemat w Debianie/Ubuntu, często najszybszy i najpewniejszy sposób przywrócenia GRUB.

9.4. „Unknown filesystem” / „grub rescue>” po zmianach w partycjach

Problem zwykle pojawia się po modyfikacji układu partycji (GParted, instalacja Windows, usunięcie starej partycji). Komunikat może wyglądać tak:

error: unknown filesystem.
entering rescue mode…
grub rescue>

Co możesz zrobić w praktyce: w Windows uruchom instalator, wybierz „Napraw komputer” → „Naprawa podczas uruchamiania”, aby przywrócić bootloader Windows (później ponownie zainstaluj GRUB, jeśli chcesz dual‑boot). Alternatywnie w systemie live Linux wykonaj procedurę z chroot (pkt 9.3). Zanim zaczniesz naprawy, rozważ skopiowanie ważnych danych na inny nośnik.

10. Dual-boot – dobre praktyki

10.1. Kolejność instalacji

Aby zminimalizować liczbę problemów, zastosuj taką kolejność:

  1. Zainstaluj system Windows jako pierwszy.
  2. Zostaw wolne miejsce na dysku.
  3. Zainstaluj Linuksa – instalator zwykle wykryje Windows i poprawnie skonfiguruje GRUB.

Jeżeli najpierw zainstalujesz Linuksa, a później Windows, ten drugi nadpisze bootloader i konieczne będzie przywrócenie GRUB (Boot‑Repair lub metoda z chroot).

10.2. UEFI – Secure Boot i Fast Boot

Problemy z rozruchem często powodują opcje Secure Boot oraz Fast Boot (w UEFI i w samym Windows). Zalecenia są następujące:

  • wyłącz Secure Boot (przynajmniej na czas instalacji Linuksa),
  • wyłącz Fast Boot w UEFI i w Windows,
  • upewnij się, że tryb bootowania (UEFI vs Legacy) jest spójny dla obu systemów.

10.3. Archiwizacja danych przed naprawą

Przed jakimikolwiek działaniami naprawczymi wykonaj podstawowe kroki bezpieczeństwa:

  • uruchom dowolny Linux live z USB,
  • skopiuj ważne dane na zewnętrzny dysk,
  • sprawdź, czy kopia jest czytelna.

W razie poważnej pomyłki przy naprawie bootloadera lub partycjonowaniu kopia zapasowa może być jedynym ratunkiem.

11. Przykładowa kompletna konfiguracja – krok po kroku

Załóżmy, że masz już zainstalowane: system Windows 10 i Ubuntu/Mint, a twoim celem jest:

  • przywrócenie menu GRUB po instalacji Windows,
  • dodanie estetycznego tła,
  • ustawienie Windows jako domyślnego systemu startowego.

Krok 1 – przywrócenie GRUB (Boot-Repair)

Wykonaj następujące działania, aby szybko odtworzyć GRUB:

  • stwórz live USB z Ubuntu,
  • uruchom komputer z pendrive’a,
  • zainstaluj Boot-Repair (add-apt-repository, apt update, apt install boot-repair),
  • wybierz „Recommended repair”,
  • wyjmij pendrive i zrestartuj komputer.

Menu GRUB powinno się pojawić, z Windows jako jedną z pozycji.

Krok 2 – dodanie tła i personalizacja

Wdrażamy estetykę i zmieniamy domyślny system na Windows:

  1. Zaloguj się do Ubuntu/Minta.
  2. Skopiuj obraz tła do /boot/grub/mybackground.png.
  3. Edytuj /etc/default/grub, nadając mu poniższe wartości:

GRUB_DEFAULT="Windows Boot Manager (na dysku /dev/sdaX)" # lub dokładna nazwa wpisu

GRUB_TIMEOUT=5

GRUB_BACKGROUND="/boot/grub/mybackground.png"

GRUB_GFXMODE=1920x1080,auto

GRUB_GFXPAYLOAD_LINUX=keep

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

Nazwę wpisu Windows znajdziesz w wygenerowanym grub.cfg lub w menu GRUB.

  1. Przebuduj konfigurację:

sudo update-grub

Po restarcie uzyskasz następujący efekt:

  • menu z własnym tłem,
  • domyślnie po 5 sekundach uruchamia się Windows,
  • Linux pozostaje dostępny jako kolejna opcja.

12. Kiedy warto rozważyć reinstall zamiast naprawy

Nie zawsze warto tracić godziny na naprawę skomplikowanego układu partycji i bootloadera. Rozważ świeżą instalację, gdy:

  • i tak planujesz „świeży start”,
  • dysk był wielokrotnie dzielony, łączony i przenoszony,
  • nie czujesz się pewnie w obsłudze chroot, grub-install, efibootmgr.

Rozsądny scenariusz postępowania wygląda następująco:

  1. Wykonaj kopię najważniejszych danych na inny nośnik.
  2. Zweryfikuj, że backup jest odczytywalny.
  3. Wyczyść dysk (np. w GParted).
  4. Zainstaluj najpierw system Windows, a potem Linuksa, zostawiając miejsce na /home itd.
  5. Odtwórz dane z kopii zapasowej.

W wielu przypadkach to szybsze i bezpieczniejsze niż wielokrotne, niepewne próby naprawy.

Udostępnij ten artykuł
Obserwuj
Redaktor IINTE.edu.pl, na co dzień zajmuje się technologiami internetowymi i tłumaczeniem skomplikowanych tematów na prosty język. Pisze poradniki o tym, jak załatwiać sprawy przez internet, jak bezpiecznie korzystać z sieci i jak dobierać sprzęt oraz oprogramowanie. Prywatnie tropi nowinki technologiczne i testuje je, zanim opisze.
Brak komentarzy

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *