GRUB

Z Fedora Wiki
Skocz do: nawigacji, wyszukiwania

GRand Unified Bootloader

Spis treści

GRUB - jak odzyskać?

W wyniku różnych działań na komputerze zdarza się, że "znika" menu GRUB'a. Zazwyczaj objawia się to czarnym ekranem z wyświetlonym w lewym górnym rogu napisem GRUB i... to wszystko. Ponieważ sytuacja zdarza się dość często (np. po reinstalacji Windows, którego mimo szczerych chęci wielu "linuksiarzy" nie może się całkowicie pozbyć) deweloperzy wymyślili sposób na jego odzyskanie a tym samym na odzyskanie dostępu do Linuksa oraz Windows.

Warn.png
Od wersji 16 stosowany jest GRUB2
Różnice w sposobie odzyskiwania nie są wielkie, ale należy o nich pamiętać.

Procedura

Do przywrócenia GRUB'a potrzebna będzie nam płyta instalacyjna Fedory. Może to być:

  1. Płyta instalacyjna DVD
  2. Pierwszy CD-ROM instalacyjny
  3. Płyta do instalowania przez sieć (netinst)

Płyta LiveCD również może nam pomóc w odzyskaniu utraconego menedżera startu, ale wymaga nieco innej procedury.

Tip.png
Dobra wiadomość
Do przywrócenia GRUB'a nie musimy używać płyty instalacyjnej w tej samej wersji co zainstalowany system, czyli np. GRUB w Fedorze 10 może być odzyskany z płyty instalacyjnej Fedory 8

Odzyskujemy... Wkładamy płytę do napędu i uruchamiamy komputer. Po pojawieniu się menu wybieramy opcję "Rescue installed system". Po zatwierdzeniu polecenia czekamy na załadowanie systemu.

W następnych etapach zostaniemy poproszeni o:

  • wybór języka - wybieramy z listy ten, w którym czujemy się najlepiej
  • wybór klawiatury - uwaga jak wyżej
  • podjęcie decyzji o uruchomieniu interfejsów sieciowych - nie będą nam w tym przypadku potrzebne, więc odpowiadamy "Nie"
  • jeśli na komputerze został zainstalowany więcej niż jeden system Linuks (nie musi to być Fedora), będziemy musieli wybrać "System do ratowania". Jeśli na komputerze jest tylko jeden Linux, to krok ten zostanie pominięty.
  • po wybraniu systemu zostanie on automatycznie zamontowany i na ekranie pojawi się instrukcja dalszego postępowania.
  • zgodnie z instrukcją wpisujemy polecenie
     chroot /mnt/sysimage
  • po wykonaniu powyższego polecenia wpisujemy polecenie instalacji (UWAGA! /dev/sda to tylko przykład. Jeśli mamy dwa lub więcej dysków, musimy wpisać ten, na którym mamy przywrócić menedżera startu (GRUB/GRUB2). Powinien to być dysk, który BIOS rozpoznaje jako "bootujący".)
    • Dla GRUB 0.97 (GRUB 1)
      grub-install /dev/sda
    • Dla GRUB 2
      grub2-install /dev/sda


Restartujemy komputer poleceniem
reboot
Pamiętajmy o wyjęciu płyty z napędu CD-ROM.

Odzyskiwanie GRUB z wykorzystaniem LiveCD/LiveUSB

GRUBa możemy również odzyskać wykorzystując obraz Live nagrany na płytę CD/DVD lub pendrive USB.
Po uruchomieniu systemu Live z nośnika uruchamiamy terminal, uzyskujemy prawa roota (na obrazach Live Fedory użytkownik root ma hasło puste) i wydajemy następujące polecenia.

mount /dev/sda2 /mnt
mount /dev/sda3 /mnt/boot #tylko jeśli posiadasz osobna partycję /boot
mount --bind /dev /mnt/dev
mount --bind /sys /mnt/sys
mount --bind /proc /mnt/proc
chroot /mnt

W przykładzie przyjęto założenia:

  • główna partycja naprawianego systemu ("/") znajduje się na /dev/sda2
  • system posiada osobną partycję "/boot" na /dev/sda3

