Razlika između inačica stranice Sve što trebate znati o GRUB bootloaderu

Izvor: HrOpenWiki
Skoči na: orijentacija, traži
(Reinstalacija - popravak GRUB-a)
Redak 159: Redak 159:
 
  setup(hd0)
 
  setup(hd0)
 
  quit
 
  quit
 +
 +
==Poruke o greškama==
 +
===Stage 1 greške===
 +
===Stage 1.5 greške===
 +
===Stage 2 greške===

Inačica od 11:56, 9. siječnja 2009.

GRUB ili punim nazivom GRand Unified Bootloader je prvi program koji se pokreće nakon što BIOS prepusti kontrolu učitavanja operacijskog sustava. Direktno je zadužem za učitavanje kernela operacijskog sustava, koji dalje učitava ostatak.

Ovaj bootloader je najrašireniji u Linux svijetu danas, no nije i jedini. Naime, postoji i LILO bootloader koji se i dalje koristi, ali manje

Opis

GRUB menu na početku učitavanja Linuxa

GRUB je zadužen, kao i ostali bootloaderi za učitavanje kernela operacijskog sustava ili čak daljnje učitavanje drugog bootloadera (kao što je to slučaj sa MS Windowsima). Radi preko tri stanja odnosno Stage-ova.

Stage 1

Nalazi se u 512 byteova MBR sektora što mu omogućava podizanje ostatka sebe samog iz Stage 2 dijela koji se nalazi unutar /boot/grub direktorija tvrdog diska.

Stage 1.5

Zapravo je međustanje koje se nalazi unutar prvih 30 KB slijedećeg sektora od MBR-a i služi za učitavanje Stage 2 dijela u koliko se ti podaci nalaze na datotečnom sustavu koji nije Ext2 ili Ext3.

Stage 2

Podiže preostale datoteke potrebne GRUB-u, a nalaze se u /boot/grub direktoriju. Rezultat učitanog Stage 2 dijela GRUB-a je poznati GRUB meni na početku podizanja Linuxa.

Podešavanje

Sve bitno i potrebno za podešavanje GRUB-a nalazi se unutar datoteke /boot/grub/menu.lst. Datoteka je tekstualna i lako se editira preko bilo kojeg tekstualnog editora instaliranog unutar vaše Linux distribucije. Kako je ovo od prilične važnosti za ispravno učitavanje ostatka operacijskog sustava, proći ćemo kroz sve bitne opcije koje se nalaze unutar menu.lst datoteke

Zadani redak izbornika

Ako želite da vam GRUB meni odmah odebare željenu redak u svom meniju, potrebno je podesiti opciju default:

default n

gdje je n redni broj izbornikovog redka. Pazite, prvi redak ima oznaku 0 (nula), drugi - 1 itd.

Vrijeme čekanja na odabir

Ako želite promijeniti vrijeme čekanja GRUB-a da sam odabere zadani redak u izobrniku, onda to radite preko opcije timeout:

timeout n

gdje je n vrijeme čekanja na automatski odabir u sekundama

Sljedeći izbor

Za podešavanje koji je sljedeći mogući izbor, ukoliko GRUB iz određenog razloga ne može startati zadani redak činite opcijom fallback:

fallback n

gdje je n redni broj izbornikovog redka. Pazite, prvi redak ima oznaku 0 (nula), drugi - 1 itd.

Definicije operacijskog sustava

Ovim opcijama definiraju se svi potrebni parametri za ispravno učitavanje kernela određenog operacijskog sustava. Ako na ovom mjestu pogriješite, nećete moći učitati željeni operacijski sustav. Mudro je, ako radite neka nova podešavanja da ih radite kao novu instancu, a prema kopiji starih, a stara (koja rade uredno) ostavite unutar menu.lst-a sve dok niste potpuno sigurni da novokreiranim redkom izbornika možete normalno podići operacijski sustav.

Dakle, svaka instanca za učitavanje kernela operacijskog sustava počinje sa opcijom title, koja predstavlja tekst koji se pojavljuje u GRUB izborniku. Odnosno, predstavlja opis onoga što pokrećete tim odabirom. Definira se ovako:

