Alglaadija GRUB

Allikas: Kuutõrvaja

Sissejuhatus

GRUB (Grand Unified Bootloader, ingl. k. suur universaalne alglaadija) on tarkvara, mille abil toimub arvuti alglaadimine. GRUB kasutatakse peamiselt x86, st i386 ja amd64 platvormidel.

Alglaadimisprotsess näeb linuxis välja selline

  1. BIOS laeb ja käivitab alglaadesektori (MBR) mis asub ketta v partitsiooni alglaadsektoris.
  2. Alglaadesektoris asuv GRUB laeb ja käivitab tuuma (kerneli).
  3. Kernel ehk tuum käivitab protsessi init.
  4. init käivitab strdiskriptid, näiteks Debianil asuvad need /etc/rc.d/* ja Gentoos /etc/runlevels/boot/
  5. Skriptid teostavad ketaste kontrolli, ketaste ühendamise võrgu seadistamise jms.
  6. Seejärel toimub deemonite käivitamine ning muu häälestus.
  7. Kõige viimasena käivitab init getty-d mis võimaldavad kasutajal masinasse logida.

Linux'i alglaadimine

 title Linux
 root (hd0,2)
 kernel /boot/tuum root=/dev/hda3 ro
 initrd /boot/ramdisk

Windowsi alglaadimine

 title Windows
 root (hd0,0)
 makeactive
 chainloader +1

OpenBSD alglaadimine

Kui OpenBSD on paigaldatud nn fdisk'i partitsioonid (st ühte sellistest, mida võib olla kõvaketta kuni neli primaarset), siis sobib kasutada sarnaselt windowsile chainloaderi intstrumenti

 title OpenBSD
 root (hd0,0)
 makeactive
 chainloader +1

Võrgust pxe'ga alglaadimine

vajaliku pxe toe grubile saab http://rom-o-matic.net/

kõigepealt tuleb valida NIC/ROM tüüp arvutis oleva võrgukaardi tüüp ja walida ROM output format milleks valisime LILO/GRUB/SYSLINUX loadable linux kernel format (.lkrn) ja siis salvestada get ROM käsuga copysime faili boot kausta

Siis konfida grub /boot/grub/menu.lst failist kuhu tuleb lisada grubi lõppu näiteks sellised andmed:

title Network Boot
root (hd0,2)
kernel /boot/eb-5.4.4-tulip.zlilo

GRUB prompti kasutamine

Menüüfaili laadimine

 grub> configfile /boot/grub/menu.lst

Kui aga failinimi pole teada, siis on abiks kirjutada ning vajutada tab klahvi

 grub> configfile (hd0,0)/

Tulemusena esitatakse nimekiri arvuti esimese kõvaketta esimesel partitsiooni (hd0,0) juurikal olevatest failidest. See asjaolu illustreerib fakti, et GRUB oskab kasutada ext3 failisüsteemi.

GRUB paigaldamine

 # grub-install --recheck --no-floppy --root-directory=/katalooginimi hd0

Kusjuures /katalooginimi all on selline struktuur

 /katalooginimi/boot
 /katalooginimi/boot/grub/menu.lst
 /katalooginimi/boot/vmlinuz-2.6.26-1-amd64
 ..

Probleemid

  • Kui nö /boot failisüsteemi tüüp fdisk partitsioonide nimekirjas ei ole Linux, on nt swap, siis on tõenäoline saada selline veateade
 # grub-install --recheck --no-floppy hd0
 Searching for GRUB installation directory ... found: /boot/grub
 The file /boot/grub/stage1 not read correctly.

Üksikasutaja reziimi (singel mode) modesse startimine (bootimine)

vajalik kui näiteks ununenud root parool

  • Restardi arvuti ja oota kuni startimise protsess jõuab GRUBi aknani.
  • Vali kerneli versioon mida hetkel kasutad (tõenäoliselt esimene grubi nimekirjas)
  • vajuta klahv 'e', vali rida mis algab sõnaga 'kernel' ja vajuta uuesti 'e'
  • lisa sõna "single" rea lõppu (kernel /vmlinuz-kernel-version ro root=LABEL=/ rhgb quiet single)
  • vajuta enter
  • ja vajuta 'b', et jätkata bootimise protsessi

Mõne aja pärast peaks ilmuma ette root kasutaja promt kus võib kirjutada juba käsu passwd parooli muutmiseks

Kui ikkagi küsitakse root parooli enne bash promti võib lisada kerneli reale veel init=/bin/bash single järele

GRUBi parooliga kaitsmine

Vajalik selleks, et poleks võimalik muuta kerneli BOOT võtmeid ja pääseda nii otse infole ligi.

  • ava root kasutaja õigustes terminal
  • sisesta käsk /sbin/grub-md5-crypt
  • Sisesta parool millega soovid GRUBI kaitsta, mille järel ilmub MD5 hash
  • ava /boot/grub/grub.conf ja lisa rea timeout=5 järele password --md5 password(HASH mille väljastas grub-md5-crypt)

Ehk tulemus peaks nägema välja sarnane

timeout=5
password --md5 $1$1OBii1$x78zK/tZB.VMoXzEzcg7x.

Peale rebooti on vaja vajutada P ja kirjutada parool, et muuta kerneli boot seadeid.

Lisamaterjalid