GNU GRUB

Linux.fista
Versio hetkellä 15. maaliskuuta 2009 kello 00.32 – tehnyt Heikki (keskustelu | muokkaukset) (Käyttäjän 193.201.98.4 (keskustelu) muokkaukset kumottiin ja sivu palautettiin viimeisimpään käyttäjän Heikki tekemään versioon.)
Siirry navigaatioon Siirry hakuun
GRUB

GRUB käynnistämässä Ubuntua
Käyttöliittymä teksti
Lisenssi GPL
Kotisivu gnu.org/software/grub

Grub on nykyään suosituin Linux-jakelujen käyttämä käynnistyslatain eli vyöryttäjä, joka nimensä mukaisesti aloittaa käyttöjärjestelmän lataamisen tietokoneen käynnistyksen jälkeen.

Asetukset

Grubin asetusten sijainti vaihtelee. Joskus ne ovat tiedostossa /etc/boot/grub.conf (samassa hakemistossa olevaa menu.lst:tä käytetään monissa ohjeissa mutta se on itse asiassa vain symbolinen linkki kyseiseen grub.conf tiedostoon). Monet jakelut sijoittavat grubin asetuksia myös /boot/grub -hakemistoon.
Asetustiedosta on yleensä alussa muutamia perusasetuksia:

  • timeout ARVO — monenko sekunnin kuluttua valikon näyttämisestä ladataan oletusjärjestelmä ellei valikossa ole liikuttu
  • default ARVO — oletuksena ladattavan järjestelmän numero, ensimmäisenä asetustiedostossa oleva on numero 0, sitä seuraava 1 jne.
  • splashimage TIEDOSTO - Grubin taustakuvana oleva 14-värinen indeksoitu .xpm.gz-tiedosto 640x480-resoluutiolla (aukeaa suoraan GIMPillä). Ohje splash-kuvan vaihtoon Fedorassa. Esimerkki:
splashimage=(hd0,1)/boot/grub/splash.xpm.gz

Käyttöjärjestelmät ja ytimet

Perusasetusten jälkeen on yleensä käyttöjärjestelmät/ytimet, jotka näytetään alkuvalikossa. Grub osaa ladata erilaisia käyttöjärjestelmiä, mutta eri järjestelmille vaaditaan omanlaiset käynnistysrivit.

GNU/Linux

title GNU/Linux
root (hdx,y)
kernel /kernel-x.y.z root=/dev/hdXY
initrd /initrd.img
  • Title-kohta kertoo valikossa näkyvän nimen, tässä tapauksessa GNU/Linux
  • Root-kohta kertoo levyaseman, josta ydin haetaan. Huomaa että Grubin nimeämiskäytäntö on erilainen kuin Linuxissa yleensä. Esimerkiksi ensimmäisen levyn ensimmäinen osio on (hd0,0)
  • Kernel kertoo polun ytimeen root-kohdassa mainitulla levyasemalla. Ytimen perään voidaan laittaa kernelille annettavia parametreja, tässä tapauksessa tieto siitä mitä juuriosiota käytetään (esim. /dev/hda1 tai /dev/sda1)
  • Initrd taas kertoo käytettävän initrd-kuvan sijainnin root-kohdassa mainitulla levyasemalla. Initrd:tä ei käytetä aina.

Microsoft Windows

title Windows
rootnoverify (hdx,y)
makeactive
chainloader +1

Title-kohta on selvä. Rootnoverifyssä annetaan samalla tavalla kuin Linuxinkin tapauksessa Windowsin levyasema. Tämän jälkeen kaksi viimeisintä riviä suorittavat Windowsin oman lataimen.

Samalla tavalla voi ladata myös muita käyttöjärjestelmiä joilla on oma käynnistyslatain, kuten OS/2.

Jos Windows (hdx) on omalla levyllä ja linux (hdz), tarvitaan seuraavat komennot :

map (hdz,y) (hdx,y)
map (hdx,y) (hdz,y)
rootnoverify (hdx,0)
chainloader +1

Kommentointi

Asetustiedostoon voi lisätä kommentteja mielensä mukaan, merkillä # alkavat rivit ovat kommentteja, eikä Grub ota niitä huomioon.

Asetusten muokkaaminen käynnistyksen yhteydessä

Grub mahdollistaa käynnistysasetusten muokkaamisen käynnistyksen yhteydessä. Tämä on hyödyllistä esimerkiksi vikatilanteissa tai jos halutaan kertaluonteisesti testata tiettyjen asetusten vaikutusta.

Muokkaaminen tapahtuu Grubin alkuvalikossa painamalla muokattavan käyttöjärjestelmän kohdalla e-painiketta. Tällöin näkyviin aukeaa kyseisen käyttöjärjestelmän asetukset suoraan /boot/grub/menu.lst-tiedostosta. Haluamaansa riviä pääsee muokkaamaan valitsemalla sen nuolilla ja painamalla sitten e:tä toistamiseen. Kun halutut muutokset on tehty, palataan muokkaustilasta enterillä. Kun kaikki muutokset on tehty, käynnistetään haluttu käyttöjärjestelmä painamalla b:tä.

Esimerkiksi haluttu Linux-käyttöjärjestelmä voitaisiin käynnistää yhden käyttäjän tilaan seuraavasti: painetaan käyttöjärjestelmän rivin kohdalla e:tä ja valitaan aukeavasta listasta rivi, joka alkaa sanalla kernel. Painetaan e:tä ja lisätään rivin loppuun sana (ytimen käynnistysparametri) single. Poistutaan muokkaustilasta enterillä ja käynnistetään käyttöjärjestelmä b:llä.