title Opis operacijskog sustava u izborniku

Slijedi obično opcija root, koja definira koji disk i particija predstavlja korijen operacijskog sustava. Definira se ovako:

root (hdx,y)

Gdje je:

  • x - redni broj tvrdog diska na kontroleru. Prvi disk je 0, drugi - 1 itd.
  • y - redni broj particije na x-tom disku. Prva particija je 0, druga - 1 itd.

Slijedeća opcija je kernel kojom se daju sve potrebne definicije za ispravno učitavanje slike kernela sa diska:

kernel		/boot/vmlinuz-... root=UUID=... opcije kernela

Gdje je:

  • /boot/vmlinuz-... - mjesto i naziv datoteke slike kernela koji se starta
  • root=UUID=... - UUID oznaka root (/) particije datotečnog stabla instaliranog operacijskog sustava. UUID oznaku particije možete lako dobiti naredbom blkid
  • opcije kernela - ako se želite uključiti određene opcije kernela, koje on izvršava tijekom svojeg postavljanja, onda ih upisujte ovdje i razmaknite ih praznim mjestima

Slijedi opcija initrd koja učitava inicijalni ramdisk. Unutar initrd-a nalaze se svi potrebni driveri koji kernelu trebaju priliko podizanja operacijskog sustava, a ne nalaze se u samoj slici kernela.

initrd		/boot/initrd.img-...

Gdje je /boot/initrd.img-... - mjesto i naziv datoteke slike initrd-a koji se učitava.

Cijeli blok opisa završava se opcijom quiet koja nije nužna i više je estetske prirode, a zadatak joj je da ne prikazuje nepotreban tekst na ekranu priliko daljnjih faza podizanja operacijskog sustava. Ona nema parametara.

quiet

Primjer

Primjer jednog bloka za ispravno učitavanje Ubuntu distribucije možete vidjeti ispod:

title		Ubuntu 8.04.1, kernel 2.6.24-22-generic
root		(hd1,1)
kernel		/boot/vmlinuz-2.6.24-22-generic root=UUID=af03b0cc-0fcb-4006-9fc4-105745fc9187 ro quiet splash
initrd		/boot/initrd.img-2.6.24-22-generic
quiet

Učitavanje MS Windows operacijskog sustava

Info.png
Informacija

Chain-loading je proces učitavanja drugog bootloadera umjesto kernela operacijskog sustava

Mnogi žele uz Linux imati i MS Windows operacijski sustav na svom računalu, te prilikom pokretanja odabirati operacijski sustav po želji. Međutim, GRUB ne može direktno učitati Windowse preko sebe, nego se služi tzv. chain-loading-om. Takvo učitavanja donekle komplicira stvar oko podešavanja GRUB-a, ali uz ova objašnjenja pokušati ćemo i tu stvar donekle olakšati.

Prvi problem na kojeg možete naići jest ako želite podići WIndows-e sa diska koji nije prvi disk u sistemu (u slučajevima da ste za Linux kupili novi disk, te ga postavili u računalo kao prvi disk u sustavu, a stari disk, na kojemu se od prije nalaze Windowsi premjestili na drugu poziciju kontrolera). Kako se Windowsi ne mogu podići sa diska koji nije prvi treba napraviti prividnu zamjenu diskova. To se radi preko GRUB opcije map ovako:

map (hd0) (hd1)
map (hd1) (hd0)
Warning.png
Upozorenje

opcija map radi samo ako Windowsi koriste BIOS za pristup zamjenjenom disku.

Nakon ovoga, naš Windows disk sada postaje hd0, a Linux disk hd1. Zapamtite da se ova zamjena dešava samo prilikom podizanja Windowsa, ali ne i Linuxa. Također, ako su vaši WIndowsi i dalje na jednom te istom disku kao i ranije, a Linux ste instalirali na drugu particiju tog istog diska, onda za ovim neće biti potrebe.

