ernetas
Vasaris 20, 2007

Dirbame su GRUB

GNU – GRand Unified Bootloader, bootloader’is (programa, kuri leidžia vartotojams užkrauti operacinę sistemą ir jų turėti daugiau negu vieną; ji yra būtina kompiuterio krovimuisi). Pasistengsiu aprašyti trumpą jo konfigūravimą daugeliui OS.


Truputis istorijos

„gimė“ 1995 m. Jo kūrėjas – Erich Stefan Boleyn. Erich’as bandė paleisti GNU Hurd (kernelio analogas sistemų kernel’iams). Kartu su Brian Ford jie suformavo multikrovimosi (iš angl. k. multiboot; nesupraskite tiesiogine prasme, nes aš turiu omenyje tai, kad multiboot yra funkcija, kuri leidžia prieš kraunant OS pasirinkti kurią OS užkrauti) specifikacijas. Šios specifikacijos nurodė kaip turėtų veikti multikrovimasis. Vėliau Erich’as bandė modifikuoti FreeBSD bootloader’į taip, kad jis galėtų krauti daugiau negu vieną OS. Visgi jis suprato, kad modifikuoti bus sunkiau ir rezultatas gausis blogesnis negu rašant savo bootloader’į. Taip jis ir padarė t. y. sukūrė savo bootloader’į. Rezultate turime labai galingą ir vieną populiariausių bootloader’ių.

instaliavimas

Iš pradžių aptarsiu instaliavimą. Pirmiausiai turime gauti kokį nors LiveCD (rekomenduoju su fdisk ir būtinai su ‘o paketais) ir jį užsikrauti. Pavyzdžiuose mes naudosimės Ubuntu 6.10 Edgy Eft LiveCD. Kai jau gavote LiveCD tai sukurkite bet kokios failų sistemos particiją (būtinai nurodykite tipą kaip primary), kurios dydis būtų apytiksliai 30 MB, pagal mano parašytą straipsnį apie fdisk. Žinoma galite naudotis taip pat Ubuntu 6.10 LiveCD esančiu GParted. Tai grafinis particijų valdiklis, bet nemanau, kad mums jis reikalingas, nes viską galime padaryti su fdisk (nebent reikia „apkarpyti“ particiją, bet tada galime pasinaudoti Partition Magic, kurį nemokamai galime rasti Hiren’s BootCD kompakte). Nepamirškime uždėti boot žymę šiai particijai, o kitoms nuimti (kai kur tai traktuojama kaip Active režimas). Kompiuteris pirmiausiai naudos šią particiją.
Dabar pasirinkime failų sistemą. Aš rekomenduoju naudoti ext2, nes jos parametrai labiau tinkami negu ext3 ar kitų failų sistemų. Jeigu norime naudoti ext2 įvykdykime:

# mke2fs /dev/xdyi

Vietoje x rašykite h (IDE naudojantis įrenginys) arba s (SCSI įrenginys). Vietoje y rašykite:
a arba b – Master ir Slave diskai prijungti prie pirminio prievado, 1 IDE kontroleriaus;
c arba d – Master ir Slave diskai prijungti prie antrinio prievado, 1 IDE kontroleriaus;
e arba f – Master ir Slave diskai prijungti prie pirminio prievado, 2 IDE kontroleriaus;
g arba h – Master ir Slave diskai prijungti prie antrinio prievado, 2 IDE kontroleriaus.
O vietoje i rašykite particijos numerį, į kurią sukurėte ‘ui.
Pavyzdžiui:

# mke2fs /dev/hda1

Štai komandų sąrašas failų sistemoms:
ext2 – mke2fs
ext3 – mke2fs -j
reiserfs – mkreiserfs
xfs – mkfs.xfs
jfs – mkfs.jfs

Pasileiskite terminalą ir iš LiveCD vykdykite šią komandą:

# -install /dev/xdy

Pavyzdžiui:

# -install /dev/hda

