GNU GRUB

S Vikipedije, slobodne enciklopedije
GNU GRUB
GRUB verzija 2 pokrenuta u tekst modulu
Programer(i)GNU projekat , Erik Bolejn
Prvo izdanje1995. god.; pre 29 godina (1995)
Stabilno izdanje
2.00 (GRUB 2) / 2012. god.; pre 12 godina (2012)
Preliminarno izdanje
2.02~beta2 (GRUB 2)[1]
Repozitorijum Uredi na Vikipodacima
Napisan uAsembler, C
Operativni sistemLinuks, OS X, BSD, Solaris (x86 ulaz) i Windows
PlatformaIA-32, X86-64, IA-64, ARM, PowerPC, MIPS i SPARC
Dostupan naEngleski i drugi
TipPokretač operativnog sistema
LicencaGNU GPL
Veb-sajtwww.gnu.org/software/grub/

GNU GRUB (skraćenica za GNU Grand Unified Bootloader) je pokretač operativnog sistema paketa GNU Projekta. GRUB je referentna implementacija višestruke specifikacije pokretanja operativnog sistema fondacije slobodnog softvera, koji obezbeđuje korisniku izbor za pokretanje jednog od više instaliranih operativnih sistema na računaru ili izbor specifične konfiguracije dostupnih kernela posebnih particija operativnog sistema. 

GNU GRUB je razvojni paket koji se zove Grand Unified Bootloader (izvodi se u okviru objedinjene teorije[2]). Uglavnom se korisit u okviru sistema sličnih Juniksu. GNU operativni sistem koristi GNU GRUB kao pokretač, kao i većina Linuks distribucijaSolaris operativni sistem je iskoristio GRUB kao svoj pokretač na x86 sistemima, počevši od Solaris 10 1/06 verzije.

Mogućnosti[uredi | uredi izvor]

Korisnici mogu dinamički da podese GRUB podsistem. GRUB učitava svoju konfiguraciju prilikom pokretanja, dozvoljavajući but-tajm promene, kao što su odabir drugog kernela ili  inicijalizaciju RAM diska. U tom smislu, GRUB pruža jednostavan, nalik na baš, interfejs komandne linije, koji korisnicima omogućava pisanje nove but sekvence, pored normalnih lista menija.

GRUB je lako prenosiv. Podržava više izvršnih formata i nezavisni geometrijski prevod. Podržava sve najčešće korišćene Juniks sisteme datoteka, Windows sisteme datoteka FATNTFS, i adresiranje logičkih blokova (LBA). GRUB omogućava korisnicima da vide sadržaj fajlova na bilo kom podržanom sistemu datoteka.

GRUB možete preuzeti kao pokretač operativnog sistema sa mreže, čime se podržava podizanje sistema bez diska. Takođe podržava automatsku dekompoziciju u boot-u pre nego što je pokrenut. Grub podržava operativne sisteme koji ne vrše višestruko pokretanje operativnog sistema, pomoću učitavajućeg lanca. On koristi dve ili trei iste linije koda za bootovanjn bilo kod DOS, Windows, Linuks, BSD ili Solaris sistema, čime je rad sa njim vrlo olakšan. Učitavajući lanac kao podrška Juniks operativnih sistema je ugrađena u GRUB-u.

Grub može da se koristi sa različitim korisničkim interfejsima. Većina Linuks distribucija koristi GRUB za grafički interfejs kako bi obezbedila prilagođn boot-meni sa pozadinskom slikom. Modifikacija GRUB-ovog tekst intefejsa se može koristiti kao serijska veza, tako da udaljeni terminal može imati pristup boot učitavanju.

GRUB koristi kotrljajući ekran za izbor operativnog sistema za pokretanje. To znači 150 ili više boot izbor se može lako kontrolisati GRUB dodavanjem ih u grub.cfg konfiguracioni fajl. Strelice se koriste za izbor operativnog sistema koji treba da se pokrene. Pored normalnog menija, grub takođe pruža baš nalik terminal komand-promt koji pruža oblina skup komandi kako bi se omogućilo korisniku da vidi ili izmeni bilo koji deo procesa podizanja sistema. Sa ovim alatima se može, bez prethodnog znanja tome kako se instalira bilo šta na računaru, koristiti GRUB iz spoljnog uređaja kao što su diskete, USB uređaja ili CD-ROM kako bi se podigao instalirani operativni sistem.

Operacije[uredi | uredi izvor]

GBU GRUB na a MBR-particiji hard diska; stage 1 (boot.img) može alternativno biti napisan u obliku VBR-a.
GNU GRUB na GPT-particji hard diska