W rzeczywistym systemie, który przyjedzie nam naprawiać należy te wartości odpowiednio zmodyfikować.
Po wykonaniu polecenia "chroot /mnt" należy wykonać polecenie grub-install lub grub2-install tak, jak to zostało opisane powyżej w części "Procedura"

Uruchomienie systemu w trybie tekstowym

Często się zdarza, że system nie chce uruchomić się w trybie okienkowym. Powodem może być źle zainstalowany sterownik grafiki, błędy w konfiguracji itp Jakie by to nie były przyczyny X serwer odmawia współpracy. Jedną z dróg dostania się do systemu i naprawienia błędów jest uruchomienie go w trybie tekstowym.

Note.png
Notatki
Potrzebny podobny opis dla wersji GRUB 2

Najprostszym sposobem uruchomienia systemu w trybie tekstowym jest przekazanie podczas startu odpowiedniego parametru do jądra (ang.kernel). Należy to zrobić z menu GRUBa (obrazek poniżej)

GRUBm.jpg

Warn.png
UWAGA!
Jeśli nie widzisz powyższego menu podczas uruchamiania spróbuj zaraz po włączeniu komputera trzymać wciśnięty lewy <Shift>


Zgodnie z instrukcją widoczną pod menu, aby zmodyfikować argumenty jądra należy wcisnąć literę "a". Pokaże się linia z wywołaniem jądra wraz z parametrami. Na końcu tej linii należy dodać spację oraz cyfrę "3". Cyfra ta oznacza poziom uruchomienia systemu. Po dopisaniu dodatkowego argumentu należy wcisnąć <Enter> i system uruchomi się w trybie tekstowym.

Menu2u.png


Po zalogowaniu się (login: root) możemy przystąpić do naprawy trybu graficznego. Niestety nie da się przewidzieć wszystkich błędów jakie mogą się pojawić, ale w innym artykule opisano jak poradzić sobie w najczęściej spotykanych wypadkach.

Plik /boot/grub/grub.conf - typowe opcje

Typowy plik grub.conf wygląda podobnie do niżej przedstawionego:

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/sda2
#          initrd /initrd-version.img
# boot=/dev/sda1
 
# identyfikator domyślnie uruchamianego systemu '0' ozn. pierwszy na liście
# oczekiwanie na wybór w sekundach
# (nie wymagane) tapeta
# (nie wymagane) czy menu ma być widoczne
# (nie wymagane, nawet nie domyślne) jeśli system zawiedzie
# można uruchomić alternatywny w wymienionej kolejności 
# menu wyboru systemów
 
# numerki [0]...[3] są tylko do opisu
# typowy parametry uruchamianego systemu
# identyfikacja głównej partycji przy pomocy LABEL
	# włączony ładny graficzny boot tzw. plytmouth przy pomocy 'rhgb'
	# wypisywanie tylko najważniejszych komunikatów przy pomocy 'quiet'
# (nie wymagane) w razie problemów z bootowaniem uruchom 4 pozycję ([3]) na liście 
# identyfikacja głównej partycji przy pomocy UUID, ustalenie rozdzielczości vga=791
	# uruchamianie systemu na poziomie '3' czyli tylko czarna konsola
# (nie wymagane) jeśli wystąpi "kernel panic" ;) uruchomiony zostanie system 
	# wymieniony w parametrze fallback
# identyfikacja głównej partycji przy pomocy bezpośredniej ścieżki do urządzenia
	# włączenie "gadatliwych komunikatów" przez usunięcie quiet i rhgb
	# wyłączenie selinux w jądrze
# (nie wymagane) jeśli wystąpi "kernel panic" ;) uruchomiony zostanie następny system 
	# wymieniony w parametrze fallback
# logowanie bezpośrednio na root podając parametr '1'
# Uruchamianie systemu Windows
# wygląda na to, że można już używać 'root' zamiast 'rootnoverify'
# a Windows 7 nie potrzebuje nawet 'makeactive' ...chyba, nie wiem, bo nie mam ;)
# Nie można uruchomić systemu na USB / CD / DVD z poziomu GRUB ;(
# ale możesz zainstalować GRUB na USB / CD / DVD  ;)
 