Slijedeći problem može iskrsnuti u koliko imamo na jednom disku više od jedne instalacije Windowsa. Što se može desiti ako imate i WindowsXP i Vistu na istom disku, ali na dvije particije. Takva stvar može zbuniti GRUB. Da bi riješili i taj nered, posegnuti ćemo za hide i unhide opcijama za particije. Neka u našem primjeru postoje dvije instalacije Windows-a i to na 1. i 2. particiji diska, a mi želimo učitati Windowse iz 1. particije. U tom slučaju drugu particiju moramo sakriti, a prvu otkriti ovako: unhide (hd0,0) hide (hd0,1) Opet, ako nemamo slučaj višestrukih instalacija Windows-a ona izbacujemo i ove naredbe.

Sada dopisujemo ostatak bloka opcija za podizanje Windows operacijskog sustava:

rootnoverify (hd0,0)

Podešavamo root particiju operacijskog sustava (slično kao opcija root), samo ova služi u slučajevima kada GRUB ne može pristupiti dijelovima diska (zbog npr. nepodržanog datotečnog sustava)

Parametri (hdx,y) Gdje je:

  • x - redni broj tvrdog diska na kontroleru. Prvi disk je 0, drugi - 1 itd.
  • y - redni broj particije na x-tom disku. Prva particija je 0, druga - 1 itd.
chainloader +1

Jednostavno, učitava prvi sektor trenutne particije (definirane ispred sa rootnoverify)

makeactive

Postavlja trenutnu particiju - aktivnom.

boot

Izvršava učitani bootsektor (učitan opcijom chainloader +1) ili točnije, pokreće učitavanje Windows operacijskog sustava

Primjeri

Imamo dvije instalacije Windowsa na drugom disku po redu (WindowsXP na 1. particiji i Vistu na 2. particiji)

Učitavanje WindowsXP-a:

title Windows XP
map (hd0) (hd1)
map (hd1) (hd0)
unhide (hd0,0)
hide (hd0,1)
rootnoverify (hd0,0)
chainloader +1
makeactive
boot

Učitavanje Viste:

title Vista
map (hd0) (hd1)
map (hd1) (hd0)
unhide (hd0,1)
hide (hd0,0)
rootnoverify (hd0,1)
chainloader +1
makeactive
boot

Imamo jedne WindowseXP i jedan Linux na istom disku. Windowsi su na 1. particiji, a Linux na 2. particiji

title WindowsXP
rootnoverify (hd0,0)
chainloader +1
makeactive
boot

Reinstalacija - popravak GRUB-a

Ponekad se može desiti da instalacijom nekog drugog operacijskog sustava nepažnjom obrišemo Stage 1 GRUB-a koji se nalazi u MBR sektoru. Takva stvar se redovno dešava pri instalaciji Windows operacijskog sustava nakon već instaliranog Linux-a. Tada dolazi do problema jer ne možemo pristupiti GRUB izborniku niti Linux-u.

Problem se rješava prilično jednostavno, a sve što nam treba jest LiveCD Linux distribucija na CD-u. Podignemo Linux sa LiveCD-a Odlazimo u terminal, postavimo se kao root (sa su ili sudo) i tipkamo:

grub

Odnosno:

sudo grub

Unutar grub programa pišemo:

find /boot/grub/stage1

Čime tražimo poziciju Stage 1 dijela GRUB-a.
Kao odgovor dobivamo (hdx,y)
Gdje su x i y brojevi koji predstavljaju disk i particiju na kojoj se nalazi Stage 1

Sada pišemo slijedeće naredbe

root (hdx,y)
setup (hdx)
quit

Ovime je popravak GRUB-a u MBR sektoru gotov, te restartamo računalo, izvadimo LiveCD iz CD pogona i ponovo pokrenemo sa tvrdog diska.

Primjer

sudo grub
find /boot/grub/stage1
(hd0,0) <--- dobijemo kao rezultat!
root(hd0,0)
setup(hd0)
quit

Poruke o greškama

Stage 1 greške

Stage 1.5 greške

Stage 2 greške