Grub - instalacja i konfiguracja |
..........:::::::::::::::Grub - instalacja i konfiguracja:::::::::::::::..........
W tym arcie opisze instalacje, konfiguracje i najczęstsze problemy związane z grubem.
Na początek może troche teorii :)
GRUB to skrót od GRand Unified Bootloader.
Jest on boot loaderem (programem rozruchowym), czyli programem odpowiedzialnym za załadowanie systemu do pamięci. Nagłówek boot loadera najczęściej umieszcza się w MBR (master boot record), czyli pierwszy sektor dysku. MBR zawiera takżę tablice partycji. Grub obsługuje wiele systemów operacyjnych i wiele systemów plików. Grub oraz Lilo są najpopularniejszymi boot loaderami. Jest on dostarczany z wieloma dystrybucjami (np Fedora i pochodne). Grub rozpowrzechaniny jest w postaci kodów źródłowych lub goowych pakietów binarnych.
..........:::::::::::::::Instalacja:::::::::::::::..........
a) źródła
Instalacja ze źródeł jest bardzo prosta:
./configure
make
make install (jako root)
b) pakiety
Jeśli masz pakiety binarne (np deb lub rpm) to wydajesz polecenia:
dpkg -install grub.deb (dla debów)
rpm -ivh brub.rpm (dla rpmów)
c)repozytoria
W nawiasach napisałem przykładowe dystrybucje w jakich są dane systemy zarządzania pakietami
apt-get install grub (Debian, Ubuntu)
yum install grub (Fedora, Aurox )
emerge grub (Gentoo)
urpmi grub (Mandrake)
..........:::::::::::::::Konfiguracja:::::::::::::::..........
Plik konfiguracyjny gruba to: /boot/grub/grub.conf. Plik można edytować tylko z poziomu roota (no chyba że zmieniłeś mu chmody). Przykladowy plik konfiguracyjny może wyglądać np tak:
default=0
timeout=5
splashimage=(hd1,1)/boot/grub/splash.xpm.gz
hiddenmenu
title Linux (wersja jajka + jakies dodatkowe informacje)
root (hd1,1)
kernel /boot/vmlinuz-wersja_jajaka ro root=LABEL=/ rhgb quiet
initrd /boot/initrd-wersja_jajka.img
title Windown
rootnoverify (hd0,0)
chainloader +1
Nie wklejałem linijek, które są komentarzami.
Teraz może przeanalizujmy po kolei linijki:
default - tutaj podajemy numer systemu (indeks od 0), który ma sie uruchomić jeżeli użytkownik nic nie wybierze
timeout - tutaj ustalamy po jakim czasie uruchomi sie system ustalony w default jezeli użytkownik nic nie wybierze
splashimage - tutaj podajemy ścieżke do obrazka, który ma być tłem.
Jeżeli chcesz wstawić tu własne tło to musi ono być w formacie xpm i dodatkowo skompresowane gzipem (*.xpm.gz). Ponadto obrazek powinien mieć rozdzielczość 640x480 i 14 kolorów.
hiddenmenu - ta linijka powoduje, że dopóki użytkownik nie naciśnie jakiegoś klawisza, to menu będzie nie widoczne. Będzie widoczna tylka title domyślnego systemu (default) i czas jaki pozostał do jego autoymatycznego uruchomienia.
Dalsza część odpowiada już za pozycje w menu, czyli to co będzie sie uruchamiać.
#Linux
title Linux (wersja jajka + jakies dodatkowe informacje)
root (hd1,1)
kernel /boot/vmlinuz-wersja_jajaka ro root=LABEL=/ rhgb quiet
initrd /boot/initrd-wersja_jajka.img
title - linijka czysto informacjna. To co znajdzie sie za słowem title będzie wyświetlane menu.
root - wskazuje na partycje z katalogiem /boot
kernel - tutaj wskazujemy, które jądro ma być wykorzystywane.
initrd - ścieżka do pliku initrd
#Windows
title Windown
rootnoverify (hd0,0)
chainloader +1
rootnoverify - partycja
chaainloader - przehcodzimy do nastepnego loadera. Czyli jeśli np mamy zainstalowane 2 windowsy np 98 i xp to zostanie uruchmiony boot loader windowsa xp. Jezeli masz jednego windowsa to zostanie on po prostu uruchomiony.
Możemy także za pomocą gruba uruchomić inne systemy np BSD.
Oto przykład konfiguracji dla FreeBSD:
title FreeBSD (wersja)
root (hd2,b)
kernel /boot/loader
Tutaj chyba nie trzeba niczego tłumaczyć :)
Konfiguracja dla OS/2:
title OS/2 (jakies dodatkowe info)
root (hd0,4)
makeactive
chainloader +1
makeactive - partycja aktywna
Inne opcje gruba:
color - zmiana koloru podświetlenia
forecolour - kolor czcionki
password -- md5 ................... (w miejsce kropek wstawiamy zaszyfrowane hasło)
Hasłą są szyfrowame algorytmem md5. Żeby zaszyfrować jakieś hasło w linii komend gruba należy wydać polecenie md5crypt i nastepnie wpisać hasło. Żeby zaszyfrować hasło nie wchodząc do linii komend należy uruchomić grub-md5-crypt znajdujący się w /sbin.
Grub daje nam takżę możliwość zmiany ustawień podczas działania samego boot loadera, czyli jeszcze przed uruchomieniem systemu. Jest to bardzo przydatna opcja, ponieważ bardzo nie wygodne by było "eksperymentoewanie" z opcjami jeżeli musielibyśmy za każdym razem wchodzić do systemu edytować /boot/grub/grub.conf i ponownie resetowac komputer.
Jeżęli chcesz np edytować wpis dotyczący linuxa, to w menu trzeba zaznaczyć go i wcisnąć przycisk e. Grub posiada też linie komend , do której można wejść poprzez wciśnięcie klawisza c. Wszystkie komendy można zobaczyć po wciśnieciu klawisza tab.
..........:::::::::::::::Awaria Gruba:::::::::::::::..........
Czasem może się zdarzyć, żę grub po prostu przestanie działać (zdarzyło mi się tak 2 razy), wtedy dostępna była tylko linia komend. Na szczęście z niej można wystartować system :)
Wystarczy wpisać to co powinno być w grub.conf dotyczące danego systemu z dodatkową linjką:
boot
na końcu np:
rootnoverify (hd0,0)
chainloader +1
boot
Jest jeszcze jeden dość częsty problem, gdy mamy na dysku np windowsa i linuxa i coś stanie się z windowsem. Po ponownym zainstalowaniu windowsa nie możemy uruchomić gruba bo mbr został zajęty przez boot loadera windowsowego. Co prawda z linuxem nic sie nie dzieje, ale po prostu nie możemy do niego wejść. Na szczeście można gruba "przywrócić". Zakładam, że korzystasz z fedory, lub pochodnych:
Najpierw odpal kompter z 1 płyty instalacyjnej (lub rescue cd). Gdy komputer wystartuje wpisz linux rescue. Następnie wydaj następpujące polecenia:
chroot /mnt/sysimage
grub-install /dev/dysk
exit
exit
I to wszystko :)
Strona Gruba: [ www ]
Polecam też: dokumentacje gruba: [ www ]
To by było na tyle. Mam nadzieje, że udało mi się choć troche przybliżyć przede wszystkim konfiguracje gruba.
Jak macie jakieś pytania, uwagi, albo jeśli napisałem coś głupiego to piszcie na email :)
Greetz dla: Hexodar, Illusion, Sorrror, Yig, Komar, e2e, haxite.org, #haxite, hx_project_group, wszystkich, których znam (albo i nie :D)
Ghost