GNU GRUB ("GRUB" lyhyesti) on GNU-projektin käynnistyslatauspaketti. GRUB on pääesimerkki Multiboot-määrittelystä, jonka avulla käyttäjä voi pitää tietokoneessaan useampaa kuin yhtä käyttöjärjestelmää samanaikaisesti ja valita, mikä niistä käynnistetään tietokoneen käynnistyessä. GRUB:ia voidaan käyttää valitsemaan tietyn käyttöjärjestelmän osioissa käytettävissä olevista eri ydinkuvista sekä välittämään käynnistysparametreja tällaisille ytimille.
Mikä GRUB on ja miksi sitä käytetään
GRUB on monipuolinen käynnistyslataaja, jonka tavoitteena on tehdä järjestelmän käynnistämisestä joustavaa ja hallittavaa. Sen keskeisiä tehtäviä ovat:
- Useiden käyttöjärjestelmien (multiboot) tukeminen ja valinta käynnistysvalikosta.
- Erilaisten Linux-ydinten (vmlinuz) ja initramfs-tiedostojen valinta ja käynnistäminen.
- Käynnistysparametrien välittäminen ytimelle (esim. root=/dev/sda1, rw, quiet, splash).
- Ketjutus (chainloading) muiden käynnistyslataajien, kuten Windowsin bootloaderin, käynnistämiseksi.
- Monipuolinen komentorivikäyttö ja mahdollisuus asentaa lisämoduuleja tiedostojärjestelmien, verkon tai RAIDin tukemiseksi.
GRUB-versiot: Legacy ja GRUB 2
GRUBilla on historiallisesti kaksi laajempaa versiota:
- GRUB Legacy (vanhempi versio): käytetty aiemmin, konfiguroitiin pääasiassa menu.lst-tiedostolla. Nykyään harvinaisempi.
- GRUB 2 (nykyinen pääversio): modulaarinen, dynaaminen ja laajemmin käytössä. GRUB 2 käyttää konfiguraation luomiseen yleensä /etc/default/grub, /etc/grub.d/-hakemistoa ja lopullista konfiguraatiotiedostoa /boot/grub/grub.cfg, joka yleensä generoidaan komennolla grub-mkconfig tai jakelakohtaisella update-grub-komennolla.
Keskeiset konfiguraatiotiedostot ja komennot
- /boot/grub/grub.cfg – automaattisesti generoitu GRUBin pääkonfiguraatio (älä muokkaa tätä suoraan, vaan muokkaa lähdetiedostoja ja regeneroi tiedosto).
- /etc/default/grub – yleiset asetukset kuten GRUB_TIMEOUT, GRUB_DEFAULT, ja kernelin käynnistysparametrit (GRUB_CMDLINE_LINUX).
- /etc/grub.d/ – skriptit, jotka tuottavat eri osiot grub.cfg:hen (esim. 10_linux, 30_os-prober).
- Tärkeimpiä komentoja: grub-install (asentaa GRUBin MBR:ään tai EFI-osioon), grub-mkconfig -o /boot/grub/grub.cfg (luo konfiguraation), ja jakeluissa usein update-grub (wrapper-komento).
UEFI vs. BIOS ja Secure Boot
Nykykoneissa GRUB voi toimia sekä perinteisessä BIOS/MBR-ympäristössä että UEFI-ympäristössä:
- BIOS: tavallisesti GRUB asennetaan suoraan levyn MBR:ään (grub-install /dev/sda).
- UEFI: GRUB asentuu EFI System Partitioniin (ESP). Komentoja kuten grub-install --target=x86_64-efi --efi-directory=/boot/efi käytetään. Usein käytössä on myös shim-bootstrap Secure Boot -yhteensopivuuden säilyttämiseksi.
Pelastus, vianmääritys ja palautus
Jos GRUB ei käynnisty oikein, tavallisia keinoja korjaukseen ovat:
- Käynnistä live-USB:ltä, liitä järjestelmän juuriosio ja chroottaa siihen; asenna GRUB uudelleen komennolla grub-install ja regeneroi konfiguraatio grub-mkconfig.
- GRUBin pelastus-tilat: grub rescue ja grub> tarjoavat komentorivi- ja diagnostiikkamahdollisuuksia esimerkiksi kadonneiden moduulien tai väärän root-määrityksen korjaamiseksi.
- Tarkista, että oikea levy/osio on merkitty käynnistyslaitteeksi (BIOS/UEFI-asetukset) ja että ESP on oikein liitetty UEFI-järjestelmissä.
Käytännön toiminnot käyttäjälle
- Voit muokata käynnistysvalikon kohteita väliaikaisesti painamalla GRUB-valikossa e (edit) ja muokkaamalla kernel-riviä ennen käynnistystä.
- GRUBin ajat (timeout) ja oletusvalinnan voi asettaa /etc/default/grub-tiedostossa muuttamalla GRUB_TIMEOUT ja GRUB_DEFAULT, sitten suorittamalla update-grub tai grub-mkconfig.
- Windowsin tai toisen käynnistyslataajan käynnistäminen tapahtuu usein ketjutuksella (chainloader), jonka GRUB osaa tehdä automaattisesti osapohjaisen tunnistuksen avulla (os-prober).
Laajennukset ja ulkoasu
GRUB tukee teemoja, taustakuvia ja kieliasetuksia. Lisäksi se on modulaarinen: tuen eri tiedostojärjestelmille, verkko-/PXE-käynnistykselle ja muille ominaisuuksille voi lisätä moduuleilla.
Yhteenveto ja hyvät käytännöt
- Pidä /etc/default/grub ja /etc/grub.d/-asetukset hallinnassa ja regeneroi lopullinen /boot/grub/grub.cfg aina muutosten jälkeen.
- Varmuuskopioi tärkeät tiedostot ja ota muistiin millä komennoilla GRUB asennettiin, varsinkin balkoneilla (UEFI vs BIOS).
- Käytä jakelun tarjoamia työkaluja (esim. update-grub) kun mahdollista — ne huomioivat jakelukohtaiset erot.
GRUB tekee monikäynnistyksen hallinnasta joustavaa ja tarjoaa keinoja hallita ydinkuvien valintaa, käynnistysparametreja sekä vianmääritystä. Sen ymmärtäminen helpottaa järjestelmän ylläpitoa erityisesti silloin, kun koneessa on useita käyttöjärjestelmiä tai erikoiskokoonpanoja.