Butovanje[uredi | uredi izvor]

Kada je računar uključen, BIOS računara pronalazi namešteni primarni butovan uređaj (najčešće hard disk računara) i učitava i izvršava početne butstrap program iz MBR-a. MBR je prvi sektor na hard disku, sa nulom kao svojim ofset (sektorima brojanje počinje od nule). Već duže vreme, veličina sektora je bila 512 bajtova, ali od 2009. godine postoje hard diskovi sa veličinom sektora od 4096 bajtova, i nazivaju se unaprađenim formatom diskova. Od oktobra 2013. godine, što su čvrsti diskovi su uvek pristupiti u 512-bajta sektorima, koristeći se 512e emulaciju.

Prava MBR particija podržava najviše četiri particije i zauzima 64 bajtova. Zajedno opcijame diske, signatura diska (četiri bajta) i oznake diska (šest bajta), ostavljaju između 434 i 446 bajtova dostupne memorije za mašinski kod jednog but učitavanja. Iako tako mali prostor može biti potpuno dovoljan za veoma jednostavne but utovarivače,[3] nije dovoljno velik da sadrži pokretački podržava složenih i više sistema datoteka, menije izbor za pokretanje izbora itd Boot utovarivači sa većim stopala su tako podeljeni u komade, gde je najmanji komad uklapa u i boravi u MBR, a veći komad (i) se čuvaju na drugim mestima (na primer, u prazne sektore između MBR i prve particije) i pozivaju se preko but MBR koda.

Operativni sistem kernel slike su u većini slučajeva fajlove koji se nalaze na odgovarajućim fajl sistemima, ali je koncept sistema datoteka je nepoznat BIOS-u. Tako, u sistemima koji koriste BIOS, je dužnost but učitavača jeste da pristupi sadržaju tih fajlova, tako da se oni mogu pročitati sa hard diska, učitaju u RAM i pokrenu.

Jedan od mogućih pristupa za pokretanje operativnog sistema je  učitavanje osnove jezgra direktno pristupanjem sektorima hard diska zauzetim od strane aktuelne osnove jezgra, bez razumevanja osnova sistema datoteka. Obično je potreban dodatni indirektni nivo, u obliku mape ili mape fajlova - pomoćnih fajlova koji sadrže spisak fizičkih sektora objedinjenih osnovama jezgra, čime se omogućavaju informacije but loaderu o tome gde se nalaze fundamentalni sektori osnove jezgra. Takve mape treba da se ažuriraju svaki put kada osnove jezgra menjaju svoju fizičku lokaciju na disku, zbog instaliranja nove osnove jezgra, defragmentacije sistema fajlova itd. Takođe, u slučaju da mape menjaju svoje fizičke lokacije, njihove lokacije treba da se ažuriraju u okviru MBR koda but loadera, tako sektori zaobilaznim mehanizmom nastavljaju da rade. Ovo nije samo glomazan, ali i ostavlja mogućnost sistemu za ručne popravke u slučaju da nešto krene naopako tokom ažuriranja sistema.[4]

Drugi pristup je da se napravi but loader bitnih sistemskih datoteka, pa osnove jezgra  su podešene i pristupa im se koristeći svoje aktuelne putanje datoteka. To zahteva da but loader sadrži drajver za sistemske datoteke za svaki od podržanih sistemskih datoteka, tako da se može shvatiti i pristupiti samom but loaderu. Ovakav pristup eliminiše potrebu za fiksnim lokacijama sektora hard diska i postojanje mape fajlova, i ne zahteva MBR ažuriranje nakon dodavanja ili premeštanja osnove jezgra. Konfiguracija but loadera se čuva u redovnom fajlu, koji je takođe priključen u sistemske fajlove - na taj način dobija but podešavanje pre samog pokretanja bilo kakve osnove jezgra. Kao rezultat toga, mogućnost da stvari krenu naopako u raznim promenama sistema je značajno smanjena. Kao nedostatak, takav but loader ima povećanu unutrašnju složenost i povećane putanje.[4]

GNU GRUB koristi drugi pristup, sa podrazumevanim suštinskim sistemskim datotekama. Sama platforma but loadera je podeljena u više faza, dozvoljavajući sebi da se uklopi u MBR but šeme.

Dve glavne verzije GRUB-a su u opštoj upotrebi. GRUB verzija 2, naziva se i GRUB 2, napisan od nule i treba da zameni prethodnu GRUB verziju 1, i sada se koristi od strane većine Linuks verzija. GRUB verzija 1, nazva se i GRUB nasleđe, preovladava samo u starijim distribuiranim verzijama Linuksa, među kojima su neki i danas u upotrebi i podržava, na primer, u CentOS 5.

