2009 04 GRUB [Poczatkujacy]

background image

GRUB

12

kwiecień 2009

13

www.lpmagazine.org

lin

ux

@

so

ftw

ar

e.

co

m

.p

l

GRUB

GRUB, czyli Grand Unified Bootloader, to menadżer bootowania systemu pozwalający uruchomić
dowolny system z każdego zainstalowanego w komputerze dysku. Stojąc pomiędzy procedurą POST
komputera, a załadowaniem jądra systemu. Posiada on większe możliwości niż samo uruchomienie
systemu.

Sylwester Zdanowski

G

RUB jest boot loaderem ładującym system
operacyjny. Stwierdzenie krótkie i prawdzi-
we, jak jednak program działa i dlaczego jest
potrzebny? Po włączeniu komputera BIOS

potrafi odczytać jedynie pierwsze 512 bajty urządzenia, z
którego ma być uruchomiony system. Jest to główny sektor
rozruchowy (ang. MBR). W sytuacji, gdy na dysku znajduje
się większa ilość systemów, jest to niewystarczające.

Ze względu na niewielkie możliwości BIOS-u, wyko-

rzystywany on jest jedynie do ładowania pierwszej części
boot leadera. Część ta pozwala na wczytanie właściwej czę-
ści programu przez niektórych nawet zwanej minimalnym
systemem operacyjnym. W tym miejscu program lądujący,
zależnie od swoich możliwości, pozwala na interakcje.

Historia GRUB-a

Idea stworzenia boot loadera o większych możliwościach niż
dostępne programy powstała w roku 1995, gdy Erich Boleyn
próbował uruchomić na jednej maszynie GNU HURD razem
z mikrokernelem Mach 4. W efekcie tych starań postanowił ra-
zem z Brianem Fordem stworzyć uniwersalny boot loader po-
zwalający uruchamiać wiele systemów. Program ten wraz ze

specyfikacją multiboot miał być lekarstwem na mnogość nie-
kompatybilnych ze sobą sposobów uruchamiania systemów.

Erich zaczął od modyfikowania boot loadera FreeBSD,

doszedł jednak do wniosku, iż łatwiej będzie napisać nowy
program niż rozwijać istniejące narzędzie. Nowo powsta-
łym programem był GRUB. Opiekę nad programem w ro-
ku 1999 przejęli Gordon Matzigkeit i Yoshinori K. Okuji,
przyjmując program jako oficjalny pakiet GNU.

Specyfikacja multiboot ujednolicająca sposób urucha-

miania systemu została przyjęta przez systemy Linux, Fre-
eBSD, NetBSD, Mach, VSTa. Jednak możliwość urucha-
miania różnych systemów operacyjnych nie jest wyłączną
cechą GRUB-a. Znacznie starszy boot loader LILO rów-
nież nie ma z tym problemów. Nie posiada on jednak wielu
możliwości GRUB-a:

• nie dysponuje linią poleceń;
• nie wspiera uruchamiania systemu przez sieć;
• zmiana konfiguracji wymaga nadpisania MBR, w efek-

cie niemożliwe może stać się uruchomienie boot lo-
adera. W przypadku GRUB-a nie uruchomi on się je-
dynie po nadpisaniu MBR przez inny system.

Dla Początkujących

background image

GRUB

12

kwiecień 2009

13

www.lpmagazine.org

Dzięki tej przewadze GRUB stał się najpopu-
larniejszym boot loaderem.

Podstawowe parametry

Na dużą elastyczność pozwala GRUB-owi od-
czytywanie plików z dysku twardego.

Zazwyczaj jest on instalowany jednorazo-

wo razem z systemem. W przypadku dwóch
systemów na jednym dysku, jak Windows i
Linux, kwestią czasu jest konieczność reinsta-
lacji GRUB-a. Wówczas przydaje się wiedza
o tym w jaki sposób pracuje Boot loader.

Sposób ładowania systemu i przyjmowa-

ne parametry można łatwo zrozumieć na przy-
kładzie pliku menu.lst, widocznego na Listin-
gu 1, z którego przy każdym uruchomieniu
komputera GRUB pobiera konfiguracje.

Pierwsze dwie linie określają domyślne

