SERVIS<>
052005<><>

Multiboot

Jedan OS k’o nijedan

Kohabitacija više operativnih sistema na jednom računaru može se rešiti specijalizovanim programima, ali su rešenja koja dolaze sa samim operativnim sistemima sasvim dovoljna i nisu previše komplikovana.

Autor karikature: Peđa Milićević
Autor karikature: Peđa Milićević
Prvi program koji se pokreće nakon uključivanja kompjutera jeste BIOS. Kada on obavi određene provere hardvera, kontrola nad kompjuterom može da bude prepuštena operativnom sistemu. Međutim, u tom trenutku operativni sistem egzistira u obliku gomile fajlova negde na hard disku, a struktura podataka na disku, particije i fajl-sistemi, kao i način pokretanja i funkcionisanja operativnog sistema daleko su izvan opisa posla BIOS-a. Sve što BIOS „zna” jeste s kog uređaja (hard diska, CD-a, diskete...) treba da pokrene operativni sistem. On sa početka tog diska, sa lokacije koja se zove master boot record (MBR) učitava program veličine 512 bajta i pušta ga da se izvršava. Sa skromnih 512 bajta, mogućnosti tog programa krajnje su ograničene, pa je njegov posao najčešće samo da locira particiju na kojoj se nalazi operativni sistem i da sa početka particije, sa lokacije koje se zove boot record učita i pokrene isto tako mali program koji zatim pokreće operativni sistem koji se nalazi na toj particiji.

Ova dva programa u master boot recordu diska i boot recordu particije čine celinu koja se naziva boot loader. Iako je skromnih 512 bajta po boot sektoru dovoljno u najjednostavnijim situacijama, celina zvana boot loader ima vrlo ograničene mogućnosti i neotporna je na bilo kakve promene u vezi s diskovima, particijama i fajl-sistemima na kojima se nalazi operativni sistem.

Zbog toga su neki boot loaderi napravljeni tako da nakon prve dve faze umesto direktnog podizanja operativnog sistema pokreću treću fazu koja se sastoji od većeg pa samim tim i pametnijeg programa koji je u stanju da se adaptira na promene, pročita konfiguracioni fajl i/ili da razume fajl-sistem particije na kojoj se nalazi operativni sistem koji treba da pokrene.

NT Loader (Windows)

NT Loader (ntldr) je sastavni deo novijih verzija Windowsa (NT/2000/XP/2003) i u stanju je da izađe na kraj sa dva (ili više) Windowsa, uključujući i Windows 95, 98 i Me koji nemaju NT Loader i nisu predviđeni da dele kompjuter s drugim operativnim sistemom. Najjednostavniji način da se napravi uspešan multiboot sa više instalacija Windowsa jeste da se noviji Windows instalira poslednji. Ako se pri instalaciji drugog Windowsa ne izabere upgrade postojećeg, već se taj drugi Windows instalira na odvojenu particiju, on bi trebalo da bude u stanju da prilikom instalacije otkrije postojeći Windows i konfiguriše NT Loader tako da pri startovanju kompjutera može da se bira između dva (ili više) Windowsa.

U određenim situacijama, na primer kada je disk sa drugim Windowsom naknadno ubačen u kompjuter, potrebno je ručno podesiti NT Loader da startuje Windows po izboru. NT Loader se podešava preko njegovog konfiguracionog fajla koji se naziva boot.ini, nalazi se u rootu diska C: i ima atribute hidden i system. Zato je pre njegove promene potrebno prvo skloniti te atribute u konzoli komandom

attrib -h -s C:\boot.ini

Kada je na kompjuteru samo jedan Windows, boot.ini izgleda otprilike ovako:

[boot loader]

timeout=30

default=multi(0)disk(0)rdisk(0)partition(1)\ WINDOWS

[operating systems]

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS= "Microsoft Windows XP Professional” /fastdetect