Co oznaczają poszczególne wpisy:

  • default=0 – domyślnie wybrana do uruchomienia 1. pozycja z menu (numeracja zaczyna się od zera)
  • timeout=5 – liczba sekund przez ile będzie wyświetlane menu (o ile nie będzie ukryte)
  • splashimage=(hd0,0)/grub/splash.xpm.gz - obrazek tła. W przykładzie znajduje się on w katalogu /grub na pierwszej partycji pierwszego dysku. Zazwyczaj jest to osobna partycja /boot. Dostęp do pliku z poziomu systemu po ścieżce /boot/grub/splash.xpm.gz
  • hiddenmenu - ukrywa menu. Jeśli chcemy zobaczyć menu GRUB w czasie startu należy przed tym parametrem wstawić "#" (hash) albo usunąc tę linię i ustawić timeout > 0.
  • title Fedora ... - nowa pozycja menu GRUB. Za słowem kluczowym title następuje dowolny ciąg znaków opisujących system, który będzie z tej pozycji uruchamiany. Poniżej tej linii aż do następnej linii rozpoczynającej się slowem kluczowym title podajemy parametry uruchomieniowe danego systemu
    • root (hd0,0) - w przykładzie GRUB będzie szukał pliku jądra (vmlinuz) oraz pliku z obrazem RAM-dysku (initrd) na pierwszej partycji pierwszego dysku (znowu należy zwrócić uwagę na numerację dysków oraz partycji na dyskach - zaczynaja się od zera)
    • kernel - jądro systemu. Będzie uruchomione z następującymi parametrami:
      • /vmlinuz-2.6.27.19-170.2.35.fc10.x86_64 – plik zawierający skompilowane jądro systemu
      • ro - tryb tylko do odczytu (skrót od ang.read only)
      • root=LABEL=/ - wskazuje główną partycję, na której znajdują się pliki systemowe. W tym przypadku będzie to partycja oznaczona etykietą "/". Od wersji 9 w Fedorze standardowo używa się w tym miejscu wskazania partycji przez UUID (ang.Universally Unique Identifier). Parametr przyjmuje wtedy mniej czytelną, ale za to zawsze unikalną postać podobną do tej:
        root=UUID==e3b9abd3-3d2d-4f83-ba02-f358ec8ed4f7. Ma to szczególne znaczenie na komputerach, na których zainstalowany jest więcej niż jeden system linuksowy.
      • rhgb – uruchomienie z przesłonięciem komunikatów startu graficznym ekranem
      • quiet – tryb cichy. Nie wyświetla szczegółowych komunikatów startu systemu (nawet jeśli nie użyjemy parametru rhgb)
      • vga=792 lub heksadecymalnie vga=0x318 – ustala rozdzielczość konsoli tty (tryb tekstowy). Czyli terminale, które widzisz po naciśnięciu Ctrl+Alt+F1 używając GNOME/KDE/XFCE itp. Przykładowy nr 792 ozn. rozdzielczość 1024x768 i głębię kolorów 24-bit. Pozostałe rozdzielczości:
   Głębia   640x400 640x480 800x600 1024x768 1152x864 1280x1024 1600x1200  
  --------+--------------------------------------------------------------
   4 bits |    ?       ?     0x302      ?        ?        ?         ?
   8 bits |  0x300   0x301   0x303    0x305    0x161    0x307     0x31C
  15 bits |    ?     0x310   0x313    0x316    0x162    0x319     0x31D
  16 bits |    ?     0x311   0x314    0x317    0x163    0x31A     0x31E
  24 bits |    ?     0x312   0x315    0x318      ?      0x31B     0x31F
  32 bits |    ?       ?       ?        ?      0x164      ?

Żródła: FrameBuffer oraz VESA BIOS Extensions

Inne źródła pomocy, polecane strony

Osobiste
Przestrzenie nazw

Warianty
Działania
Wiki
Nawigacja
Inne
Narzędzia