zachowanie GRUB-a, po 6 sekundach załaduje
on pierwszy wymieniony system operacyjny.
W linii 3 możliwe jest zdefiniowanie schematu
kolorów z jakich korzysta program. Jego wy-
gląd można zmienić przez dołączenie przezna-
czonego do tego celu pliku graficznego. Załą-
czony w linii 4 plik umieszczony jest na dysku
sda1. Widać tutaj, iż GRUB nie rozróżnia dys-
ków ATA, SATA czy SCSI, zawsze korzysta z
oznaczenia hd z odpowiednią cyfrą. Widoczny
na Rysunku 1 obraz dla GRUBA można zna-
leźć na stronie: http://www.queervisions.com/
arch/2007/04/9_grub_splash_i.html
.

W linii 5 znajduje się wyświetlana przez

GRUB-a nazwa ustawiona dla systemu, które-
go dotyczą kolejne parametry. W linii 6 opcja
root określa, na którym dysku i której partycji
znajduje się system do załadowania. Pierwsza
cyfra oznacza dysk, druga zaś numer partycji.

W linii 7 znajduje się nazwa pliku zawie-

rającego jądro systemu oraz położenie głów-
nej partycji. Warto zwrócić uwagę, iż jest ona
już podana w zwykłej notacji hda, nie hd.
Opcja ro nakazuje montowanie partycji tyl-
ko w trybie do odczytu. Umożliwia to kon-
trolę partycji przez program fdisk. Następna
opcja quiet wyłącza znaczną część informa-
cji jakie mogą zostać wyświetlone na moni-
torze w trakcie uruchamiania. Kolejna opcja,
vga, pozwala na wybór rozdzielczości z jaką
będzie pracowała konsola. Możliwe parame-
try znajdują się w Tabeli 1.

Działanie tej opcji jest jednak powiąza-

ne ze skompilowanymi elementami jądra oraz
posiadanymi czcionkami. Nie należy łączyć
jej działania ze środowiskiem graficznym,
szczególnie jeżeli zostały dla niego wgra-
ne dodatkowe sterowniki karty graficznej. W
przypadku niektórych kart graficznych wyko-
rzystanie tej opcji będzie stwarzało problemy,
w innych po prostu będzie działać.

Ostatni parametr linii siódmej, ram-

disk_size, jest przydatny jeżeli chcemy korzy-

stać z ram dysków. Pozwala on kontrolować
rozmiar, jaki otrzyma domyślnie taki dysk.

Rysunek 1.

Zmieniony wygląd GRUBA-a

Listing 1.

Przykład pliku menu.lst

1

:

Default

0

2

:

timeout

6

3

:

color

cyan

/

blue

white

/

blue

4

:

splashimage

=(

hd0

,

1

)

/

boot

/

grub

/

splash

.

xpm

.

gz

5

:

title

Debian

Lenny

6

:

root

(

hd0

,

0

)

7

:

kernel

/

vimlinuz

-

2.6

.

27.2

root

=

/

dev

/

hda2

ro

quiet

vga

=

0x303

ramdisk_

size

=

64000

8

:

initrd

/

initrd

.

img

-

2.6

.

27.2

9

:

title

Windows

10

:

rootnoverify

(

hd0

,

0

)

11

:

makeactive

12

:

chainloader

+

1

Tabela 1.

Parametry opcji vga określającej parametry graficzne konsoli

640x480

800x600

1024x268

1280x1024

256

0x301

0x303

0x305

0x307

32k

0x310

0x313

0x316

0x319

64k

0x311

0x314

0x317

0x31A

16M

0x312

0x315

0x318

0x31B

Dla Początkujących

GRUB

background image

14

GRUB

kwiecień 2009

15

www.lpmagazine.org

W linii 8 znajduje się nazwa ram dysku,

który zostanie załadowany. Jego zawartość za-
leży od sposobu w jaki zbudowane zostało ją-
dro systemu.

W linii 9 rozpoczyna się część odpowiedzial-

na za uruchomienie systemu Windows. Jest ona
poprawna pod warunkiem, że system znajduje się
na partycji hda1. Opcja chainloader służy przej-
ściu do boot loadera systemu Windows. GRUB
nie uruchamia tego systemu bezpośrednio.