GRUB verzija 1 (GRUB nasleđe)[uredi | uredi izvor]

GRUB v1 pokrenut kao deo Ubuntu 8.04 instalacije

Master But Rikord (MBR) obično sadrži GRUB fazu 1, ali može da sadrži drugi pokretač koji može pokrenuti lanac GRUB faze 1 iz drugog but sektora kao što su particije voljum but rekord. S obzirom na malu veličinu but sektora (512 bajta), faza 1 može učiniti malo od učitavanja sledeće faze GRUB-a učitavanjem nekoliko sektora diskova fiksnih lokacija blizu početka diska (u okviru svojih prvih 1024 cilindara).

Faza 1 može da učita fazu 2 direktno, ali je obično podešen da učita fazu 1.5. GRUB faza 1.5 se nalazi u prvih 30 KB hard diska odmah posle MBR-a i pre prve particije. U slučaju da ovaj prostor nije dostupan (naročito tabela particija, specijalnih drajvera za diskove, GPT ili LVM diska) instalacije faze 1.5 neće uspeti. Osnova faze 1.5 sadrži drajvere sistemskih datoteka. Ovo omogućava fazi 1.5 direktno učitavanje faze 2 od bilo kog poznatog mesta u sistemskom fajlu, na primer iz /boot/grub. Faza 2 će tada učitati datoteku podrazumevane konfiguracije i bilo koje druge potrebne module.

GRUB verzija 2 (GRUB)[uredi | uredi izvor]

boot.img ima tačnu veličinu 446 bajtova i upisuje se u MBR (sektor 0). core.img je upisan u prazne sektore između MBR i prve particije, ako je na raspolaganju (za nasleđene osnove prva particija počinje u sektoru 63, umesto sektor 1, ali to nije obavezno). /boot/grub direktorijum može da se nalazi na posebanoj particiji, ili na rut particiji.
  • Faza 1: boot.img se čuva u master but rikordu (MBR) ili opciono u bilo kom od voljum but rekordu (VBR), i adresira sledeću fazu od strane LBA48 adrese (dakle, ograničenje 1024-cilindara GRUB nasleđe se izbegava); u toku instalacije konfiguracije učitava se prvi sektor core.img.
  • Faza 1.5: core.img se po difoltu upisuje u sektore između MBR i prve particije, kada su ti sektori slobodni i dostupni. Za nasleđivanje, prva podela hard disk ne počinje u sektoru 1 (brojanje počinje od 0), ali u sektoru 63, ostavljajući razmak od 62 sektora praznog prostora. Taj prostor nije deo  ni jede  particije ili sistema fajlova, a samim tim nije podložan bilo kakvim problemima vezanih sa njim. Jednom izvršen, core.img  će učitati svoju datoteku podešavanja i bilo koje druge potrebne module, drajvere za posebne sistemske datoteke; u toku  instalacije generisaće diskboot.img, i podesiti da se učita faza 2 sa putanjom za datoteku..
  • Faza 2: datoteke koje pripadaju fazi 2 se svi drže u /boot/grub direktorijumu, koji je podirektorijum /boot direktorijuma specificiranog po standardima hijerarhije fajl-sistema (FHS).

Kada se GRUB faza 2 učita, što predstavlja TUI- operativni sistem baziran na izbornom (izbor jezgra) meniju, gde korisnik može da izabere koji operativni sistem da se pokrene. GRUB se može podesiti da se automatski učita, izabere jezgro,   korisničko vreme završetka; ako je vreme završetka 0 sekundi, pritiskanje i zadržavanje  Shift dok se računar startuje omogućava da pristupi meniju za pokretanje.[5]

Ako datoteke ili particija postanu nedostupni, ili ako korisnik želi da preuzme direktnu kontrolu, faza 2 će pasti na korišćenje GRUB komandne linije, gde zatim korisnik može da ručno navede but parametre.

U izbornom meniju operativnog sistema GRUB prihvata par komandi:

  • Pritiskom e, moguće je menjati parametre za izabrani operativni sistem pre startovanja operativnog sistema. Tipično, ovo se koristi za promenu parametara jezgra za Linuks sistem. Razlog za ovo u GRUB-u (ne menjati parametre u već pokrenutom sistemu) može biti hitan slučaj: sistem nije uspeo da se podigne. Korišćenjem linije parametara jezgra moguće je, između ostalog, da navedete modul da bude onemogućen (blokiran) za jezgro. Ovo bi moglo biti potrebno ako je specifičan modul jezgra oštećen i na taj način sprečava but-up. Na primer, ako je blokiran modul jezgra nvidia-current, dodati modprobe.blacklist=nvidia-current na kraju parametara jezgra.[6]
  • Pritiskom c, korisnik ulazi u GRUB komandnu liniju. GRUB komandna linija nije regularna Linuks ljuska, kao npr.baš, i prihvata samo određene GRUB specifične komande, dokumentovane od strane raznih Linuks distribucija.[7]