Ono „multi(0)disk(0)rdisk(0)partition(1)” ukazuje na to na kojoj particiji, kog diska, na kom kontroleru se nalazi Windows. Da bi se, na primer, dodao Windows 2000 instaliran u WINNT folder na prvoj particiji drugog diska, u boot.ini treba dopisati:

multi(0)disk(1)rdisk(0)partition(1)\WINNT= "Windows 2000” /fastdetect

a ako se nalazi na drugoj particiji prvog diska (znači istog na kojem je XP), u boot.ini treba upisati:

multi(0)disk(0)rdisk(0)partition(2)\WINNT= "Windows 2000” /fastdetect

Struktura boot.ini fajla detaljnije je objašnjena na www.microsoft.com/resources/documentation/Windows/XP/all/reskit/en-us/prmc_str_masc.asp.

Lilo (Linux loader)

NT Loader je moguće naterati da startuje Linux (ili neki drugi sistem koji nije Windows), ali ne bez pomoći drugog boot loadera. Da bi se ovo izvelo, potrebno je propisno instalirati i podesiti neki drugi boot loader (Lilo, Grub...) sposoban da butuje dotični operativni sistem, kopirati njegov boot sektor u fajl (komandom dd) i dodati u boot.ini nešto kao:

C:\nekifajl=NekiOS

Ima više načina da se ovo izvede, a jedan je detaljno opisan na www.tldp.org/HOWTO/Linux+NT-Loader.html.

Ovako podešen, NT Loader zapravo samo daje korisniku mogućnost da izabere i OS koji nije Windows sa spiska koji nudi, ali prepušta drugom loaderu posao startovanja tog OS-a.

Lilo (Linux loader) jeste veoma raširen loader za Linux, koji pored svoje primarne funkcije (butovanja Linuxa) sasvim dobro izlazi na kraj i s drugim operativnim sistemima, stvarajući vrlo važan uslov za koegzistenciju Linuxa s drugim operativnim sistemima. Sve u vezi sa Lilom podešava se u njegovom konfiguracionom fajlu koji se nalazi u /efc/lilo.conf. Posle izmene fajla potrebno je pokrenuti Lilo (kao root korisnik) da bi boot record(i) bili upisani tako da odgovaraju promenama u konfiguraciji.

Postoji puno opcija koje se mogu staviti u lilo.conf, ali kada se iz tipičnog konfiguracionog fajla izostavi sve što je manje bitno i ono što nema previše smisla menjati, ostaje otprilike sledeće:

boot = /dev/hda

image = /boot/vmlinuz

root = /dev/hda2

label = Linux

other = /dev/hda1

label = Windows

Opcija boot definiše u koji sektor će Lilo biti upisan i u ovom slučaju znači da će Lilo biti upisan u MBR primary master diska.

Sledeća tri reda su opcije vezane za pokretanje Linuxa: image definiše koji kernel se učitava kada se u boot meniju izabere „Linux”, a root definiše koja particija će biti montirana kao „/” pri startovanju Linuxa. Ukoliko distribucija koristi initial ramdisk prilikom startovanja, sa initrd=/neki/fajl može se definisati fajl koji sadrži taj RAM-disk.

Poslednja dva reda su opcije koje se odnose na pokretanje Windowsa koji se nalazi na particiji hda1, a other je opcija koja se koristi za startovanje svih operativnih sistema koji nisu Linux i u principu znači da se startovanje tih operativnih sistema prepušta njihovim boot loaderima.

Pošto će Windows 95/98 odbiti da radi ako nije na primary master disku, opcijom

boot-as=0x80

Lilo može da ga „ubedi” da je na primary masteru, bez obzira na to gde se nalazi.

Pored startovanja različitih operativnih sistema, Lilo može da startuje istu distribuciju sa različitim kernelima:

image = /boot/vmlinuz

root = /dev/hda2

label = Default

image = /boot/vmlinuz2

root = /dev/hda2