On huomattava, että näin tehdyt asetukset eivät tallennu mihinkään. Asetukset saa pysyviksi muokkaamalla /boot/grub/menu.lst-tiedostoa.

Salasanasuojaus

Oletuksena Grub mahdollistaa käynnistysoptioiden muokkaamisen ja vikasietotilaan (engl. recovery mode) käynnistämisen. Näistä ominaisuuksista on hyötyä, jos järjestelmän kanssa esiintyy vakavia ongelmia, mutta toisaalta ne myös mahdollistavat pääkäyttäjänä kirjautumisen kaikille henkilöille, jotka pääsevät koneeseen fyysisesti käsiksi. Haluttaessa voidaan Grubiin asettaa salasana, joka tarvitaan, jos halutaan muokata käynnistysoptioita tai käyttää vikasietotilaa.

Grubille voidaan asettaa salasana kirjoittamalla se asetustiedostoon joko selväkielisenä tai tallentamalla vain sen MD5-tunniste. MD5-tunnisteen käyttö on turvallisempi tapa, ja sitä käytetään tässä.

Luodaan aluksi haluamamme salasanan MD5-tunniste käyttämällä komentoa grub-md5-crypt. Tämä ohjelma kysyy salasanan kaksi kertaa ja jos salasanat ovat samat, se tulostaa kasan kirjaimia, numeroita ja erikoismerkkejä. Ota tämä merkkisotku talteen: se on salasanasi salatussa muodossa.

Seuraavaksi lisätään Grubin asetustiedostoon tämä salasana. Ennen ensimmäistä käyttöjärjestelmäkohtaa lisää rivi

password --md5 merkkisotku

esimerkikiksi

password --md5 $1$xElvT$4hZMmduLa9/I70kiEAW8x1

Nyt Grub kysyy salasanaa aina, kun käynnistysoptioita muokataan tai halutaan käynnistää sellainen käyttöjärjestelmä, jolle on asetustiedostossa asetettu lock-asetus. Esimerkiksi:

title           Ubuntu hardy, kernel 2.6.24-16-generic (recovery mode)
root            (hd0,1)
kernel          /boot/vmlinuz-2.6.24-16-generic root=UUID=aff9476e-3978-414d-b327-1c9f6989c68a ro single
initrd          /boot/initrd.img-2.6.24-16-generic
lock

Monissa jakeluissa käytetään update-grub-ohjelmaa valikon päivittämiseen mm. ytimen päivityksen jälkeen. Tällöin luodaan normaalisti mahdollisuus käyttää vikasietotilaa eikä sitä lukita. Kaikki vikasietotilat voidaan lukita automaattisesti muokkaamalla asetustiedoston alkupuolelta kohtaa

## should update-grub lock alternative automagic boot options
## e.g. lockalternative=true
##      lockalternative=false
# lockalternative=false

ja muuttamalla siitä alin rivi muotoon

# lockalternative=true

Huomaa, että rivin edessä täytyy olla yksi kommenttimerkki!

Nyt Grubin alkuvalikossa käynnistysrivien muokkaus e:tä painamalla tai vikasietotilaan siirtyminen ei onnistu, vaan nämä ominaisuudet on avattava antamalla salasana. Salasana annetaan painamalla ensin p:tä.

Asennus

Grub voidaan helposti asentaa komennolla grub-install /dev/levy, esimerkiksi asennettaessa Grub ensimmäisen kovalevyn käynnistyslohkoon, komento olisi:

grub-install /dev/sda

tai

grub-install /dev/hda

Komento vaatii, että tiedostossa /etc/mtab on tiedot liitetyistä tiedostojärjestelmistä. Tästä pitää kantaa huolta lähinnä asennettaessa Grubia chroot-ympäristössä, jolloin tiedostoa ei ole luotu automaattisesti. Tällöin tiedosto voidaan luoda proc-järjestelmän perusteella seuraavaan tapaan:

grep -v rootfs /proc/mounts > /etc/mtab

Tämä edellyttää toimivan /proc-tiedostojärjestelmän olemassaoloa chrootin alla. /procin saa näkyviin antamalla ennen chrootin käynnistystä komento

mount -o bind /proc /mnt/[liitospiste]/proc

Grub-installin käyttö edellyttää myös toimivaa /dev-tiedostojärjestelmää. Sellaisen liittäminen onnistuu komennolla

mount -o bind /dev /mnt/[liitospiste]/dev

ennen chrootin ajamista. Samalla tavalla voidaan liittää myös /dev/pts sekä /sys.

Mikäli olet asentamassa Grubia esimerkiksi levylle /dev/sda ja saat virheilmoituksen

/dev/sda does not have any corresponding BIOS drive.

voit yrittää päivittää grubin levytietokannan komennolla

grub-install --recheck /dev/sda

Mikäli grub-install ei jostain syystä suostu toimimaan esimerkiksi chrootin alla, voit silti asentaa Grubin käyttämällä grub-ohjelman sisäistä komentotulkkia.

Käynnistä grub-ohjelma komennolla

grub

ja anna sen jälkeen (esimerkiksi) komennot

grub> root (hd0,0)
grub> setup (hd0)
grub> quit

Ensimmäinen komento määrittää Grubin tiedostojen (/boot-hakemisto) sijainnin, toinen asentaa Grubin valitun kiintolevyn käynnistyslohkoon ja kolmas sulkee Grubin. Osioiden ja levyjen nimeämisessä käytetään Grubin omaa standardia, jossa esimerkiksi (hd0,0) tarkoittaa ensimmäisen kiintolevyn ensimmäistä osioita, (hd4) järjestelmän viidettä kiintolevyä ja (fd0) ensimmäistä levykeasemaa.

Katso myös

Aiheesta muualla