Kada je izabrana opcija but, GRUB učitava izabrano jezgro u memoriju i kontrola prolazi na jezgro. Alternativno, GRUB može proći kontrolu procesa podizanja sistema drugim but loaderom, koristeći učitavajući lanac. Ovo je metod koji se koristi za učitavanje operativnih sistema kao što je Microsoft Windows, koji ne podržavaju višebutnu specifikaciju ili nisu direktno podržani od strane GRUB-a.

Ako je korišćenje dm-kript namerno, sadržaj /boot, kao i/boot/grub, Linuks jezgra i initramfs odnosno initrd treba da bude na posebanoj ne-kodiranoj particiji  jer logika za rukovanje šifrovane particije se nalazi unutar Linuks jezgra.

Instalacija[uredi | uredi izvor]

GNU GRUB (verzija 2) softver paketa sadrži nekoliko izvršnih datoteka:

  1. kreirati direktorijum /boot/grub ako ne postoji
  2. generisati datoteku core.img odnosno grub*.efi
  3. napisati boot.img bilo na MBR-u ili voljum but rekordu (VBR), opciono navedeno u komandnoj liniji
  4. napisati core.img u prostoru između MBR-a i prve particije ili respektivno kopirati grub*.efi u EFI sistemsku particiju
  • grub-mkconfig(8) je pomoćni program za generisanje grub.cfg datoteke
  • update-grub(8) se koristi za rad grub-mkconfig -o /boot/grub/grub.cfg-а, koji kombinuje postavke iz /etc/default/grub  i /etc/grub.d/* konfigurišući datoteke u jednu /boot/grub/grub.cfg datoteku [5]

GRUB može da se instalira na prenosnim medijima, kao što je optički disk (BIOS pristup, i El Torito), disketa ili USB fleš, što bi omogućilo podizanje sistema koji ne može da se pokrene sa čvrstog diska.

Istorija[uredi | uredi izvor]

Grub je prvobitno razvijen od strane Erik Bolena kao deo rada na pokretanju operativnog sistema GNU / Hurd, napravljen od strane fondacije za slobodni softver.[8] U 1999. godini, Gordon Matcikajt i Jošinori K. Okuji su napravili GRUB zvanični softverski paket o GNU projektu i otvorio razvojni proces u javnosti.[8] A od 2014, je većina Linuks proizvođača prihvatila GNU GRUB 2. Sonijev PlayStation 4 takođe koristi GNU GRUB verziju 2.00.[9]

 Razvoj[uredi | uredi izvor]

GRUB verzija 1 (takođe poznata kao "GRUB Nasleđe") više nije u fazi razvoja i nestaje.[10] GNU GRUB programeri imaju u fokusu GRUB 2,[11] a kompletnu preradu sa namerom izrade GNU GRUB-a očišćenog, snažnijeg, prenosivog i moćnijeg. Grub 2 je startovao pod imenom PUPA. PUPA je podržan od strane Agencije za informaciono-tehnološku promociju (IPA) u Japanu. PUPA je integrisan u GRUB 2 razvoj oko 2002. godine, kada je GRUB verzija 0,9x preimenovana u GRUB Nasleđe.

Neki od ciljeva GRUB 2 projekta je da obuhvati podršku ne-x86 platformi, internacionalizaciju/lokalizaciju, ne-ASCII znakova, dinamičkih modula, upravljanje memorijom, skripting mini-jezika, migraciju platformi specifičnog (x86) koda na platformu posebnih modula, kao i objektno-orijentisani okvir. GNU GRUB verzija 2.00 je zvanično objavljena 26. juna 2012.[12][13]

Tri najčešće korišćene [14][15][16] Linuks distribucije koriste GRUB 2 kao glavni but loader. Ubuntu usvaja GRUB 2 kao podrazumevani but loader od 9.10 verzije iz Oktobra 2009.[17] Fedora koristi GRUB 2 kao podrazumevani but loader od verzije 16 objavljene u novembru 2011. godine.[18]  Open SUSE usvaja GRUB 2 kao podrazumevani but loader sa 12.2 verzijom iz septembra 2012. godine.[19]

Solaris takođe usvaja GRUB 2 na x86 platformi u verziji Solaris 11.1.[20]

Varijante[uredi | uredi izvor]

GNU GRUB je slobodni softver i softver otvorenog koda, tako da je nekoliko varijanti i napravljeno. Neke značajne koje nisu spojene u GRUB paletu:

Pomoćni programi[uredi | uredi izvor]

GRUB alat za podešavanje[uredi | uredi izvor]

StartUp-Menadžer, program se koristi za podešavanje GRUB-a
GRUB Kastjumajzer, drugi alat za podešavanje GRUB-a

Alati za podešavanje u upotrebi od strane distribuiranih verzija često uključuju module za podešavanje GRUB-a: na primer, YaST2 za SUSE/openSUSE distribucije i Anakonda za Fedora/RHEL distribucije. StartUp-Menadžer i GRUB Kastjumajzer su grafički uređivači za podešavnje za Debian bazirane distribucije u GRUB-u.

Za GRUB 2 postoje KDE kontrolni moduli.[25][26]

GRLDR ICE je mali alat za modifikovanje podrazumevane konfiguracije grldr datoteke za GRUB4DOS.[27]

Ostali pomoćni programi[uredi | uredi izvor]

GRUB pomoćni programi su kolekcija višeplatformskih pomoćnih programa za GRUB Nasleđe, GRUB 2 i GRUB za DOS.[28]

But-Riper je jednostavan grafički alat za oporavak od čestih problema pokretanje u vezi sa GRUB i Windows pokretačem sistema. Aplikacija je raspoloživa i za ostale GNU GPL licence. But-Riper može oporaviti GRUB na višestrukim Linuks distribucijama, uključujući, ali ne ograničavajući se ni na, Debian, Ubuntu, Mint, Fedoru, openSUSE, i Arč Linuks[29] i da će biti uključen u buduće verzije Ubuntu-a.[30]

Vidi još[uredi | uredi izvor]

Reference[uredi | uredi izvor]

  1. ^ ftp://alpha.gnu.org/gnu/grub/
  2. ^ EnterpriseLinux.com Definitions Arhivirano na sajtu Wayback Machine (3. decembar 2010) Definition of GRand Unified Bootloader
  3. ^ "mbldr (Master Boot LoaDeR)". sourceforge.net. 2009.
  4. ^ a b "Booting and Boot Managers".
  5. ^ a b "How to Configure the GRUB2 Boot Loader’s Settings". howtogeek.com.
  6. ^ "ArchWiki: Blacklist Kernel modules from GNU GRUB". 2012-11-11.
  7. ^ "GNU GRUB documentation".
  8. ^ a b GRUB Manual – 1.2 Grub History.
  9. ^ "PS4 runs Orbis OS, a modified version of FreeBSD that's similar to Linux". extremetech.com. 2013-06-24.
  10. ^ GNU GRUB – GRUB Legacy.
  11. ^ GNU GRUB – GRUB 2 at the Wayback Machine (archived June 7, 2008).
  12. ^ Vladimir 'φ-coder/phcoder' Serbinenko (28 Jun 2012).
  13. ^ Larabel, Michael.
  14. ^ Haddon, Tom (26 January 2012).
  15. ^ Janssen, Cory.
  16. ^ Varghese, Sam (2012-09-20).
  17. ^ "9.10 Karmic GRUB version".
  18. ^ GRUB 2.
  19. ^ openSUSE:Upcoming features – openSUSE Arhivirano na sajtu Wayback Machine (20. septembar 2012)
  20. ^ Solaris 11.1.
  21. ^ x86: Modifying Boot Behavior by Editing the GRUB Menu at Boot Time Arhivirano na sajtu Wayback Machine (19. jul 2011), Modifying Solaris Boot Behavior on x86 Based Systems (Task Map) – System Administration Guide: Basic Administration
  22. ^ x86: Supported GRUB Implementations Arhivirano na sajtu Wayback Machine (21. oktobar 2009), (System Administration Guide: Basic Administration) – Sun Microsystems
  23. ^ 2.3 Why does Syllable have its own version of GRUB? Arhivirano na sajtu Wayback Machine (7. januar 2011), Syllable Documentation
  24. ^ "TrustedGRUB project". sourceforge.net.
  25. ^ GRUB2 Bootloader Editor.
  26. ^ Grub2 KCM Retrieved 2011-01-27
  27. ^ "Grub4dos tutorial". narod.ru.
  28. ^ GRUB Utilities – Summary Arhivirano na sajtu Wayback Machine (4. februar 2011)
  29. ^ Official Boot-Repair website.
  30. ^ .

Spoljašnje veze[uredi | uredi izvor]