GNU GRUB
GRUB | |
---|---|
GRUB käynnistämässä Ubuntua | |
Käyttöliittymä | teksti |
Lisenssi | GPL |
Kotisivu | gnu.org/software/grub |
GRUB (GRand Unified Bootloader) 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. Nykyään jakelut ovat hiljakseen siirtymässä käyttämään uutta GNU GRUB 2 -latainta.
Asetukset[muokkaa]
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[muokkaa]
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[muokkaa]
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[muokkaa]
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[muokkaa]
Asetustiedostoon voi lisätä kommentteja mielensä mukaan, merkillä # alkavat rivit ovat kommentteja, eikä Grub ota niitä huomioon.
Asetusten muokkaaminen käynnistyksen yhteydessä[muokkaa]
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 /etc/default/grub-tiedostoa ja suorittamalla jakelusta riippuen
# update-grub
tai
# grub2-mkconfig -o /boot/grub2/grub.cfg
Salasanasuojaus[muokkaa]
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[muokkaa]
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.