Atminkite, kad sistemose skaičiai šalia įrenginio reiškia jo padalinį, todėl šiuo atveju skaičiaus nereikia nurodyti, nes taip instaliuotume ‘ą į particiją, o ne kietąjį diską. Jeigu instaliuotume į particiją tai norint užkrauti tą ‘ą mums reikėtų dar vieno bootloader’io, kuris būtų įdiegtas tame kietąjame diske iš kurio pasieksime tą ‘ą. Bet mes šiame straipsnyje aptariame ‘ą pagrindiniame kietąjame diske t. y. įrašytą į MBR (Master Boot Record - HDD takelis, kurį nuskaito ir įvykdo BIOS’ai, taip jie pratęsia kompiuterio krovimąsi ir darbą perduoda bootloader’iui).
Suinstaliavę ‘ą galime pradėti jo konfigūravimą. Tik prieš tai nustatykime default ir timeout reikšmes: default rekomenduoju nurodyti 0 (bus kraunamas pats pirmasis meniu punktas, jeigu jūs per nurodytą laiką nepasirinksite ką krauti), o timeout rekomenduoju nurodyti 10, jeigu nurodysite daugiau negu vieną meniu punktą (bus laukiama 10 sekundžių iki numatytosios OS krovimo), arba 0, jeigu nurodysite tik vieną meniu punktą (OS bus kraunama iš karto t. y. nematysite pasirinkimo meniu).

‘o konfigūravimas ‘ui

Primontuokime prie /boot ‘o particiją:

# mkdir /mnt/boot
# mount /dev/xdyi /mnt/boot

Atsidarykime konfigūracinį failą:
# nano -w /mnt/boot//menu.lst
Pridėkime šias eilutes:
# Meniu punkto pavadinimas, kurį matysime meniu
title
# Nurodome kernel’io particiją su HDD
# root ([hd – IDE vartotojams; sd – SCSI įrenginių vartotojams][kietojo disko numeris(pirmasis diskas ne 1, o 0!)],[particijos numeris(pirmoji particija ne 1, o 0!), kurioje yra kernel’is])
# Pavyzdžiui:
root (hd0,0)
# Tai atitiktų /dev/hda1 particiją

# kernel [nurodykite kernelį] root=[nurodykite šakninę (/) particiją]
# Pavyzdžiui:
kernel /boot/kernel root=/dev/hda2

Galutinį variantą šio meniu punkto be komentarų galite gauti http://pixel.paste.lt/paste/a0df3e0bde66e5c56f43fdc444e7f5c1 adresu.
Išsaugoję konfigūracinį failą perkraukite kompiuterį ir jau galite užkrauti savo distribuciją.

Per ‘ą užkrauname kitą bootloader’į

