2005 02 GRUB–program uruchomieniowy [Poczatkujacy]

background image

dla początkujących

52

luty 2005

GRUB – program

uruchomieniowy

Piotr Machej

C

zym jest program uruchomie-
niowy (ang. bootloader) i czy
jest mi potrzebny do szczę-
ścia? Jest to program umiesz-

czony w początkowych sektorach dysku
twardego (np. w MBRMaster Boot
Record
). BIOS, po uruchomieniu kompu-
tera i wykonaniu testów, przekazuje ste-
rowanie właśnie do programu zawartego
w MBR dysku wskazanego jako startowy,
czyli do naszego programu uruchomie-
niowego. Jego zadaniem jest załadowanie
systemu operacyjnego do pamięci i prze-
kazanie mu kontroli. Obecnie większość
popularnych programów uruchomienio-
wych pozwala na wybór jednego z sys-
temów zainstalowanych na dysku. Najpo-
pularniejsze tego typu programy, dostar-
czane wraz z dystrybucjami Linuksa, to
LILO i GRUB (Grand Unified Bootloader).
W niniejszym artykule postaram się przy-
bliżyć to drugie narzędzie.

Przykład użycia

Jestem tradycjonalistą. Nie ukrywam
tego. Z tego powodu przez bardzo długi
czas (szczególnie na studiach) urucha-
miałem Linuksa z dyskietki. Koledzy
z pokoju przez długi czas nie mogli dojść,
dlaczego uruchamia mi się inny system
niż im. No i po co w ogóle uruchamiać
system, na którym nie można pograć
w Dooma ? Później zacząłem korzystać
z LILO. Dzięki temu programowi rozru-
chowemu nie musiałem już pamiętać,
w której kieszeni została dyskietka.
Ponadto, mój komputer był już wtedy
bezpieczny od zakusów studenckiej
braci, więc mogłem sobie pozwolić na
odrobinę luksusu. I chociaż w kolej-

nych dystrybucjach miałem możliwość
zmiany na GRUB-a, przez kilka lat upar-
cie zostawałem przy LILO. Do zmiany
przekonało mnie moje własne lenistwo...
Po prostu, gdy po raz kolejny zapomnia-
łem uruchomić polecenie

lilo

po zmia-

nie w pliku konfiguracyjnym i musiałem
szukać dyskietki ratunkowej, powie-
działem: dość. Zainstalowałem GRUB-a
i od tej pory nie mam już powodów do
narzekań. I nawet jak przyjadą krewni,
to nie ma siły, aby uruchomili system,
którego nie powinni – przynajmniej
dopóki nie odgadną hasła.

Instalacja

Pakiety z programem GRUB można zna-
leźć w praktycznie każdej dystrybucji.
Co więcej, podczas instalacji dystrybu-
cji możemy wybrać program uruchomie-
niowy, z którego chcemy korzystać. Jeśli
zdecydujemy się na GRUB-a, to system
od razu postara się odpowiednio dosto-
sować jego konfigurację. Jeśli jednak nie
zdecydowaliśmy się na instalację GRUB-a,
musimy to zrobić teraz sami.

Na płycie CD/DVD

Na płycie CD/DVD znajdują się

narzędzia omawiane w artykule.

Rysunek 1.

Wersja GRUB-a obecnie

wykorzystywana w dystrybucjach nie jest
już rozwijana

background image

53

dla początkujących

grub

www.lpmagazine.org

Przede wszystkim upewnijmy się,

że nie jest już zainstalowany. W przy-
padku Auroksa wykorzystamy do tego
polecenie

rpm -q grub

. Jeśli pojawi się

napis pakiet grub nie jest zainstalowa-
ny
, to będziemy musieli zmienić ten stan
rzeczy. Pakiet z GRUB-em możemy zain-
stalować z kilku różnych źródeł. Pierw-
szym z nich są płyty, z których instalo-
waliśmy naszą dystrybucję. W przypadku
Auroksa pakiet znajduje się na pierwszej
płycie, więc po włożeniu jej do napędu
możemy wydać polecenia:

# mount /mnt/cdrom/
# rpm -Uvh /mnt/cdrom/Aurox/RPMS/

S

grub-0.94-5.i386.rpm

Drugim źródłem są repozytoria pakie-
tów. Jeśli korzystamy z jednego z syste-
mów zarządzania pakietami, to możemy
użyć odpowiedniego dla niego polece-
nia, np.:

# yum install grub
# apt-get grub install
# emerge grub

Oczywiście, wydajemy tylko jedno
z powyższych poleceń. Analogicznie
możemy wykorzystać system zarządzania
pakietami do aktualizacji wersji GRUB-a
(np. poleceniem

yum update grub

).

Mamy jeszcze trzecią możliwość.

Jeśli zależy nam na najnowszej wersji,
możemy ją pobrać ze strony domowej
projektu (http://www.gnu.org/software/
grub/
). Ze względu na rozpoczęcie prac
nad GRUB 2, starsza wersja (linia 0.9.x,
wciąż jeszcze wykorzystywana w dys-
trybucjach) została przemianowana na
GRUB Legacy. Tutaj mamy dostępne jedy-
nie źródła, których instalacja przebiega
zwykłym torem – po pobraniu i rozpako-
waniu pliku (

tar xzvf grub-0.95.tar.gz

)

wchodzimy do utworzonego katalo-
gu i wydajemy polecenia:

./configure

i

make

. Następnie, po uzyskaniu upra-

wnień administratora (poleceniem

su -

),

wydajemy ostatnie polecenie:

make

install

. Lepszym rozwiązaniem jest

jednak skorzystanie z pakietów dostęp-
nych dla naszej dystrybucji.

Teraz musimy skonfigurować nasze-

go GRUB-a, a następnie umieścić go na
dysku.

Podstawowa konfiguracja