GRUB daje znacznie więcej możliwości

konfiguracji, niż zostało wykorzystane w po-
danym przykładzie.

Pełen opis przyjmowanych przez boot lo-

adera parametrów można znaleźć na stronie:
http://www.linuxselfhelp.com/gnu/grub/html_
chapter/grub_toc.html
. W Tabeli 2 znajdują się
jedynie wybrane parametry.

Wprowadzane w taki sposób zmiany do

pliku menu.lst zostaną jednak usunięte w

przypadku aktualizacji GRUB-a. Zapobiec
temu można wpisując konfigurację w do-
myślne ustawienia. Należy w tym celu od-
naleźć w pliku menu.lst sekcje Start Default
Options
, i w niej zapisać ustawienia. Waż-
ne jest, aby nie usuwać komentarza z po-
czątku linii.

Problemy z GRUB-em

Problemy z GRUB-em przeważnie są spowo-
dowane instalacją drugiego systemu. Drugą
możliwością jest wprowadzenie niewłaściwe-
go parametru do pliku menu.lst.

Przed drugą możliwością można chronić

się w bardzo prosty sposób. W trakcie urucha-
miania systemu boot loader pozwala na mo-
dyfikacje parametrów bez ich zapisywania.
W efekcie, system uruchomi się z nimi tyl-
ko raz. Aby dokonać takiej jednorazowej mo-
dyfikacji wystarczy z listy systemów do zała-

dowania wybrać wpis, który chcemy zmodyfi-
kować i wcisnąć literę e. Wyświetlone zostaną
informacje dotyczące ładowania systemu. Po-
niżej na ekranie znajduje się opis, w jaki spo-
sób modyfikować i dodawać nowe linie. Słu-
żą temu litery e oraz o. Wszystkie nowe pa-
rametry dotyczące ładowania systemu można
w ten sposób przetestować bez ryzyka poważ-
nych problemów.

Najgorszą możliwą sytuacją jest jednak

całkowite zastąpienie GRUB-a w głównym
sektorze rozruchowym przez inny program ła-
dujący. Sytuacja taka jest normalna przy in-
stalacji systemu Windows. Jeżeli już do tego
doszło, istnieje kilka dróg ratunku. Najszyb-
szą metodą jest uruchomienie dyskietki ratun-
kowej, którą można przygotować na spraw-
nym systemie za pomocą trzech poleceń z Li-
stingu 2.

Tak utworzona dyskietka da możliwość

ponownej instalacji GRUBa na dysku twar-
dym.

Uruchomiona z dyskietki konsola posiada

możliwości służące tylko i wyłącznie do pra-
cy z GRUB-em. Listę wszystkich poleceń, jak
i możliwości uzupełnienia wpisywanych pole-
ceń, można otrzymać przez wciśnięcie klawi-
sza Tab. Przed wgraniem boot loadera należy
zamontować właściwą partycję, a następnie
dopiero zainstalować program. Ustalić, któ-
ra partycja na dysku jest prawidłowa. Moż-
na to zrobić za pomocą polecenia

find

. Prawi-

dłową odpowiedź na to polecenie widać na Li-
stingu 3.

Po prawidłowym wykonaniu tej czynno-

ści, przy starcie systemu pojawi się GRUB. Je-
żeli z jakiegoś powodu nie będzie chciał uru-
chamiać systemu, możliwa jest już edycja bez
użycia dyskietki.

Jeżeli nie posiadamy dyskietki, istnieje

nieco bardziej złożona możliwość z wykorzy-
staniem dystrybucji LiveCD.

Po uruchomieniu systemu z płyty należy

zamontować partycję zawierającą GRUB-a.
Następnie wydać polecenia widoczne na Li-
stingu 4, przy założeniu, że zamontowaliśmy
dysk do katalogu hda.

Jeżeli problem był spowodowany instala-

cją Windowsa, powyższe postępowanie przy-
wróci okno GRUB-a przy starcie systemu,
ale niekoniecznie będzie on uruchamiał Li-
nuksa. Jeżeli Linux w dalszym ciągu nie bę-
dzie chciał się uruchomić, będzie to oznacza-
ło zmianę partycji. Należy wówczas edytować
plik menu.lst i zmienić partycję root.