Dažnai pasitaiko, kad reikia užkrauti kokią nors Windows OS/Solaris/*BSD ar kitą operacinę sistemą. Bet Windows reikalauja savo bootloader’io. Yra OS, kurios nereikalauja savo bootloader’io ir jas galima sukonfigūruoti pagal konfigūravimą, bet jeigu mes neturime laiko tai sekime straipsnį toliau, o ne grįžkime prie ‘o konfigūravimo ‘e. Šioje straipsnio dalyje aptarsime kitų OS užkrovimą.
Mes pasirinksime paprastesnį būdą (jis yra universalesnis negu priversti kokią nors Microsoft Windows nuskaitinėti ir įrašinėti ‘o particiją ir per Windows ar tą kitą OS konfigūruoti ‘ą) – užsikrausime mūsų pasirinktą LiveCD ir redaguosime ‘o konfigūracinį failą. Bet prieš redaguodami nepamirškime prisimontuoti savo ‘o particiją:
# mkdir /mnt/boot
# mount /dev/xdyi /mnt/boot

Redaguokime ‘o konfigūraciją:
# nano -w /mnt/boot//menu.lst
Pridėkime šias eilutes:
# Meniu punkto pavadinimas, kurį matysime meniu
# Pavyzdžiui:
title=Windows XP Professional
# Nurodome kurią particiją naudoti
# rootnoverify ([hd – IDE vartotojams; sd – SCSI įrenginių vartotojams][kietojo disko numeris(pirmasis diskas ne 1, o 0!)],[particijos numeris(pirmoji particija ne 1, o 0!), kurioje yra sekantis bootloader’is/operacinė sistema])
# Pavyzdžiui:
rootnoverify (hd0,0)
# Kai kurios OS (Windows OS toji eilutė nėra būtina) reikalauja, kad jų particijos būtų aktyvios, bet jeigu naudojame atskiroje particijoje tai aktyvi yra ne tos OS, o ‘o particija. Todėl rekomenduoju konfigūraciniame faile nurodyti tolimesnę eilutę.
maceactive
# Tolimesnė eilutė nurodo ‘ui perleisti bootloader’io darbą kitam bootloader’iui, kuris yra rootnoverify eilutėje nurodytoje particijoje. Priešingai negu buvusi eilutė, ši eilutė yra būtina
chainloader +1

Išsaugoję konfigūracinį failą ir perkrovę kompiuterį mes jau galime naudotis norimu bootloader’iu.

Galutinį variantą be komentarų galite gauti adresu http://pixel.paste.lt/paste/8d2abf280b6377e2562d550499612e38.

meniu fonas

‘as turi įdomią funkciją (numatyta, kad ji susikompiliuoja jeigu jūs neliepiate kompiliatoriui jos nekompiliuoti, todėl neaprašysiu ką daryti jeigu mūsų ‘as neturi tokios funkcijos, apie tai galite pasiskaityti pabaigoje pateiktoje nuorodoje), kuri leidžia mums nustatyti kokio nors paveikslėlio rodymą meniu fone. Iš tikrųjų tai gana daug pagražina mūsųs sistemos krovimąsi. Deja, reikia atminti, kad dydis ribojamas iki 640×480, o spalvų kiekis iki 14, bet ir tai galima puikiai išnaudoti.

Pirmiausiai nusipieškime paveikslėlį, kurio dydis maždaug atitiktų 5:4 santykį (jeigu galima tai pieškite 640×480 iš karto, nes taip išvengsite iškraipymų keičiant dydį). Dabar atidarykime jį su The Gimp ir pakeiskime jo dydį:

Paveikslėlis–>Keisti paveikslėlio dydį

Nuimkime grandinę (GIMP grandinė) ir “Plotis” laukelyje įrašykime 640, o laukelyje “Ilgis” - 480. Spustelėkime mygtuką “Ištempti”.

Dabar sumažinkime spalvų kiekį.

Sluoksniai–>Spalvos–>Spalvų sumažinimas…

Sumažinkime spalvų iki 14 ir paspauskime “Gerai”.
Dabar išsaugokime paveikslėlį (Byla–>Išsaugoti kaip…) XPM (X PixMap) formatu ir šia komanda jį suspauskime:

$ tar -cf [paveikslėlis].tar [paveikslėlis]
Paveikslėlį nukopijuokime į /boot katalogą (nepamirškime jo prisimontuoti kaip tai darėme kiekvieno konfigūravimo pradžioje):

# cp [paveikslėlis].tar /boot/[paveikslėlis].tar
Atsidarykime ‘o konfigūraciją:

# nano -w /boot//menu.lst

Ir prirašykime po eilute “timeout” šias eilutes:

root ([hd – IDE vartotojams; sd – SCSI įrenginių vartotojams][kietojo disko numeris(pirmasis diskas ne 1, o 0!)],[particijos numeris(pirmoji particija ne 1, o 0!), kurioje yra sekantis bootloader'is/operacinė sistema])

splashimage /boot/[paveikslėlis].tar
Pavyzdžiui:

root (hd0,0)
splashimage /boot/vista.xpm.tar

Pastaba. Vietoje “[paveikslėlis]” parašykite paveikslėlio failo pavadinimą. Pvz.:

$ tar -cf pict.xpm.tar pict.xpm

Slaptažodžiai

Norėdami apsaugoti ‘ą jūs galite pasinaudoti GRUB apsaugojimas straipsniu. Jame puikiai išdėstyta kaip uždėti slaptažodį ant ‘o ir apsaugoti jį.

Pabaiga

Apibendrinant ‘as yra pakankamai galingas bootloader’is, kuris ateityje manau išpopuliarės dar labiau. ‘as įdedamas beveik į visas OS, o ir būti pasiruošusiam diegimui visada būna pravartu. Tikiuosi, kad jums pavyko puikiai sukonfigūruoti ‘ą ir šis straipsnis dar labiau padidins ‘o vartotojų skaičių.

Plačiau apie paveikslėlius meniu fone galite pasiskaityti adresu http://ruslug.rutgers.edu/%7Emcgrof/grub-images/.

Panašūs straipsniai


“Dirbame su GRUB” komentarų: 1

  1. » Savaitgalio skaitiniai #15 Archyvas » Pixel.lt

    […] Sveiki, atsiprašau jog šį savaitgalį skaitiniai šiek tiek vėluoja, tikiuosi labai nesupykot Skaitiniai: Google Apps APIs Ruby On Rails Acts_As_Ferret Tutorial Are you a Programmer or a Coder? The importance of checking your error messages Taip pat šį savaitgalį buvo publikuoti erneto ir commandoso straipsniai atitinkamai Dirbame su GRUB ir Kas yra “META” žymės?. […]

Rašyti komentarą

Jūs privalote prisijungti jeigu norite rašyti komentarą.