Główny plik konfiguracyjny GRUB-a to
/boot/grub/grub.conf. Zazwyczaj istnie-
ją również dwa dowiązania symbolicz-
ne do tego pliku: /boot/grub/menu.lst
oraz /etc/grub.conf (tak jest w Auroksie
w innych dystrybucjach głównym pli-
kiem konfiguracyjnym może być jeden
z trzech wymienionych). Co prawda, nie
jest on konieczny, gdyż możemy korzy-
stać z linii poleceń GRUB-a, ale odpo-
wiednie skonfigurowanie pliku bardzo
ułatwi nam pracę. Dzięki temu nie
będziemy musieli każdorazowo przy uru-
chamianiu komputera wpisywać szeregu
poleceń, a w przypadku zainstalowania
wielu systemów będziemy mogli korzy-
stać z wygodnego menu.

Dyskietka ratunkowa

Przede wszystkim zadbajmy o to, aby
mieć dyskietkę lub płytę ratunkową. Dys-
kietkę mogliśmy utworzyć podczas insta-
lacji dystrybucji. Jeśli tego nie zrobiliśmy,
zazwyczaj możemy skorzystać z pierw-
szej płyty dystrybucji. Zazwyczaj nie ma
potrzeby korzystania z dyskietki ratunko-
wej, ale podczas zmiany programu roz-
ruchowego mogą pojawić się problemy,
które sprawią, że nie uda się nam uru-
chomić z systemów zainstalowanych na
dysku.

Uruchamianie Linuksa

Najpierw spróbujmy wykorzystać GRUB-a
do uruchamiania naszego Linuksa.
W tym celu powinniśmy mieć w pliku
/boot/grub/grub.conf przynajmniej cztery
linie:

title Aurox Linux (2.4.22-1)
root (hd0,7)
kernel /vmlinuz-2.4.22-1 ro root=LABEL=/
initrd /initrd-2.4.22-1.img

Pierwsza z nich, po słowie title, zawie-
ra tekst, który pojawi się w menu. Naj-
lepiej umieścić tu nazwę systemu (dys-
trybucji) oraz w nawiasie numer wersji
jądra. Oczywiście, możemy też podać
inne dodatkowe informacje (np. czy jest
wykorzystywany FrameBuffer), które

pomogą w zidentyfikowaniu pozycji
w menu.

Druga linia wskazuje, na jakiej par-

tycji jest umieszczony katalog /boot/.
W naszym przykładzie katalog /boot/
umieszczony jest na osobnej partycji,
/dev/hda8, natomiast główny katalog
systemowy / jest umieszczony na par-
tycji /dev/hda9 (oznaczonej etykietą / ).
Więcej o nazewnictwie partycji stoso-
wanym przez GRUB-a można przeczy-
tać w ramce Nazewnictwo dysków i par-
tycji
.

W kolejnej linii określamy, które

jądro chcemy załadować. Po słowie
kernel podajemy ścieżkę do pliku
z jądrem (w naszym przykładzie vmli-
nuz-2.4.22-1
), liczoną w stosunku do
partycji określonej linię wcześniej.
Ponieważ dla katalogu /boot/ w naszym
przykładzie mamy osobną partycję, to
podajemy ścieżkę /vmlinuz-2.4.22-1. Po
nazwie pliku jądra możemy podać
parametry jądra. W naszym przy-
padku określamy partycję z głów-
nym systemem plików (root). Wyja-
śnienie wartości LABEL=/ znajduje się
w ramce Nazewnictwo dysków i par-
tycji
. Należy zwrócić uwagę, że słowo
root w tej linii ma inne znaczenie niż
w linii wcześniejszej. Tutaj jest to para-
metr jądra, wskazujący główny system
plików, natomiast słowo root, występu-
jące w drugiej linii, to komenda GRUB-a,
pozwalająca wskazać urządzenie, wzglę-
dem którego będą opisywane następne
ścieżki dostępu.

Ostatnia linia nie jest konieczna,

lecz jeśli tylko mamy utworzony plik
initrd odpowiedni dla naszego jądra, to
powinniśmy z niego skorzystać. Polece-
nie

initrd

zawarte w tej linii ładuje RAM-

dysk. To, czy go wykorzystamy, zależy od
konfiguracji naszego jądra.

Rysunek 2.

Podstawowe menu GRUB-a

nie wygląda zbyt atrakcyjnie

Rysunek 3.

Dokumentację GRUB-a

możemy również znaleźć na stronie
WWW

background image

54

dla początkujących

luty 2005

Opcje ogólne

Oprócz powyższych czterech linii, warto
od razu dodać kilka innych, które określą
zachowanie naszego menu. Są to nastę-
pujące linie:

default=0
timeout=30

Umieszczamy je przed (podkreślam
– przed) wymienionymi wcześniej linia-
mi, zaraz na początku pliku /boot/grub/
grub.conf
. Pierwsza z nich określa, która
pozycja menu będzie domyślnie wybra-
na. Jak wiemy, GRUB liczy od zera,
więc w naszym przykładzie wybraliśmy
pierwszą (i na razie jedyną) pozycję w
menu. Druga opcja wskazuje, że przez 30
sekund (możemy ustawić inną wartość)
GRUB będzie czekał na naszą decyzję.
Jeśli nie wciśniemy żadnego klawisza, to
uruchomi automatycznie pozycję menu
wskazaną w opcji default. W przypadku,
gdy użyliśmy opcji timeout bez korzysta-
nia z opcji default, uruchomiona zostanie
pierwsza zdefiniowana pozycja w menu.

Zapisywanie GRUB-a na dysk

Teraz już możemy zapisać GRUB-a na
dysk (jeśli jeszcze tego nie robiliśmy).
Zazwyczaj będziemy chcieli umieścić go
na pierwszym dysku. Służy do tego pole-
cenie

grub-install /dev/hda

.

Jeśli później zmienimy zawartość

pliku konfiguracyjnego /boot/grub/grub.
conf
, to nie będziemy musieli ponow-
nie wykonywać tego polecenia. GRUB
automatycznie rozpozna zmiany w pli-
ku i podczas kolejnego uruchomie-
nia komputera wyświetli odpowied-
nie menu. W zasadzie jedyny przypa-
dek, gdy możemy chcieć wydać ponow-
nie to polecenie, to moment aktualizacji
GRUB-a do nowszej wersji.