Skuteczną metodą unikania powyższych

czynności naprawczych może być instalacja
systemu Windows przy użyciu dyskietki star-
towej. Jeżeli dyskietka taka zostanie urucho-

Tabela 2.

Wybrane opcje konfiguracji GRUB-a

parametr

opis

com1=115200, 8n1

Opcja ta zamienia pierwszy port szeregowy w kon-
sole szeregową.

fallback 1

Jeżeli uruchomienie domyślnego systemu nie po-
wiedzie się, program spróbuje uruchomić drugą
wskazaną konfigurację

hiddemenu

Pozwala ukryć menu GRUB-a

mem=1024M

Przekazuje do jądra systemu jak dużo pamię-
ci podręcznej znajduje się w systemie. W przykła-
dzie 1GB użyteczne, gdy system nie wykrywa ca-
łej pamięci

password

Pozwala na zabezpieczenie GRUB-a hasłem

Dla Początkujących

Rysunek 2.

Położenie programu do tworzenia systemu na USB

background image

14

GRUB

kwiecień 2009

15

www.lpmagazine.org

miona po starcie GRUB-a, może on zmie-
nić ustawienie partycji, jakie będzie dostęp-
ne dla systemu Windows. W efekcie, nieza-
leżnie na którą partycję zostanie zainstalowa-
ny, będzie uważał, iż znajduje się na pierw-
szej. Ponadto nie nadpisze posiadanego bo-
ot loadera. Metoda ta niestety jest skuteczna
tylko dla systemów opierających się przy in-
stalacji na informacjach przekazanych przez
BIOS. Konfiguracja takiej opcji znajduje się
na Listingu 5.

W linii 2 i 3 na Listingu 5 mapowane są

dwie partycje w taki sposób, aby system Win-
dows widział je na zamienionych pozycjach.
Identyczne działanie mają linie 7 i 8 wykorzy-
stywane przy uruchamianiu instalacji z dys-
kietki.

Ratunek z USB

Problem z ratowaniem boot loadera powsta-
je, gdy dysponujemy laptopem bez stacji dys-
kietek i bez napędu CD-ROM. Sytuacja taka
nie jest niczym nadzwyczajnym w przypadku
niewielkich laptopów wyposażonych w napęd
podłączany poprzez złącze USB.

Z ratunkiem przychodzi dystrybucja

Ubuntu w wersji 8.10. Można ją pobrać pod
adresem http://releases.ubuntu.com/releases/
8.10/ubuntu-8.10-desktop-i386.iso
.

Przy

czym należy również zaopatrzyć się w plik z
sumą kontrolną w celu sprawdzenia popraw-
ności obrazu. Po wypaleniu i uruchomieniu
płyty dostępny jest program Create USB star-
tup. Jego położenie w systemie widoczne jest
na Rysunku 2. Program sam wykona wszyst-

kie czynności, wystarczy jedynie podłączyć
do komputera pendrive 2GB lub większy.
W zależności od wykorzystywanego pendri-
ve'a należy przygotować się na długi czas wy-
konywania tej operacji.

Metoda ta kryje jednak pewną pułapkę.

Ubuntu uruchamiane z płyty CD ma problemy
z obsługą niektórych pendriv'ów. Przykładem
jest Kingston DataTraveler 400 2GB. W jego
przypadku kopiowanie plików zostaje prze-
rwane najdalej po wykonaniu kilku procent.
Z kolei metoda ta sprawdzi się dla karty micro
SDHC 4GB firmy SanDisk.

Alternatywną możliwością jest wy-

korzystanie systemu Windows i progra-
mu Ubuntu810PL do pobrania pod adresem
http://www.pendrivelinux.com/downloads/
Ubuntu810P.exe
. Należy pamiętać, aby w ka-
talogu, do którego rozpakowany zostanie pro-
gram, umieścić obraz płyty Ubuntu. Jeżeli
program nie znajdzie obrazu płyty, rozpocz-
nie jego pobieranie przez internet.

Przygotowany w powyższy sposób pen-

drive można wykorzystać do ratowania bo-
ot loadera w sposób identyczny jak system
z płyty. Metoda ta ma jednak pewna przewagę.
System taki można dostosować do własnych
upodobań i wyposażyć w dowolne dostępne
narzędzia. Daje on również możliwość pracy
na dowolnym komputerze z własnym syste-
mem operacyjnym.

