Ero sivun ”GNU GRUB 2” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
p (→‎Aiheesta muualla: Lisätty virallisen manuaalin osoite)
(Tarkennettu artikkelia omien rankkojen kokemusten valossa. Jonkun pitäisi lisätä edelleen tietoa mm. grub-set-default- ja grub-reboot -komennoista.)
Rivi 37: Rivi 37:
#GRUB_DISABLE_LINUX_RECOVERY="true"
#GRUB_DISABLE_LINUX_RECOVERY="true"
</pre>
</pre>
*<tt>GRUB_DEFAULT</tt>: Oletuksena valittuna oleva ydin (alkuvalikon kohdan). Arvo 0 tarkoittaa listan ensimmäistä ydintä/käyttöjärjestelmää, 1 toista jne. Arvo <tt>saved</tt> viittaa edelliseen käynnistettyyn ytimeen.
*<tt>GRUB_DEFAULT</tt>: Oletuksena valittuna oleva ydin (alkuvalikon kohdan). Arvo 0 tarkoittaa listan ensimmäistä ydintä/käyttöjärjestelmää, 1 toista jne. Vaihtoehtoisesti tähän voi laittaa haluamansa valikkokohdan nimen. Lisäksi on mahdollista laittaa arvoksi <tt>saved</tt>, jolloin Grub valitsee tallennetun järjestelmän. Tämän arvon on oltava <tt>saved</tt>, mikäli halutaan, että <tt>[http://www.gnu.org/software/grub/manual/legacy/Invoking-grub_002dset_002ddefault.html grub-set-default]</tt> ja <tt>[http://wiki.debian.org/GrubReboot grub-reboot]</tt> -komennot toimivat.
*<tt>GRUB_SAVEDEFAULT</tt>: Jos tämä on <tt>true</tt>, Grub tallentaa käynnistettävän järjestelmän muistiin, ja käynnistää sen seuraavallakin kerralla, mikäli <tt>GRUB_DEFAULT</tt>-muuttujan arvo on <tt>saved</tt>.
*<tt>GRUB_TIMEOUT</tt>: Aika sekunteina, jonka jälkeen oletuksena valittu ydin käynnistetään.
*<tt>GRUB_TIMEOUT</tt>: Aika sekunteina, jonka jälkeen oletuksena valittu ydin käynnistetään.
*<tt>GRUB_HIDDEN_TIMEOUT</tt>: Sama kuin <tt>GRUB_TIMEOUT</tt>, mutta valikkoa ei näytetä ennen kuin shift-näppäintä on painettu.
*<tt>GRUB_HIDDEN_TIMEOUT</tt>: Sama kuin <tt>GRUB_TIMEOUT</tt>, mutta valikkoa ei näytetä ennen kuin shift-näppäintä on painettu.
Rivi 49: Rivi 50:
*<tt>GRUB_DISABLE_LINUX_RECOVERY="true"</tt>: Valikkoon ei luoda mahdollisuutta käynnistää tietokonetta pelastustilaan.
*<tt>GRUB_DISABLE_LINUX_RECOVERY="true"</tt>: Valikkoon ei luoda mahdollisuutta käynnistää tietokonetta pelastustilaan.


Kun tähän tiedostoon on tehty muutoksia, on ajettava pääkäyttäjän oikeuksilla komento grub2-mkconfig -o /boot/grub2/grub.cfg
Kun tähän tiedostoon on tehty muutoksia, on ajettava pääkäyttäjän oikeuksilla <tt>grub-mkconfig</tt>-komento.
Ubuntu-käyttäjillä on oma komentonsa: tt>update-grub</tt> tai <tt>update-grub2</tt>.
grub-mkconfig -o /boot/grub2/grub.cfg
Ubuntu-käyttäjillä on oma komentonsa: <tt>update-grub</tt> tai <tt>update-grub2</tt>.
sudo update-grub


== Uuden käyttöjärjestelmän lisääminen ==
== Uuden käyttöjärjestelmän lisääminen ==
Kun <tt>update-grub</tt> tai <tt>update-grub2</tt>-komento ajetaan, käydään läpi hakemistossa <tt>/etc/grub.d</tt> olevia tiedostoja. Tiedostosta <tt>/etc/grub.d/10_linux</tt> haetaan tiedot käytettävistä Linux-ytimistä ja <tt>/etc/grub.d/30_os-prober</tt>-tiedostosta tiedot muista käyttöjärjestelmistä. Yleensä [[paketinhallintajärjestelmä]] huolehtii <tt>10_linux</tt>-tiedostosta ja <tt>30_os-prober</tt> luodaan asennuksen aikana. Tämän lisäksi tiedosto <tt>/etc/grub.d/40_custom</tt> on tarkoitettu käyttäjän käsin lisäämiä käynnistysvalintoja varten.
Kun päivityskomento ajetaan, käydään läpi hakemistossa <tt>/etc/grub.d</tt> olevia tiedostoja. Tiedostosta <tt>/etc/grub.d/10_linux</tt> haetaan tiedot käytettävistä Linux-ytimistä ja <tt>/etc/grub.d/30_os-prober</tt>-tiedostosta tiedot muista käyttöjärjestelmistä. Yleensä [[paketinhallintajärjestelmä]] huolehtii <tt>10_linux</tt>-tiedostosta ja <tt>30_os-prober</tt> luodaan asennuksen aikana. Samasta kansiosta löytyvä tiedosto <tt>/etc/grub.d/40_custom</tt> on tarkoitettu käyttäjän käsin lisäämiä käynnistysvalintoja varten.


Uusi ydin voidaan lisätä käsin lisäämällä tiedostoon <tt>40_custom</tt> seuraavan esimerkin kaltainen kohta: Oletetaan, että [[osio]]lle <tt>sda10</tt> on asennettu [[SystemRescueCD]]-jakelu. Tällöin tiedostoon lisättäisiin rivit
Uusi ydin voidaan lisätä käsin lisäämällä tiedostoon <tt>40_custom</tt> seuraavan esimerkin kaltainen kohta: Oletetaan, että [[osio]]lle <tt>sda10</tt> on asennettu [[SystemRescueCD]]-jakelu. Tällöin tiedostoon lisättäisiin rivit
<pre>
<pre>
echo "Adding SystemRescueCD" >&2
menuentry "System Rescue CD" {
menuentry "System Rescue CD" {
  set root=(hd0,10)
  set root=(hd0,10)
Rivi 64: Rivi 66:
}  
}  
</pre>
</pre>
Tässä ensimmäinen <tt>[[echo]]</tt>-rivi ei vaikuta Grubin toimintaan mutta tällä tavoin tehtynä päivityskommennon ajon yhteydessä nähdään, että yllä tehty määrittely käydään läpi. Esimerkki valaisee eri kenttien merkityksen, <tt>menuentry</tt> määrittelee näkyvän tekstin, ja <tt>root</tt> osion, josta ydin haetaan. Osioihin viitataan eri tavalla kuin vanhassa Grubissa! Laitteiden numerointi alkaa nollasta, esimerkiksi [[laitetiedosto]]a <tt>sda</tt> vastaa laite 0, <tt>sdb</tt>:tä laite 1 jne. Sen sijaan osionumerot menevät kuten Linuxissa, esimerkiksi (hd0,1) vastaa osiota <tt>sda1</tt> ja (hd0,10) osiota <tt>sda10</tt>.
Käydään esimerkki lyhyesti läpi: <tt>menuentry</tt> määrittelee näkyvän tekstin, ja <tt>root</tt> osion, josta ydin haetaan. Osioihin viitataan eri tavalla kuin vanhassa Grubissa! Laitteiden numerointi alkaa nollasta, esimerkiksi [[laitetiedosto]]a <tt>sda</tt> vastaa laite 0, <tt>sdb</tt>:tä laite 1 jne. Sen sijaan osionumerot menevät kuten Linuxissa, esimerkiksi (hd0,1) vastaa osiota <tt>sda1</tt> ja (hd0,10) osiota <tt>sda10</tt>.


<tt>linux</tt>- ja <tt>initrd</tt>-rivit kertovat, mistä hakemistosta suhteessa asetettuun juuriosioon ydin ja [[initrd]]-tiedosto löytyvät.  
<tt>linux</tt>- ja <tt>initrd</tt>-rivit kertovat, mistä hakemistosta suhteessa asetettuun juuriosioon ydin ja [[initrd]]-tiedosto löytyvät.  


Tiedostoon <tt>40_custom</tt> lisätyt ytimet ilmestyvät Grubin valikon loppuun, sillä listan järjestyksen määrää tiedostojen järjestys. Siispä jos listan alkuun halutaan lisätä omia käynnistysvalintoja, on ne laitettava tiedostoon, joka on aakkosjärjestyksessä ennen tiedostoa <tt>10_linux</tt>, esimerkiksi <tt>07_custom</tt>.
Tiedostoon <tt>40_custom</tt> lisätyt ytimet ilmestyvät Grubin valikon loppuun, sillä listan järjestyksen määrää tiedostojen järjestys. Siispä jos listan alkuun halutaan lisätä omia käynnistysvalintoja, on ne laitettava tiedostoon, joka on aakkosjärjestyksessä ennen tiedostoa <tt>10_linux</tt>, esimerkiksi <tt>07_custom</tt>.
== Edistyneemmät muokkaukset ==
Suurin osa käyttäjistä tulee varmasti toimeen ylläolevalla automaattisella skriptillä, mutta monimutkaisemmat muutokset (kuten järjestyksen muuttaminen tai järjestelmien nimien muokkaaminen) kehotetaan toistaiseksi tekemään suoraan konfiguraatiotiedostoon <tt>/boot/grub/grub.conf</tt>. Muista, että tällöin kaikki automaattiset päivitysmekanismit tulee kytkeä pois käytöstä, koska muuten järjestelmä ajaa kernelipäivityksen yhteydessä <tt>grub-mkconfig</tt> -skriptin, ja <tt>grub.conf</tt>-tiedostoon tehdyt muokkaukset katoavat.


== Aiheesta muualla ==
== Aiheesta muualla ==

Versio 8. heinäkuuta 2012 kello 00.13

GNU GRUB 2
Käyttöliittymä teksti
Lisenssi GPL
Kotisivu gnu.org/software/grub

GNU GRUB 2 on suositun GRUB-käynnistyslataimen toinen versio, jonka käyttöön eri jakelut ovat pikkuhiljaa siirtymässä.

Erot versioon 1

Grub 2 tuo mukanaan uudistetut asetustiedostot, tuen skriptikielelle ja moduulien dynaamiselle lataamiselle, pelastustilan ja mahdollisuuden käyttää teemoja. Se mahdollistaa myös graafisen alkuvalikon ja Live-CD-levykuvien käynnistämisen suoraan kiintolevyltä. Suomalaisia käyttäjiä kiinnostanee myös parempi tuki kotoistukselle, esimerkiksi mahdollisuus käyttää ääkkösiä ja muita erikoismerkkejä.

Ylläpitäjälle näkyvin ero Grubin eri versioiden välillä on muuttuneet asetustiedostot. Esimerkiksi /boot/grub/menu.lst-asetustiedoston (josta kerrotaan tarkemmin artikkelissa Grub) sijaan käytetään tiedostoja /boot/grub/grub.cfg, /etc/default/grub ja /etc/grub.d/40_custom.

Toinen näkyvä ero on tavassa saada näkyviin Grubin alkuvalikko. Aiemmin käytössä olleen Esc-näppäimen sijaan valikkoon pääsee painamalla käynnistyksen aikana vaihtonäppäintä (shift).

Asetustiedostot

/boot/grub/grub.cfg on Grub 2:n pääasiallinen asetustiedosto, joka korvaa vanhan /boot/grub/menu.lst-tiedoston. On kuitenkin syytä huomata, että tätä tiedostoa ei ole tarkoitus muokata käsin, ja se onkin yleensä asetettu vain luku -tilaan! Se generoidaan automaattisesti update-grub-komennolla esimerkiksi uuden ytimen asentamisen jälkeen.

Käyttäjän muokattavaksi tarkoitettu asetustiedosto on /etc/default/grub, joka koostuu vanhan menu.lst-tiedoston alkua muistuttavista avain-arvopareista. Näillä asetuksilla määritellään mm. valikon toimintaa ja ytimelle annettavia parametrejä. Tiedosto voisi näyttää seuraavalta:

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT="3"
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entrys 
#GRUB_DISABLE_LINUX_RECOVERY="true"
  • GRUB_DEFAULT: Oletuksena valittuna oleva ydin (alkuvalikon kohdan). Arvo 0 tarkoittaa listan ensimmäistä ydintä/käyttöjärjestelmää, 1 toista jne. Vaihtoehtoisesti tähän voi laittaa haluamansa valikkokohdan nimen. Lisäksi on mahdollista laittaa arvoksi saved, jolloin Grub valitsee tallennetun järjestelmän. Tämän arvon on oltava saved, mikäli halutaan, että grub-set-default ja grub-reboot -komennot toimivat.
  • GRUB_SAVEDEFAULT: Jos tämä on true, Grub tallentaa käynnistettävän järjestelmän muistiin, ja käynnistää sen seuraavallakin kerralla, mikäli GRUB_DEFAULT-muuttujan arvo on saved.
  • GRUB_TIMEOUT: Aika sekunteina, jonka jälkeen oletuksena valittu ydin käynnistetään.
  • GRUB_HIDDEN_TIMEOUT: Sama kuin GRUB_TIMEOUT, mutta valikkoa ei näytetä ennen kuin shift-näppäintä on painettu.
  • GRUB_HIDDEN_TIMEOUT_QUIET: Näytetäänkö laskuri jäljellä olevasta ajasta ennen oletusvalinnan käynnistämistä valikossa. true ei näytä laskuria, false näyttää.
  • GRUB_DISTRIBUTOR: Käyttöjärjestelmää kuvaileva teksti valikkoon. Yllä oleva asetus muuttuu Ubuntussa muotoon Ubuntu jne.
  • GRUB_CMDLINE_LINUX: Kaikille ytimille annettavat käynnistysparametrit (vanhassa Grubissa kernel-rivin lopussa olevia parametreja).
  • GRUB_CMDLINE_LINUX_DEFAULT: Sama kuin GRUB_CMDLINE_LINUX, mutta lisätään vain tavallisiin käynnistysvalintoihin (ei pelastustiloihin).
  • GRUB_TERMINAL=console: Ei käytä graafista alkuvalikkoa.
  • GRUB_GFXMODE: Alkuvalikossa käytettävä näytön tarkkuus. Grubin valikossa sallitut resoluutiot näkee painamalla c-näppäintä tai kirjoittamalla Grubin komentoriville komennon vbeinfo.
  • GRUB_DISABLE_LINUX_UUID=true: Ei välitä "root=UUID=xxx"-parametria ytimelle
  • GRUB_DISABLE_LINUX_RECOVERY="true": Valikkoon ei luoda mahdollisuutta käynnistää tietokonetta pelastustilaan.

Kun tähän tiedostoon on tehty muutoksia, on ajettava pääkäyttäjän oikeuksilla grub-mkconfig-komento.

grub-mkconfig -o /boot/grub2/grub.cfg

Ubuntu-käyttäjillä on oma komentonsa: update-grub tai update-grub2.

sudo update-grub

Uuden käyttöjärjestelmän lisääminen

Kun päivityskomento ajetaan, käydään läpi hakemistossa /etc/grub.d olevia tiedostoja. Tiedostosta /etc/grub.d/10_linux haetaan tiedot käytettävistä Linux-ytimistä ja /etc/grub.d/30_os-prober-tiedostosta tiedot muista käyttöjärjestelmistä. Yleensä paketinhallintajärjestelmä huolehtii 10_linux-tiedostosta ja 30_os-prober luodaan asennuksen aikana. Samasta kansiosta löytyvä tiedosto /etc/grub.d/40_custom on tarkoitettu käyttäjän käsin lisäämiä käynnistysvalintoja varten.

Uusi ydin voidaan lisätä käsin lisäämällä tiedostoon 40_custom seuraavan esimerkin kaltainen kohta: Oletetaan, että osiolle sda10 on asennettu SystemRescueCD-jakelu. Tällöin tiedostoon lisättäisiin rivit

menuentry "System Rescue CD" {
 set root=(hd0,10)
 linux /sysrcd/rescuecd subdir=sysrcd setkmap=us
 initrd /sysrcd/initram.igz
} 

Käydään esimerkki lyhyesti läpi: menuentry määrittelee näkyvän tekstin, ja root osion, josta ydin haetaan. Osioihin viitataan eri tavalla kuin vanhassa Grubissa! Laitteiden numerointi alkaa nollasta, esimerkiksi laitetiedostoa sda vastaa laite 0, sdb:tä laite 1 jne. Sen sijaan osionumerot menevät kuten Linuxissa, esimerkiksi (hd0,1) vastaa osiota sda1 ja (hd0,10) osiota sda10.

linux- ja initrd-rivit kertovat, mistä hakemistosta suhteessa asetettuun juuriosioon ydin ja initrd-tiedosto löytyvät.

Tiedostoon 40_custom lisätyt ytimet ilmestyvät Grubin valikon loppuun, sillä listan järjestyksen määrää tiedostojen järjestys. Siispä jos listan alkuun halutaan lisätä omia käynnistysvalintoja, on ne laitettava tiedostoon, joka on aakkosjärjestyksessä ennen tiedostoa 10_linux, esimerkiksi 07_custom.

Edistyneemmät muokkaukset

Suurin osa käyttäjistä tulee varmasti toimeen ylläolevalla automaattisella skriptillä, mutta monimutkaisemmat muutokset (kuten järjestyksen muuttaminen tai järjestelmien nimien muokkaaminen) kehotetaan toistaiseksi tekemään suoraan konfiguraatiotiedostoon /boot/grub/grub.conf. Muista, että tällöin kaikki automaattiset päivitysmekanismit tulee kytkeä pois käytöstä, koska muuten järjestelmä ajaa kernelipäivityksen yhteydessä grub-mkconfig -skriptin, ja grub.conf-tiedostoon tehdyt muokkaukset katoavat.

Aiheesta muualla

Katso myös