Warto uruchomić ponownie kompu-

ter, aby sprawdzić, jak działa nasz GRUB.
Powinniśmy zobaczyć proste menu
z jedną pozycją do wyboru. Po jej zatwier-
dzeniu klawiszem [Enter] (lub odczeka-
niu 30 sekund) powinien załadować się
nasz Linux.

Uruchamianie różnych

systemów

Możliwości GRUB-a najlepiej wykorzysta-
my, jeśli mamy zainstalowane również inne
systemy operacyjne – bardzo wielu użyt-
kowników systemu spod znaku pingwi-
na korzysta również z Windows (choćby

po to, aby czasem pograć) lub z FreeBSD
(np. ze względu na studia czy pracę).

Inne dystrybucje Linuksa

W przypadku, gdy chcemy z pomocą
GRUB-a uruchamiać również inne dystry-
bucje Linuksa zainstalowane w naszym
komputerze, postępujemy tak samo, jak
w przypadku opisanym w rozdzia-
le Uruchamianie Linuksa. Wystarczy
dopisać kolejną sekcję zaczynają-
cą się od linii title i zawierającą odpo-
wiednie opcje. Tego samego sposo-
bu możemy zresztą użyć, gdy chcemy
przetestować nowe jądro w naszej dystry-
bucji. Przypuśćmy, że skompilowaliśmy
samodzielnie jądro i nazwaliśmy je
vmlinuz-new. Wówczas w pliku /boot/
grub/grub.conf
możemy na końcu dopi-
sać następujące linie:

title Aurox Linux (2.4.22-1a)
root (hd0,7)

kernel /vmlinuz-new ro root=LABEL=/
initrd /initrd-2.4.22-1a.img

Jeśli nie wygenerowaliśmy RAM-dysku,
to nie dopisujemy ostatniej linii, a zamiast
root=LABEL=/ musimy podać odpowiednią
nazwę partycji (w naszym przykładzie
root=/dev/hda9). Jeśli o tym zapomnimy, to
nasz system przestanie się ładować na eta-
pie montowania głównego systemu plików.

Windows, DOS

Najprostszym sposobem na uruchamia-
nie systemów z rodziny Windows jest
umieszczenie na końcu pliku /boot/grub/
grub.conf
następujących linii:

title DOS lub Windows
rootnoverify (hd0,0)
chainloader +1

Polecenie title już znamy. W linii rootno-
verify
wskazujemy partycję, na której jest

W pliku konfiguracyjnym GRUB-a (/boot/
grub/grub.conf
) zazwyczaj nie używa-
my znanych z Linuksa oznaczeń dysków
i partycji, takich jak hda, hdb2 i tym podob-
ne. Zamiast tego, widzimy oznaczenia typu
(fd0) lub (hd1,2). Jest to nieco mylące, na
początku, lecz można się szybko przyzwy-
czaić.

Opis (fd0) oznacza pierwszy napęd

dyskietek (należy pamiętać o nawia-
sach i braku odstępu pomiędzy znakami).
W przypadku dysków twardych nazwa
(hd0) odpowiada dyskowi hda, nazwa (hd1)
to dysk hdb itd. Jak więc widać, zamiast liter
używamy cyfr, zaczynając od zera. Aby
wskazać konkretną partycję, dodajemy jej
numer (znów licząc od zera) po przecinku.
Tak więc dla hda1 mamy (hd0,0), dla hda7
(hd0,6), a dla hdc3(hd2,2). Wystarczy
w zasadzie pamiętać, że numerujemy od 0,
a nie od 1. Jeśli mamy wątpliwości, możemy
przypisanie nazw do dysków sprawdzić
w pliku /boot/grub/device.map. Dla kompu-
tera posiadającego tylko jeden napęd dys-
kietek i jeden dysk twardy, plik ten powinien
mieć następującą zawartość:

(fd0) /dev/fd0
(hd0) /dev/hda

W niektórych dystrybucjach (np. w Red
Hat
i pochodnych – Fedora i Aurox) popu-

Nazewnictwo dysków i partycji

larne jest wskazywanie partycji za pomocą
etykiety. Jeśli w naszym pliku konfiguracyj-
nym mamy linię postaci:

kernel /vmlinuz-

2.4.22-1 ro root=LABEL=/

, to zwróćmy

uwagę na tekst root=LABEL=/. Zastępuje
on zwykły tekst postaci root=/dev/hda1 (jeśli
nasz katalog / jest umieszczony na partycji
hda1). Można zastanawiać się, co to daje i
czemu się tego używa. Zapis taki pozwala
nam swobodnie przekładać dysk w ramach
naszego komputera, np. w przypadku dokła-
dania nowego napędu lub nagrywarki. Jeśli
stosujemy etykiety, nie musimy wówczas
poprawiać plików konfiguracyjnych (m.in.
grub.conf i /etc/fstab).

Powstaje pytanie, jak odczytać i stwo-

rzyć etykiety dla partycji. Służy do tego
polecenie

e2label

/dev/hda1

, gdzie

zamiast /dev/hda1 wstawiamy nazwę par-
tycji ext2 lub ext3. Polecenie to spowoduje
wyświetlenie etykiety przypisanej do party-
cji. Jeśli chcemy nadać partycji nową etykie-
tę, to stosujemy zapis

e2label /dev/hda1

etykieta

.

Przy okazji warto zaznaczyć, że z ety-

kiet możemy korzystać tylko wtedy, gdy
ładujemy również odpowiadający jądru
RAM-dysk. Służy do tego polecenie

initrd

/initrd-2.4.22-1.img

, umieszczone pod

wspomnianą wcześniej linią pliku konfigu-
racyjnego.

background image

55

dla początkujących

grub

www.lpmagazine.org

