2014 m. spalio 7 d., antradienis

Grub

Paprastai kalbant "Grub" yra programa, kuri leidžia pasirinkti su kuria operacine sistema vartotojas nori dirbi.

# grub-install #Grub diegimas.


Pagrindiniai Grub nustatymai

Grub konfigūraciniai failai randami:

Debian/Ubuntu: /boot/grub/grub.cfg
CentOS 6.8: /boot/grub/grub.conf


Atlikus pakeitimus personalizuotame dokumente, paleidžiama komandą:
# sudo update-grub #Po šios komandos atnaujinamas pagrindinis grub konfigūracijos failas.

grub-install įrašo grub į kietąjį diską:
# grub-install /dev/sda

Kaip nustatyti kitą grub konfigūracinį dokumentą?
# grub-mkconfig -o /boot/grub/grub.cfg

Pastebėjimas: Keičiant grub rekomenduotina padaryti grub konfigūracinio failo atsarginę kopiją.

Kur yra vieta, kur pridedami nauji grub įrašai?:
Ubuntu/Debian: '/etc/grub.d/40_custom' 

Šablonas:
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

menuentry 'Ubuntu pakeistas' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-1c7856bb-5d95-4074-8622-3133936d30ff' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd1,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
 search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos1 --hint-efi=hd1,msdos1 --hint-baremetal=ahci1,msdos1  1c7856bb-5d95-4074-8622-3133936d30ff
else
 search --no-floppy --fs-uuid --set=root 1c7856bb-5d95-4074-8622-3133936d30ff
fi
linux /boot/vmlinuz-4.4.0-22-generic root=UUID=1c7856bb-5d95-4074-8622-3133936d30ff ro  quiet splash $vt_handoff
initrd /boot/initrd.img-4.4.0-22-generic
}

Grub apsaugojimas slaptažodžiu

CentOS 6.8:
/sbin/grub-md5-crypt #Sugeneruojam md5 maišos kodą.
$1$Rirm2/$Rgbsp0YVO/uMn4n1jOhtN

# vi /boot/grub/grub.conf #Po timeout eilutės pridedam md5 sugeneruotą slaptažodžio maišos kodą.
password --md5 $1$Rirm2/$Rgbsp0YVO/uMn4n1jOhtN

Vaizdelis po po perkrovimo, pakeitus grub.conf dokumentą


Grub meniu komandos

CenOS 6.8 :  Tam kad grub nebūtų praleidžiamas užsikrovimo metu,  reikia nuspausti bet kokį mygtuką.
Debian/Ubuntu: Užsikrovimo metu atvaizduoja grub, pagal numatytuosius nustatymus.

Į grub meniu, užsikrovimo metu patenkama nuspaudus c , o išeinama su Esc mygtukų.
Pagrindinės grub komandos():
help [komanda] #Be parametrų rodys visų komandų sąrašą.
ls #Rodys direktorijos turinį.
ls -l #Papildomai atvaizduos UUID.
cat #Rodys katalogo turinį.
set #Rodys visus grub kintamuosius.
echo $root #Vieta kur grub  ieškos branduolio.
set pager=1 #Kad galėtume peržiūrėti platesnį turinį, netelpantį ekrane.

Failų ir direktorijų atvaizdavimas:
grub> ls (hd0,msdos1)/
grub> ls ($root)/boot

hd0 - tai pirmas  /dev/sda įrenginys, kai msdos1, nurodo pirmą skaidinį /dev/sda1.

Užkrovimas is grub:
grub> set root=(hd0,1)
grub> linux /boot/vmlinuz-3.13.0-29-generic root=/dev/sda1
grub> initrd /boot/initrd.img-3.13.0-29-generic
grub> boot

Pirmoji eilutė nurodo šakninį skirsnį, kuriame yra failų sistema.
Antroji eilute nusako branduolio buvimo vietą. Jei nenurodysime root=...  branduolys pradės panikuoti.
Trečioji linija nurodo initrd failą, kuris turi atitikti branduolio versiją.
Ketvirtoji komanda užkrauna sistemą.

Užkrovimas iš grub-rescue>
grub rescue> set prefix=(hd0,1)/boot/grub
grub rescue> set root=(hd0,1)
grub rescue> insmod normal
grub rescue> normal
grub rescue> insmod linux
grub rescue> linux /boot/vmlinuz-3.13.0-29-generic root=/dev/sda1
grub rescue> initrd /boot/initrd.img-3.13.0-29-generic
grub rescue> boot

Ačiū  Carla Schroder.

Nuorodos:
Ubuntuhandbook- Grub keitimas su Grub-Customizer.