label = NoviKernel

Ovo je praktično rešenje pri eksperimentisanju s novim kernelima ili kernelima kompajliranim u kućnoj radinosti jer ako novi kernel iz nekog razloga zakaže, ostaje mogućnost butovanja s prethodnom, funkcionalnom verzijom kernela.

Kod eksperimentisanja sa boot loaderom vrlo dobra praksa je da se MBR prvo upiše na disketu, pri čemu MBR diska ostaje netaknut, pa da se MBR upiše na disk tek kada se ispostavi da sa diskete sve radi kako treba.

To se sa Lilom postiže tako što se u konfiguracionom fajlu umesto

boot=/dev/hda

stavi

boot=/dev/fd0

GRUB (GRand Unified Boot loader)

Grub je konceptualno drugačiji od ostalih boot loadera. Pre svega, Grub ume da čita fajl-sisteme (Linuxove i FAT), što mu daje mogućnost da učita kernel OS-a ili svoj konfiguracioni fajl sa bilo kog mesta na disku. Isto tako, njegov shell omogućava zadavanje parametara za vreme butovanja što, u kombinaciji sa autocompleteom za imena fajlova, diskova i particija, omogućava interaktivno „napipavanje” ispravnog načina za butovanje koji se onda može ubaciti u konfiguracioni fajl.

Za potrebe eksperimentisanja može se napraviti butabilna disketa sa Grubom:

# cd /usr/local/lib/grub/i386-pc/

# dd if=stage1 of=/dev/fd0 bs=512 count=1

# dd if=stage2 of=/dev/fd0 bs=512 seek=1

U zavisnosti od distribucije i opcija pri instaliranju, fajlovi stage1 i stage2 mogu eventualno biti i u nekom drugom direktorijumu.

Butovanjem sa ove diskete dobija se grub shell. Imena particija u Grubovom shellu su u formi „(hdx,y)” gde je „x” redni broj diska, a „y” redni broj particije na njemu. Redni brojevi počinju od „0” pa tako, na primer, (hd1,2) označava treću particiju drugog diska, dok (hd0) označava ceo prvi disk i može se koristiti pri upisivanju master boot recorda.

Tipična sekvenca komandi za startovanje Linuxa koji se nalazi na drugoj particiji prvog diska bila bi:

kernel (hd0,1)/boot/vmlinuz root=/dev/hda2

boot

Pritisak na ’Tab’ pri kucanju imena diska, particije ili fajla aktivira autocomplete i praktično eliminiše greške u kucanju i mnoge nedoumice o tome gde se šta na diskovima nalazi. Za nedoumice koje autocomplete ne može da reši postoje komande find i cat. Komanda help daje spisak svih komandi, a help ime_komande daje objašnjenje za specifičnu komandu.

Za butovanje Windowsa koji se nalazi na prvoj particiji prvog diska treba kucati:

root (hd0,0)

chainloader +1

boot

Ako treba, na primer, pokrenuti Windows 98 sa diska koji nije primary master, komande

map (hd0) (hd1)

map (hd1) (hd0)

čine da Windows „misli” da je disk na kojem se nalazi prikačen kao primary master.

Kada je eksperimentisanje završeno, dobitna kombinacija parametara pri butovanju može se upisati u konfiguracioni fajl i Grub se može trajno upisati u MBR hard diska. Pre svega potrebno je napraviti direktorijum /boot/grub i tu kopirati stage1, *_stage1_5 („*” odgovara fajl sistemu na particiji „/”) i stage2. Konfiguracioni fajl je /boot/grub/menu.lst i može da izgleda, na primer, ovako:

timeout 10

default 0

title Linux

kernel (hd0,1)/boot/vmlinuz root=/dev/hda2

initrd (hd0,1)/neki/fajl

title Windows

root (hd0,0)

chainloader +1

Za potrebe upisivanja boot recorda grub shell se može pokrenuti i iz Linux konzole. Komande