umieszczony system, który chcemy zała-
dować. Polecenie to różni się od polece-
nia root tym, że wskazana partycja nie
jest montowana. Polecenie chainloader
przekazuje kontrolę do następnego pro-
gramu rozruchowego. Jak to działa? Jeśli
na partycji /dev/hda1 mamy zainstalowa-
ny tylko pojedynczy system (np. DOS lub
Windows 98), to zostanie on uruchomio-
ny. Jeśli mamy na dysku zainstalowane
systemy Windows 98 i Windows XP, to
program uruchomieniowy zainstalowany
przez Windows XP potrafi obsłużyć oba
te systemy. Wystarczy więc w poleceniu
rootnoverify wskazać partycję, na której
jest zainstalowany program uruchomie-
niowy Windows XP. Dzięki temu, po
wybraniu w menu GRUB-a pozycji DOS
lub Windows
, zobaczymy kolejne menu,
pozwalające nam wybrać pomiędzy Win-
dows 98
a Windows XP.

FreeBSD

Systemy z rodziny FreeBSD możemy uru-
chamiać w analogiczny sposób, jak Win-
dows
i DOS, czyli korzystając z poleceń
rootnoverify i chainloader. Możemy też
wskazać dokładnie na program /boot/
loader
z pomocą następujących linii
w pliku /boot/grub/grub.conf :

title FreeBSD
root (hd1,a)
kernel /boot/loader

Widać tu użycie innego nazewnictwa.
Wynika to stąd, że FreeBSD nazywa
swoje

partycje

literami

alfabetu,

a w dodatku wprowadza pojęcie slice
(tzw. plastra – natywnej partycji Fre-
eBSD
). Jeśli więc mamy FreeBSD zain-
stalowane na pierwszej partycji drugie-
go dysku, to zapis (hd1,a) powinien być
odpowiedni. Wyszuka on pierwszy slice,
na którym znajduje się partycja a. Jeśli
chcemy dokładnie sprecyzować, który

slice ma być zamontowany, to możemy
użyć postaci (hd1,0,a).

Uruchamianie Memtest86+

Od czasu do czasu warto przetestować
pamięć naszego komputera, aby zawcza-
su wykryć wszelkie problemy. Dwa naj-
lepsze programy przeznaczone do tego
celu to Memtest86 i Memtest86+. GRUB
może nam pomóc w ich uruchomieniu.

Wystarczy wybrać jeden z wymie-