Podsumowanie

GRUB stanowi potężne narzędzie. Powyżej
przedstawione informacje dają jedynie pogląd
na jego możliwości. Ze względu na swoje zna-
czenie dla funkcjonowania systemu jak i jego
bezpieczeństwa powinien on być znany każ-
demu użytkownikowi systemu. Osoby chcące
sięgnąć głębiej niż podstawowe funkcje mo-
gą wykorzystać mogą wykorzystać GRUB-a
do uruchomienia systemu z niemal dowolne-
go nośnika.

Program ten jeszcze długo będzie najlep-

szym narzędziem do wykonywanej przez sie-
bie pracy. dlatego też warto poznać go lepiej
niż pozwala na to ten artykuł.

Listing 2.

Tworzenie dyskietki ratunkowej

1

:

cd

/

boot

/

grub

2

:

dd

if

=

stage1

of

=

/

dev

/

fd0

bs

=

512

count

=

1

3

:

dd

if

=

stage2

of

=

/

dev

/

fd0

bs

=

512

seek

=

1

Listing 3.

Wyszukiwanie partycji zawierającej GRUB-a

1

:

find

(

hd0

,

0

)

/

grub

/

stage1

2

:

(

hd0

,

0

)

3

:

(

hd0

,

4

)

4

:

(

hd1

,

0

)

5

:

root

(

hd0

,

0

)

6

:

setup

(

hd0

)

Listing 4.

Przywracanie GRUB-a z LiveCD

1

:

chroot

hda

2

:

grub

3

:

root

(

hd0

,

0

)

4

:

setup

(

hd0

)

Listing 5.

Mapowanie dysku dla systemu Windows 98

1

:

title

Windows

98

2

:

map

(

hd0

,

0

)

(

hd0

,

2

)

3

:

map

(

hd0

,

2

)

(

hd0

,

0

)

4

:

rootnoverify

(

hd0

,

2

)

5

:

chainloader

+

1

6

:

title

DOS

Boot

Disk

7

:

map

(

hd0

,

0

)

(

hd0

,

2

)

8

:

map

(

hd0

,

2

)

(

hd0

,

0

)

9

:

chainloader

(

fd0

)+

1

http://www.gnu.org/software/grub/manual/grub.txt – podręcznik GRUB-a;
http://www.gnu.org/software/grub/manual/multiboot/multiboot.txt specyfikacja

multiboot;

http://www.ibm.com/developerworks/linux/library/l-bootload.html działanie boot

loadera;

http://www.pendrivelinux.com/ – Instalowanie Linuxa na USB.

W Sieci

Dla Początkujących

GRUB

Absolwent technikum policealnego na kie-
runku informatyki w Szczecinie. Obecnie
student 2 roku Europeistyki na Uniwersy-
tecie Szczecińskim. Od ponad roku pra-
cownik firmy świadczącej usługi interneto-
we w Gryfinie.
Kontakt z autorem:
sylwesterzdanowski@o2.pl

O autorze


Wyszukiwarka

Podobne podstrony:
2009 04 08 POZ 06id 26791 ppt
02 Leczenie bolu pooperacyjnego Szkola Bolu PTCh Machala W 2009 04 06[1]
Fakty i Mity 2009 04
2009 04 05 3052 14
2009 04 06 pra
2009.04.06 prawdopodobie stwo i statystyka
TIiK zadania 2009 04 17 VI pol
1 2009.04.06 matematyka finansowa
bik 02 2009 04 id 85660 Nieznany
2009 04 06 mat finid 26662 Nieznany
2009-04-22, pedagogium, wykłady, Teoretyczne podstawy wychowania, ćwiczenia
2009 04 06 prawdopodobie stwo i statystykaid 26658
2009-04-29, pedagogium, wykłady, Teoretyczne podstawy wychowania, ćwiczenia
4 2009 04 26 opracowanie STABILNOŚĆ PRIONÓW, specjalizacja mięso
2 2009 04 26 Ryzyko zanieczyszczeń, specjalizacja mięso

więcej podobnych podstron