Razlika između inačica stranice Sve što trebate znati o GRUB bootloaderu
(→Stage 2 greške) |
(→Stage 2 greške) |
||
Redak 202: | Redak 202: | ||
|- | |- | ||
|2 | |2 | ||
− | | | + | |Bad file or directory type |
|Opis | |Opis | ||
|- | |- | ||
|3 | |3 | ||
− | | | + | |Bad or corrupt data while decompressing file |
|Opis | |Opis | ||
|- | |- | ||
|4 | |4 | ||
− | | | + | |Bad or incompatible header in compressed file |
|Opis | |Opis | ||
|- | |- | ||
|5 | |5 | ||
− | | | + | |Partition table invalid or corrupt |
|Opis | |Opis | ||
|- | |- | ||
|6 | |6 | ||
− | | | + | |Mismatched or corrupt version of stage1/stage2 |
|Opis | |Opis | ||
|- | |- | ||
|7 | |7 | ||
− | | | + | |Loading below 1MB is not supported |
|Opis | |Opis | ||
|- | |- | ||
|8 | |8 | ||
− | | | + | |Kernel must be loaded before booting |
|Opis | |Opis | ||
|- | |- | ||
|9 | |9 | ||
− | | | + | |Unknown boot failure |
|Opis | |Opis | ||
|- | |- | ||
|10 | |10 | ||
− | | | + | |Unsupported Multiboot features requested |
|Opis | |Opis | ||
|- | |- | ||
|11 | |11 | ||
− | | | + | |Unrecognized device string |
|Opis | |Opis | ||
|- | |- | ||
|12 | |12 | ||
− | | | + | |Invalid device requested |
|Opis | |Opis | ||
|- | |- | ||
|13 | |13 | ||
− | | | + | |Invalid or unsupported executable format |
|Opis | |Opis | ||
|- | |- | ||
|14 | |14 | ||
− | | | + | |Filesystem compatibility error, cannot read whole file |
|Opis | |Opis | ||
|- | |- | ||
|15 | |15 | ||
− | | | + | |File not found |
|Opis | |Opis | ||
|- | |- | ||
|16 | |16 | ||
− | | | + | |Inconsistent filesystem structure |
|Opis | |Opis | ||
|- | |- | ||
|17 | |17 | ||
− | | | + | |Cannot mount selected partition |
|Opis | |Opis | ||
|- | |- | ||
|18 | |18 | ||
− | | | + | |Selected cylinder exceeds maximum supported by BIOS |
|Opis | |Opis | ||
|- | |- | ||
|19 | |19 | ||
− | | | + | |Linux kernel must be loaded before initrd |
|Opis | |Opis | ||
|- | |- | ||
|20 | |20 | ||
− | | | + | |Multiboot kernel must be loaded before modules |
|Opis | |Opis | ||
|- | |- | ||
|21 | |21 | ||
− | | | + | |Selected disk does not exist |
|Opis | |Opis | ||
|- | |- | ||
|22 | |22 | ||
− | | | + | |No such partition |
|Opis | |Opis | ||
|- | |- | ||
|23 | |23 | ||
− | | | + | |Error while parsing number |
|Opis | |Opis | ||
|- | |- | ||
|24 | |24 | ||
− | | | + | |Attempt to access block outside partition |
|Opis | |Opis | ||
|- | |- | ||
|25 | |25 | ||
− | | | + | |Disk read error |
|Opis | |Opis | ||
|- | |- | ||
|26 | |26 | ||
− | | | + | |Too many symbolic links |
|Opis | |Opis | ||
|- | |- | ||
|27 | |27 | ||
− | | | + | |Unrecognized command |
|Opis | |Opis | ||
|- | |- | ||
|28 | |28 | ||
− | | | + | |Selected item cannot fit into memory |
|Opis | |Opis | ||
|- | |- | ||
|29 | |29 | ||
− | | | + | |Disk write error |
|Opis | |Opis | ||
|- | |- | ||
|30 | |30 | ||
− | | | + | |Invalid argument |
|Opis | |Opis | ||
|- | |- | ||
|31 | |31 | ||
− | | | + | |File is not sector aligned |
|Opis | |Opis | ||
|- | |- | ||
|32 | |32 | ||
− | | | + | |Must be authenticated |
|Opis | |Opis | ||
|- | |- | ||
|33 | |33 | ||
− | | | + | |Serial device not configured |
|Opis | |Opis | ||
|- | |- | ||
|34 | |34 | ||
− | | | + | |No spare sectors on the disk |
|Opis | |Opis | ||
|} | |} |
Inačica od 12: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 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
|
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)
|
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
Kako o GRUB-u ovisi daljnje učitavanje operativnog sustava, smatramo bitnim da se ovdje postavi popis svih mogućih grešaka koje može prijaviti GRUB prilikom izvršavanja nekog od svojih nivoa.
Stage 1 greške
Prilikom prijave greške na ovom nivou, GRUB daje ime greške na ekranu i zaustavlja računalo. Ponovo pokretanje je moguće pritiskom na CTRL+ALT+DEL
Poruka greške | Opis greške |
---|---|
Hard Disk Error | Ne može odrediti veličinu i geometriju tvrdog diska sa kojeg se učitava Stage 1.5 ili Stage 2 |
Floppy Error | Ne može odrediti veličinu i geometriju diskete s koje se učitava Stage 1.5 ili Stage 2 |
Read Error | Greška pri čitanju sa diska prilikom učitavanja Stage 1.5 ili Stage 2. Može se sumnjati na oštećenje diska! |
Geom Error | Lokacija Stage 1.5 ili Stage 2 nije u dijelu diska kojem se može pristupiti direktno preko BIOS-ovih poziva. Ovo se može desiti ako se u BIOS-u naknadno mijenjaju podaci o geometriji diska ili je disk prebačen u drugo računalo ili na drugi kontroler nakon instalacije GRUB-a. |
Stage 1.5 greške
Uobičajeni način na koji Stage 1.5 prijavljuje greške jest da ispiše broj greške na ekranu u formi: Error broj i zaustavlja računalo. Pritiskom na CTRL+ALT+DEL moguće je restartati ga.
Brojevi grešaka odgovaraju greškama prijavljenim od Stage 2 dijela GRUB-a, pa pogledajte na Stage 2 greške
Stage 2 greške
Način na koji Stage 2 prijavljuje greške sastoji se u prekidu operacije, prijavi greške na ekranu, te (ako je moguće) nastavlja sa operacijama uz činjenicu da se greška desila ili čeka na korisnikovu odluku.
Stage 1.5 greška | Stage 2 greška | Opis greške |
---|---|---|
1 | Filename must be either an absolute filename or blocklist | Opis |
2 | Bad file or directory type | Opis |
3 | Bad or corrupt data while decompressing file | Opis |
4 | Bad or incompatible header in compressed file | Opis |
5 | Partition table invalid or corrupt | Opis |
6 | Mismatched or corrupt version of stage1/stage2 | Opis |
7 | Loading below 1MB is not supported | Opis |
8 | Kernel must be loaded before booting | Opis |
9 | Unknown boot failure | Opis |
10 | Unsupported Multiboot features requested | Opis |
11 | Unrecognized device string | Opis |
12 | Invalid device requested | Opis |
13 | Invalid or unsupported executable format | Opis |
14 | Filesystem compatibility error, cannot read whole file | Opis |
15 | File not found | Opis |
16 | Inconsistent filesystem structure | Opis |
17 | Cannot mount selected partition | Opis |
18 | Selected cylinder exceeds maximum supported by BIOS | Opis |
19 | Linux kernel must be loaded before initrd | Opis |
20 | Multiboot kernel must be loaded before modules | Opis |
21 | Selected disk does not exist | Opis |
22 | No such partition | Opis |
23 | Error while parsing number | Opis |
24 | Attempt to access block outside partition | Opis |
25 | Disk read error | Opis |
26 | Too many symbolic links | Opis |
27 | Unrecognized command | Opis |
28 | Selected item cannot fit into memory | Opis |
29 | Disk write error | Opis |
30 | Invalid argument | Opis |
31 | File is not sector aligned | Opis |
32 | Must be authenticated | Opis |
33 | Serial device not configured | Opis |
34 | No spare sectors on the disk | Opis |