nionych programów, gdyż obydwa czer-
pią nawzajem ze swoich kodów źródło-
wych. Osobiście polecam Memtest86+.
Najpierw musimy pobrać odpowied-
ni plik ze strony domowej programu
(http://www.memtest.org/ ). Odnajduje-
my sekcję Download (Pre-built & ISOs),
w której znajdują się już skompilowane
wersje. Następnie z sekcji odpowiada-
jącej najnowszej wersji (w chwili pisa-
nia artykułu była to wersja 1.40) pobie-
ramy plik znajdujący się pod odnośni-
kiem Download – Pre-Compiled Boota-
ble Binary (.gz)
. Plik ma zaledwie
około 40 kB, więc jego pobieranie nie
powinno potrwać zbyt długo. Dla pew-
ności możemy sprawdzić, czy plik jest
poprawny. W tym celu wchodzimy do
katalogu, w którym znajduje się nasz
plik i wydajemy polecenie:

# md5sum memtest86+-1.40.bin.gz

Oczywiście, jeśli pobraliśmy nowszą
wersję, to musimy odpowiednio dosto-
sować nazwę pliku. W wyniku powin-
niśmy otrzymać ciąg znaków (tzw. skrót
MD5), który porównujemy z ciągiem
znaków umieszczonym obok odnośni-
ka do pliku na stronie domowej progra-
mu. Jeśli oba ciągi są takie same, możemy
przystąpić do następnych czynności.

Czas na rozpakowanie pliku. Doko-

nujemy tego poleceniem

gzip -d mem-

test86+-1.40.bin

. Następnie uzyskujemy

uprawnienia superużytkownika (wydaje-
my polecenie

su -

i podajemy hasło użyt-

kownika root), po czym kopiujemy plik
memtest86+-1.40.bin do katalogu /boot/.
Teraz pozostało nam odpowiednio zmo-
dyfikować plik konfiguracyjny GRUB-a.
Otwieramy go w naszym ulubionym edy-
torze (np. Vim) i na końcu dopisujemy
dwie linie:

title MEMTEST
root (hd0,7)
kernel /memtest86+-1.40.bin

Oczywiście, zamiast MEMTEST możemy
wstawić inny odpowiadający nam tytuł.
Pamiętajmy, że te linie dotyczą wciąż
naszego przykładu. Jeśli katalog /boot/
mamy na innej partycji, to musimy odpo-
wiednio dostosować wartości poleceń
root i kernel.

Po zapisaniu zmian możemy już zre-

startować system, a w naszym menu
powinna pojawić się nowa opcja – MEM-
TEST
. Jeśli ją wybierzemy, uruchomi się
program Memtest86+ i od razu rozpocz-
nie testowanie pamięci. Opcje programu
są dostępne po wciśnięciu klawisza [c],
natomiast klawiszem [ESC ] możemy zre-
startować komputer, jeśli nie mamy czasu
na przeprowadzanie pełnego testu.

Upiększanie GRUB-a

Jeśli nie podoba nam się domyślny
wygląd menu GRUB-a, możemy spróbo-
wać je nieco ubarwić. Jedną z możliwo-
ści jest ustawienie lub zmiana rysunku
wyświetlanego w tle. Ponadto, możemy
dopasować kolory czcionki do naszych
upodobań.

Większość

dystrybucji

dostarcza

swoje własne tło dla GRUB-a, więc naj-
prawdopodobniej mamy już w pliku kon-
figuracyjnym odpowiednią opcję. Jest to
linia o zawartości podobnej do poniż-
szej:

splashimage=(hd0,7)/grub/splash.xpm.gz

Linia ta opcji splashimage przypisuje plik
splash.xpm.gz znajdujący się w katalo-
gu /grub/ na partycji /dev/hda8 (a więc
w naszym przykładzie plik ten znajduje
się w katalogu /boot/grub/ ).

Jeśli w naszym pliku nie ma takiej

linii, to należy ją dodać, odpowiednio
dopasowując wartości. Linia ta powin-
na być umieszczona przed pierwszą linią
title. Możemy ją wstawić zaraz poniżej
opcji timeout.

Powstaje pytanie, skąd wziąć rysunki.

Jak widać, w opcji splashimage nie poda-
jemy plików w popularnych formatach,
takich jak PNG czy JPG. Zamiast tego,
mamy tu plik w formacie XPM, skompre-
sowany programem Gzip. To nie jedyne
ograniczenie. Nasz obrazek może mieć
tylko 14 kolorów i rozdzielczość 640x480
pikseli. Nie brzmi to może zbyt zachęca-
jąco, ale zapewniam, że można przygo-
tować interesujące rysunki spełniające
te wymagania. Zacznijmy od obejrzenia
kilku przykładowych rysunków.

Rysunek 4.

Memtest86+ zajmuje niewiele

miejsca, lecz jest bardzo przydatny

background image

56

dla początkujących

luty 2005

Wybieranie tła

Na stronie http://vision.featia.net/linux/
grubsplash/
możemy znaleźć kilka przy-
kładów rysunków mogących posłu-
żyć za tło GRUB-a. Mamy tu do dys-
pozycji zarówno pliki w formacie GIF
(dzięki nim od razu możemy zapoznać
się z rysunkiem), jak i odpowiadające im
pliki w formacie XPM.GZ. Pobierzmy je
wszystkie na nasz dysk. Rysunki dostar-
czane z dystrybucją znajdują się w kata-
logu /boot/grub/, lecz jeśli umieścimy tam
również nasze, może powstać bałagan.
Zamiast tego, utworzymy podkatalog
splashes/ poleceniem

mkdir /boot/grub/

splashes/

(oczywiście, potrzebujemy

do tego uprawnień użytkownika root).
Następnie do tego katalogu kopiuje-
my wszystkie pobrane pliki z końców-
.xpm.gz.

Wydawałoby się, że powinniśmy

teraz zmodyfikować plik /boot/grub/
grub.conf
i w linii z opcją splashimage
podać nową ścieżkę do pliku. Owszem,
można to zrobić, wstawiając przykłado-
wo taką linię:

splashimage=(hd0,7)/grub/splashes/

S

seachair.xpm.gz

Jeśli jednak chcemy sami poeksperymen-
tować i sprawdzić, które tło najbardziej
nam odpowiada, to ciągłe restartowa-
nie systemu i modyfikowanie jednej linii
może być męczące. Na szczęście, można
to zrobić inaczej. Gdy już zrestartujemy
system i powita nas menu GRUB-a, wci-
skamy klawisz [c]. W ten sposób przej-
dziemy do linii poleceń GRUB-a, która
szerzej jest opisana w rozdziale Obsłu-
ga
. W linii tej najpierw wpisujemy

root

(hd0,7)

, a następnie wciskamy [Enter].

Pamiętamy, że polecenie to ustawia par-
tycję wykorzystywaną w następnych
poleceniach. Później wpisujemy

splash-

image

/grub/splashes/seachair.xpm.gz

i ponownie zatwierdzamy klawiszem
[Enter]. I już mamy wyświetlone nasze
tło. Klawiszem [Esc] możemy wrócić do
menu, aby zobaczyć, jak wygląda. Jeśli
będziemy chcieli wypróbować inne tła,
znów wciskamy klawisz [c] i postępujemy
tak, jak wcześniej (nie musimy ponownie
używać polecenia root – wystarczy samo
splashimage). No właśnie, ale pewnie
zapomnieliśmy już, jak się nazywa-
ły poszczególne pliki. Nie martwmy się.
Linia poleceń GRUB-a obsługuje uzupeł-
nianie nazw, więc możemy wpisać słowa

splashimage /

(pamiętajmy o znaku / ),

a następnie wcisnąć klawisz [Tab]. Pojawi
się nam spis dostępnych nazw katalo-
gów i plików. W ten sposób dopisujemy
dalszy ciąg ścieżki (/grub/splashes/ lub
/boot/grub/splashes/ zależnie od naszej
konfiguracji) i znów wciskamy klawisz
[Tab] w celu wyświetlenia nazw plików
z tłami.

Gdy już się zdecydujemy na konkret-

ne tło, możemy uruchomić system (wy-
chodzimy klawiszem [Esc] aż do menu
i wybieramy pozycję z naszym Linuk-
sem), a następnie dopisać odpowiednią
linię do pliku /boot/grub/grub.conf.

Tworzenie własnego tła

Oprócz gotowych plików z tłami, które
można znaleźć w Internecie, każdy
pewnie chciałby mieć możliwość stwo-
rzenia całkiem własnego. Oczywi-
ście, nic nie stoi na przeszkodzie. Jeśli
chcemy po prostu przekonwertować
posiadany obrazek do skompresowane-
go formatu XPM, możemy wydać pole-
cenia:

# convert -resize 640x480 -colors 14

S

picture.jpg picture.xpm
# gzip picture.xpm

Polecenie convert należy do pakietu Ima-
geMagick
. Jeśli nie jest on zainstalowany
w naszym systemie, możemy go zainsta-
lować z płyt dystrybucji lub z repozyto-
rium (analogicznie, do instalacji pakietu
GRUB-a). Opcja -resize 640x480 powo-
duje zmianę rozdzielczości rysunku do
wymaganego rozmiaru, a opcja -colors 14
redukuje paletę kolorów do czternastu.
Nazwy picture.jpg i picture.xpm to odpo-
wiednio nazwy pliku wejściowego
(z konwertowanym rysunkiem) i wyjścio-
wego (z tłem dla GRUB-a). Drugim pole-
ceniem kompresujemy rysunek progra-
mem Gzip.

Powyższa metoda jest szybka,

lecz czasem uzyskane rezultaty wołają
o pomstę do nieba. Lepszym rozwiąza-
niem jest uruchomienie programu GIMP,
wczytanie pliku, który chcemy konwer-
tować, a następnie zmiana rozmia-
ru obrazu (Obraz–>Przeskaluj obraz)
i liczby kolorów (Obraz–>Tryb–> Indek-
sowany
). Dzięki temu możemy poeks-
perymentować z różnymi opcjami
obrazu. Ponadto, może okazać się, że
konieczne będzie ręczne poprawianie
całego rysunku, zanim uzyskamy zado-
walający efekt.

Innym wyjściem jest stworzenie

pustego rysunku o wymiarach 640x480
i palecie 14 kolorów, a następnie nary-
sowanie na nim tego, co nam się
podoba. Nie każdy jednak ma żyłkę
artystyczną.

Wybór metody zależy od nas. Z uzy-

skanym plikiem postępujemy tak, jak to
opisaliśmy w rozdziale Wybieranie tła.

Niektórzy Czytelnicy mogą zaintere-

sować się, dlaczego kompresujemy tła
przed wykorzystaniem ich w GRUB-ie.
Można wykorzystać również pliki XPM
nieskompresowane programem Gzip.
Różnica będzie dla nas w sumie nieod-
czuwalna, lecz dla zasady lepiej kom-
presować. Przy obecnych komputerach
mniej czasu zajmuje wczytanie z dysku
skompresowanego (a więc i mniejsze-
go) pliku, a następnie rozkompreso-
wanie go w pamięci, niż wczytanie
z dysku większego pliku, nie poddane-
go kompresji.

Dobór kolorów

Oprócz ustalenia własnego tła, możemy
pokusić się o zmianę kolorów czcion-
ki wykorzystywanej w menu. Służą do
tego opcje foreground i background
ustawiane w początkowej części pliku
/boot/grub/grub.conf (możemy je umie-
ścić nawet przed opcją splashimage).
Opcje te przyjmują jako parametry kolory

Rysunek 5.

Rysunek na tło powinniśmy

dobrać tak, aby menu było czytelne

Rysunek 6.

Nawet korzystając tylko z 14

kolorów można stworzyć ładne rysunki

background image

57

dla początkujących

grub

www.lpmagazine.org

zapisane w szesnastkowym formacie RGB
(Red, Green, Blue). Jeśli będziemy chcie-
li uzyskać białe litery z czarnym tłem, to
użyjemy opcji:

foreground ffffff
background 000000

Oczywiście, możemy też używać innych
kolorów, jak czerwony (ff0000), zielo-
ny (00ff00), niebieski (0000ff ) i inne.
Jeśli chcemy w wygodny sposób dopa-
sować kolory do naszego tła i gustu,
możemy wykorzystać tę samą metodę,
którą stosowaliśmy przy wybieraniu tła.
Tym razem, po wejściu do linii poleceń
GRUB-a, wydajemy odpowiednie pole-
cenia

foreground ffff00

i

background

ff00ff

(oczywiście, eksperymentując

z kolorami).

Oprócz tego, istnieje możliwość

zmiany koloru podświetlenia i tła
menu. Wykorzystywane jest do tego
polecenie color, które możemy umie-
ścić w pliku konfiguracyjnym przed
poleceniami foreground i backgro-
und
. Listę kolorów dostępnych w tym
poleceniu można uzyskać korzysta-
jąc z polecenia

help color

w linii pole-

ceń GRUB-a (jak również w dokumen-
tacji GRUB-a

info grub

). Przykładowe

wywołanie tego polecenia (dające cał-
kiem przyjemny kolor) ma postać:

color

cyan/blue white/blue

.

Obsługa

Jeśli zainstalowaliśmy GRUB-a na
dysku i stworzyliśmy dla niego plik
konfiguracyjny, to podczas uruchamia-
nia komputera powinno nas przywi-
tać menu GRUB-a. Możemy poruszać
się po nim z pomocą strzałek kurso-
ra, a klawiszem [Enter] wybierać pozy-
cję, którą chcemy uruchomić. Oprócz
tego, mamy jednak do dyspozycji kilka
innych funkcji.

Modyfikacja pozycji menu

Przypuśćmy, że chcemy poekspery-
mentować z innymi parametrami jądra.
Możemy w tym celu utworzyć nowe
sekcje title w pliku konfiguracyjnym.
Lepszym rozwiązaniem jest modyfikacja
parametrów jądra podczas uruchamia-
nia systemu. Jak tego dokonać? Prze-
suńmy zaznaczenie w menu na pozycję
naszej dystrybucji Linuksa. W naszym
przykładzie jest to linia Aurox Linux
(2.4.22-1)
. Zamiast wcisnąć [Enter], wci-
skamy klawisz [e]. Zobaczymy wyświe-
tloną zawartość tej sekcji title. Pomię-
dzy liniami możemy przemieszczać się
podobnie jak w menu. Jeśli chcemy
zmodyfikować jakąś linię, wciskamy
[Enter]. Spróbujmy w linii z poleceniem
kernel dopisać opcję jądra vga=791.
W naszym przykładzie linia wygląda-
łaby tak:

kernel /vmlinuz-2.4.22-1

S

ro root=LABEL=/ vga=791

Zmiany zatwierdzamy klawiszem [Enter].
Wprowadzona właśnie opcja powoduje,
że system, zamiast w standardowym
trybie tekstowym, uruchomi się z wyko-
rzystaniem bufora ramki, ustawiając roz-
dzielczość ekranu na 1024x768 pikseli
z ponad 16 tysiącami kolorów.

Jeśli chcielibyśmy dodać nową

linię, możemy skorzystać z klawiszy [o]
i [O ]. Pierwszy z nich powoduje doda-
nie nowej linii po aktualnie zaznaczo-
nej linii, a drugi – przed nią. Niepo-
trzebne linie możemy skasować klawi-
szem [d ].

Gdy jesteśmy już zadowoleni z wpro-

wadzonych zmian, wciskamy klawisz
[b], co powoduje uruchomienie edyto-
wanej pozycji wraz z wprowadzonymi
zmianami. Jeśli wolimy zrezygnować ze
zmian, możemy klawiszem [Esc] wrócić
do głównego menu.

Linia poleceń

Jeszcze większe możliwości daje nam linia
poleceń dostępna w GRUB-ie. Korzystali-
śmy z niej już w rozdziale Wybieranie
tła
, lecz teraz opiszemy ją bardziej szcze-
gółowo. Aby się do niej dostać, w menu
GRUB-a wciskamy klawisz [c]. Mamy tu
do dyspozycji cały szereg mniej lub bar-
dziej przydatnych poleceń. Ich spis uzy-
skamy wciskając po prostu klawisz [Tab].
Z pewnością zwrócimy uwagę, że na
spisie znajduje się wiele znanych nam już

poleceń, z których korzystaliśmy podczas
tworzenia menu – chainloader, kernel,
initrd, root i inne. Jak więc widać, linię
poleceń również możemy wykorzystać
do uruchamiania systemów zainstalo-
wanych na naszym komputerze. Zresztą,
gdybyśmy nie utworzyli pliku konfigura-
cyjnego /boot/grub/grub.conf, to przy uru-
chamianiu komputera moglibyśmy korzy-
stać tylko z linii poleceń GRUB-a. Jeśli
w takim przypadku chcielibyśmy urucho-
mić Memtest86+ (zainstalowany zgodnie
z wcześniej podanymi wskazówkami),
musielibyśmy wydać następujące pole-
cenia:

root (hd0,7)
kernel /memtest86+-1.40.bin
boot

Jedyna różnica pomiędzy zawartością
grub.conf i poleceniami przy ręcznym
uruchamianiu systemu, to dodatkowe
polecenie

boot

powodujące załadowanie

wskazanego jądra.

Warto pamiętać, że w czasie wprowa-

dzania poleceń i nazw plików możemy
korzystać z autouzupełniania – wystar-
czy wcisnąć klawisz [Tab], a wyświetlone
zostaną możliwe wartości.

Do czego jeszcze może przydać się

nam linia poleceń? Z pomocą polecenia
cat możemy sprawdzić zawartość dowol-
nego pliku, np.

cat /etc/fstab

. Wynika

z tego, że osoba mająca dostęp do linii
poleceń GRUB-a może przeczytać prak-
tycznie dowolny plik (np. /etc/shadow
zawierający zakodowane hasła). Tym
jednak będziemy się martwić za chwilę,
w rozdziale Zabezpieczenia. Niezależnie
od zagrożeń, polecenie cat może przy-
dać się nam, jeśli w czasie eksperymen-
tów będziemy chcieli sprawdzić jakieś
ustawienia.

Inne przydatne polecenie to find,

pozwalające nam sprawdzać, na której
partycji znajduje się wskazany plik.
Powinniśmy podawać bezwzględną
ścieżkę do pliku, np.

find /boot/grub/

stage1

lub

find /grub/stage1

– polece-

nie to zwróci nam nazwę partycji, jaką
powinniśmy wpisać w linii root w pliku
konfiguracyjnym GRUB-a.

Warto zapoznać się z innymi pole-

ceniami. Bardzo przydatna jest pomoc,
którą możemy uzyskać wpisując

help

nazwa_polecenia

.

Linię poleceń GRUB-a można rów-

nież uruchomić z konta użytkownika root

Rysunek 7.

Skrypt Grubconfig może nam

ułatwić konfigurowanie GRUB-a

background image

58

dla początkujących

luty 2005

wpisując polecenie

grub

. Mamy wówczas

podobne możliwości, jak w opisywa-
nej wyżej linii poleceń, lecz oczywiście
z niektórych poleceń nie możemy korzy-
stać (dotyczy to przykładowo polecenia
splashimage).

Zabezpieczenia

Menu oferowane przez GRUB-a jest
bardzo wygodne, lecz czasem daje zbyt
wiele możliwości. Jak przekonaliśmy
się w poprzednim rozdziale, użytkow-
nik mający dostęp do GRUB-a może
dowolnie zmieniać parametry wywo-
łania systemu, a nawet uzyskać dostęp
do chronionych plików. Na szczęście,
GRUB pozwala na zablokowanie takie-
go dostępu.

Służy do tego hasło broniące dostę-

pu do edycji pozycji w menu, jak rów-
nież do linii poleceń. Jeśli chcemy,
to nawet uruchomienie poszczegól-
nych systemów może wymagać poda-
nia hasła.

Jeśli chcemy zabezpieczyć w ten

sposób nasz system, to – oczywiście –
potrzebujemy do tego uprawnień użyt-
kownika root. Najpierw wygenerujemy
nasze hasło. Uruchamiamy linię pole-
ceń GRUB-a

grub

. Tym razem sko-

rzystamy z polecenia

md5crypt

. Po jego

wydaniu zostaniemy zapytani o hasło.
Wpisujemy je (niech tylko nie będzie
zbyt łatwe do odgadnięcia) i wciskamy
[Enter]. W odpowiedzi zobaczymy linię
z zakodowanym hasłem.

Teraz edytujemy nasz plik konfigu-

racyjny (np.

vim /boot/grub/grub.conf

)

i na jego początku umieszczamy linię
o treści:

password --md5

S

$1$ikVvf0$naEIsTUTM5yM1MYrx3Ms7.

Oczywiście, zamiast podanej tu warto-
ści należy wkleić wynik działania pole-
cenia md5crypt. Wykorzystanie podanej
wyżej wartości nie jest dobrym pomy-
słem, gdyż jest to zakodowane słowo
password. Skoro w pliku przechowu-
jemy hasło, powinniśmy się upewnić,
że nie będzie ono łatwe do odczytu.
W tym celu ustawiamy odpowiednio
prawa dostępu do pliku:

# chmod 600 /boot/grub/grub.conf

Ta zmiana wystarczy, aby przy urucha-
mianiu komputera w menu GRUB-a

były dostępne tylko dwie możliwości
– uruchomienie jednego z systemów
lub wciśnięcie klawisza [p]. Jeśli po
wciśnięciu klawisza [p] podamy pra-
widłowe hasło (to, które wpisywaliśmy
w poleceniu md5crypt), to dopiero
wtedy uzyskamy dostęp do możliwości
opisywanych w rozdziale Obsługa.

Nadal użytkownik może urucho-

mić dowolną pozycję w menu, a to nie
zawsze musi nam odpowiadać. Skoro
już mamy ustalone hasło, wystarczy
teraz w sekcji title, którą chcemy zablo-
kować, umieścić polecenie

lock

. Musi

ono być umieszczone od razu pod linią
title, gdyż użytkownik może wykony-
wać wszystkie polecenia aż do napo-
tkania polecenia

lock

. W tym momen-

cie zostaje zapytany o hasło i dopóki
nie poda prawidłowego, nie będzie
mógł wykonać dalszych poleceń. Jak
więc widać, umieszczanie polecenia
lock na końcu sekcji title zazwyczaj
mija się z celem – lepiej umieścić je na
początku.

Należy zaznaczyć, że zabezpieczenie

to nie jest doskonałe. Nie można liczyć,
że założenie hasła na GRUB-a zabezpie-
czy nas przed niecnymi zamiarami osób
mających bezpośredni dostęp do kom-
putera. Zawsze jednak może zwiększyć
wygodę korzystania z komputera oraz
zabezpieczyć nas przed mniej doświad-
czonymi użytkownikami.

Ułatwianie konfiguracji

Jeśli nie chcemy ręcznie zmieniać pliku
konfiguracyjnego GRUB-a, możemy
skorzystać z jednego z konfigurato-
rów. Najlepszym rozwiązaniem wydaje
się być moduł Webmina dostępny
w sekcji Sprzęt>Inicjator systemu
GRUB
. Oprócz tego, mamy do dyspo-
zycji działający w trybie tekstowym
skrypt Grubconfig oraz przeznaczony
dla środowiska graficznego program
GrubConf. Pierwszy z nich jest mało
intuicyjny, lecz ma kilka ciekawych
opcji, a przy tym nie wymaga instala-
cji – wystarczy rozpakować archiwum
i można go uruchomić.

Osoby samodzielnie kompilują-

ce jądro prawdopodobnie zainteresu-
ją się programem Install Kernel, który
nie tylko zwalnia nas od konieczności
wykonania szeregu poleceń, ale rów-
nież automatycznie uaktualnia konfi-
gurację programów uruchomieniowych
(oprócz GRUB-a, obsługuje też LILO).

Jeśli chcemy całkiem uprościć sobie

ustawianie tła menu GRUB-a, możemy
skorzystać z programu GrubTk. Wystar-
czy w nim podać tylko nazwę pliku
z rysunkiem, a program zajmie się
resztą.

A jeśli chcemy zobaczyć, do czego

jeszcze można wykorzystać GRUB-a, to
zainstalujmy sobie grę GRUB Invaders.
Jest ona uruchamiana przez GRUB-a
i nie wymaga do działania żadnego
systemu operacyjnego.

Zakończenie

Wydawałoby się, że program urucho-
mieniowy to proste narzędzie pozwa-
lające tylko wskazać, który system ma
być uruchomiony. Tymczasem, okazuje
się, że jest to program, który możemy
stosunkowo łatwo dopasować do
swoich potrzeb. Z jego pomocą uru-
chomimy nie tylko systemy, ale rów-
nież takie programy, jak Memtest86.
GRUB może stanowić barierę bronią-
cą innym użytkownikom dostępu do
naszego systemu, równocześnie nie
zmniejszając naszej wygody obsługi.
Dodatkowo, może witać nas naszym
ulubionym rysunkiem. Warto zapoznać
się z jego dokumentacją i poznać inne
jego funkcje.

W Internecie:

• Strona domowa GRUB-a:

http://www.gnu.org/software/grub/

• GNU GRUB splashimage howto:

http://ruslug.rutgers.edu/~mcgrof/
grub-images/

• Różne tła dla menu GRUB-a:

http://vision.featia.net/linux/
grubsplash/

• Strona domowa Memtest86:

http://www.memtest86.com/

• Strona domowa Memtest86+:

http://www.memtest.org/

• Strona domowa skryptu Grubconfig:

http://www.tux.org/pub/people/kent-
robotti/looplinux/index.html

• Strona domowa programu GrubConf:

http://grubconf.sourceforge.net/

• Strona domowa programu Install

Kernel:
http://installkernel.tripod.com/ik/
index.html

• Strona domowa programu GrubTk:

http://freshmeat.net/projects/grubtk/

• Strona domowa gry GRUB Invaders:

http://www.erikyyy.de/invaders/


Wyszukiwarka

Podobne podstrony:
EDW 2005 02
2005 02 39
2005 02 Syntezator dzwonków Nokia Composer
2005 02 32
gazeta prawna 2005 02 14 ksiegowosc i place GLZUXXV4ECFZADIBGJQODAQFSAGAGCCRCUPDZZA
GG 2005 3 02
2005 02
2008 02 Multimedia dla początkujących użytkowników [Poczatkujacy]
2005 02 Status immunologiczny
Chip 2005 02
2005 02 38
2005 02 Szkoła konstruktorów klasa II
2005 02 33
2005 02 26
2005 02 Trzykanałowy mikser ze wzmacniaczem
2009 02 Podstawy MySQL [Poczatkujacy]
gazeta+prawna+2005 02 10+ +turystyka GV5XW6JO35ZJ7NZ6577HLQBNGBBTMUYVZHFIZ5Q
cefmr wp 2005 02

więcej podobnych podstron