root (hd0,1)

setup (hd0)

upisuju stage1 Gruba u MBR prvog diska, pri čemu direktorijum /boot/grub treba da bude na drugoj particiji tog diska, tj. na (hd0,1) po Grubovoj konvenciji.

Kompajlirani Grub i njegov konfiguracioni fajl (to jest fajlove stage1, fat_stage1_5, stage2 i menu.lst) moguće je staviti u direktorijum \boot\grub na FAT particiji kompjutera koji uopšte nema Linux i koristiti ga u situacijama s kojima NT Loader nije u stanju sam da izađe na kraj. Kad se Grub ovako koristi, nije moguće dobiti Grub shell u Windowsu za potrebe upisivanja (master) boot recorda, pa je zgodno imati pri ruci disketu sa Grubom s kojom se može doći do Grubovog shella.

Ko radi, taj i greši

A ko baš i ne zna šta radi, taj prilično greši. Kod igranja s multibootom lako može da se dođe u situaciju da neki ili svi instalirani operativni sistemi ne mogu da se pokrenu. Za rešavanje ovakve situacije pre svega je dobra praksa sačuvati ispravnu kopiju konfiguracionog fajla boot loadera (boot.ini, lilo.conf...). Kada ona postoji, potrebno je butovati je sa instalacionog CD-a Windowsa, doći do Recovery console, vratiti stari konfiguracioni fajl na svoje mesto i fixmbr i fixboot komandama upisati ispravne boot recorde.

I kod Linuxa je potrebno butovati sa CD-a, doći do shella, montirati particiju na kojoj je instaliran Linux (u ovom primeru na /mnt/hd), vratiti stari konfiguracioni fajl i pokrenuti Lilo:

# lilo -r /mnt/hd

ili možda

#/mnt/hd/sbin/lilo -r /mnt/hd

ako Lilo nije među programima dostupnim iz shella instalacionog CD-a. Za korisnike koji su potpuni početnici, mnoge distribucije imaju neku user-friendly alatku za „opravljanje” boot recorda dostupnu sa instalacionog CD-a.

U ovakvim situacijama Grub ima tu veliku prednost što se pri startovanju može ući u njegov shell i metodom „pokušaja i promašaja” mogu se naći dobri parametri za butovanje, nezavisno od toga šta stoji u konfiguracionom fajlu.

• • •

Za sasvim jednostavne situacije, npr. butovanje dva Windowsa, NT loader će završiti posao. Za složenije scenarije butovanja i potrebe eksperimentisanja, naročito ako u kombinaciju ulazi i Linux, pravi izbor je definitivno Grub jer je dovoljno fleksibilan za vrlo komplikovane scenarije butovanja, a lak za upotrebu u jednostavnim situacijama.

Marko JOVANOVIĆ

 
 NOVE TEHNOLOGIJE
Phase change memorija
Samoisceljujući sistemi

 PRIMENA
Data mining
Računarska umetnička dela

 NA LICU MESTA
„Cannon Kick-off”, Palić
Logitech prezentacija, Zagreb
LG donacija, Klinički centar Srbije
Tablet PC uči ćirilicu, Microsoft SCG

 KOMPJUTERI I FILM
„Ratovi zvezda – Epizoda III: Osveta Sita”

 SERVIS
Multiboot
Šta mislite o ovom tekstu?
Home / Novi brojArhiva • Opšte temeInternetTest driveTest runPD kutakCeDetekaWWW vodič • Svet igara
Svet kompjutera Copyright © 1984-2018. Politika a.d. • RedakcijaKontaktSaradnjaOglasiPretplata • Help • English
SKWeb 3.22
Opšte teme
Internet
Test Drive
Test Run
PD kutak
CeDeteka
WWW vodič
Svet igara



Naslovna stranaPrethodni brojeviOpšte informacijeKontaktOglašavanjePomoćInfo in English

Svet kompjutera