LFCS: Grand Unified Bootloaderi (GRUB) konfigureerimine ja tõrkeotsing - osa 13


Hiljutiste muudatuste tõttu LFCSi sertifitseerimise eksami eesmärkides, mis jõustusid alates 2. veebruarist 2016, lisame vajalikud teemad ka LFCE seeriasse.

Selles artiklis tutvustame teile GRUB-i ja selgitame, miks on alglaadur vajalik ja kuidas see süsteemile mitmekülgsust lisab.

Linuxi alglaadimisprotsess alates arvuti toitenupu vajutamisest kuni täisfunktsionaalse süsteemi saamiseni järgib seda kõrgetasemelist järjestust:

  1. 1. Protsess, mida nimetatakse POST-ks (Power-On Self Test), kontrollib teie arvuti riistvarakomponente üldiselt.
  2. 2. Kui POST on lõpule viidud, annab see juhtimise üle alglaadurile, mis omakorda laadib Linuxi tuuma mällu (koos initramf-idega) ja käivitab selle. Linuxi enim kasutatav alglaadur on GRand Unified Boot loader ehk lühidalt GRUB.
  3. 3. Kernel kontrollib riistvara ja pääseb sellele juurde ning käivitab seejärel algprotsessi (enamasti tuntud selle üldnime\"init" järgi), mis omakorda lõpetab süsteemi käivitamise teenuste käivitamisega.

Selle seeria 7. osas (\ "teenusehaldussüsteemid ja tööriistad, mida kasutavad kaasaegsed Linuxi distributsioonid. Enne jätkamist võiksite selle artikli üle vaadata.

Tutvustame GRUBi alglaadurit

Kaks peamist GRUB-i versiooni (v1 mõnikord nimetatakse GRUB Legacy ja v2) võib leida tänapäevastest süsteemidest, ehkki enamik levitusi kasutab vaikimisi v2 oma uusimates versioonides. Ainult Red Hat Enterprise Linux 6 ja selle derivaadid kasutavad tänapäevalgi v1.

Seega keskendume selles juhendis peamiselt v2 funktsioonidele.

Sõltumata GRUB-i versioonist võimaldab alglaadur kasutajal:

  1. 1). muuta süsteemi käitumist, määrates erinevad kasutatavad tuumad,
  2. 2). valige käivitamiseks alternatiivsete opsüsteemide ja
  3. vahel
  4. 3). muuhulgas alglaadimisvalikute muutmiseks lisage või muutke konfiguratsiooniversioone.

Täna haldab GRUB projekti GNU ja see on nende veebisaidil hästi dokumenteeritud. Selle juhendi läbimisel soovitatakse teil kasutada GNU ametlikku dokumentatsiooni.

Kui süsteem käivitub, kuvatakse teile põhikonsoolil järgmine GRUB-ekraan. Esialgu palutakse teil valida alternatiivsete tuumade vahel (vaikimisi käivitub süsteem viimase tuuma abil) ja teil on lubatud sisestada GRUB-i käsurida (koos c ) või muuta alglaadimisvalikuid (by klahvi e vajutamine).

Üks põhjus, miks võiksite kaaluda vanema kerneliga käivitamist, on riistvaraseade, mis varem töötas korralikult ja on pärast täiendamist hakanud\"tegutsema" (näite leiate AskUbuntu foorumite sellelt lingilt).

GRUB v2 konfiguratsiooni loeb alglaadimisel /boot/grub/grub.cfg või /boot/grub2/grub.cfg , samas kui /boot/grub/grub.conf või /boot/grub/menu.lst kasutatakse versioonis v1. Neid faile EI TOHI käsitsi redigeerida, vaid neid muudetakse /etc/default/grub sisu ja failide /etc/grub.d põhjal.

CentOS 7-s on siin süsteemi esmakordsel installimisel loodud konfiguratsioonifail:

GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="vconsole.keymap=la-latin1 rd.lvm.lv=centos_centos7-2/swap crashkernel=auto  vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos_centos7-2/root rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

Lisaks veebidokumentatsioonile leiate GNU GRUBi kasutusjuhendi teabe abil järgmiselt:

# info grub

Kui olete huvitatud konkreetselt faili/etc/default/grub jaoks saadaolevatest valikutest, võite otse käivitada seadistuste jaotise:

# info -f grub -n 'Simple configuration'

Ülaltoodud käsu abil saate teada, et GRUB_TIMEOUT määrab aja algse kuva ilmumise ja süsteemi automaatse käivitamise vahel, kui kasutaja seda ei katkesta. Kui selle muutuja väärtuseks on seatud -1 , käivitatakse käivitamine alles siis, kui kasutaja on valiku teinud.

Kui samasse masinasse on installitud mitu operatsioonisüsteemi või tuuma, nõuab GRUB_DEFAULT täisarvu, mis näitab, milline OS-i või tuuma kirje GRUB-i algekraanil peaks vaikimisi käivitamiseks olema valitud. Kirjete loendit saab vaadata mitte ainult ülaltoodud ekraanil, vaid ka järgmise käsu abil:

# awk -F\' '$1=="menuentry " {print $2}' /boot/grub2/grub.cfg
# awk -F\' '$1=="menuentry " {print $2}' /boot/grub/grub.cfg

Kui soovime alloleval pildil toodud näites käivitada kerneli versiooniga 3.10.0-123.el7.x86_64 (4. kirje), peame seadistama GRUB_DEFAULT väärtuseks 3 (kirjed nummerdatakse sisemiselt nulliga) järgmiselt:

GRUB_DEFAULT=3

Üks lõplik GRUB-i konfiguratsioonimuutuja, mis pakub erilist huvi, on GRUB_CMDLINE_LINUX , mida kasutatakse valikute edastamiseks kernelile. Valikud, mida saab GRUB-i kaudu kernelisse edastada, on man 7 bootparam'is hästi dokumenteeritud.

Minu CentOS 7 serveri praegused valikud on järgmised:

GRUB_CMDLINE_LINUX="vconsole.keymap=la-latin1 rd.lvm.lv=centos_centos7-2/swap crashkernel=auto  vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos_centos7-2/root rhgb quiet"

Miks soovite muuta tuuma vaikeparameetreid või anda lisavõimalusi? Lihtsamalt öeldes võib juhtuda, et peate teatama kernelile teatud riistvaraparameetrid, mida see ei pruugi iseseisvalt määrata, või tühistada tuvastatavad väärtused.

See juhtus minuga mitte liiga kaua aega tagasi, kui proovisin oma 10-aastases sülearvutis Slackware tuletist Vector Linuxi. Pärast installimist ei tuvastanud see minu videokaardi õigeid seadeid, nii et pidin muutma GRUB-i kaudu läbitud kerneli valikuid, et see toimiks.

Teine näide on see, kui peate süsteemi hooldusülesannete täitmiseks viima ühe kasutaja režiimi. Selleks saate lisada sõna single üksusele GRUB_CMDLINE_LINUX ja taaskäivitada:

GRUB_CMDLINE_LINUX="vconsole.keymap=la-latin1 rd.lvm.lv=centos_centos7-2/swap crashkernel=auto  vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos_centos7-2/root rhgb quiet single"

Pärast faili /etc/defalt/grub muutmist peate käivitama update-grub (Ubuntu) või grub2-mkconfig -o/boot/grub2/grub. cfg (CentOS ja openSUSE), et värskendada grub.cfg (vastasel juhul lähevad muudatused käivitamisel kaotsi).

See käsk töötleb varem mainitud alglaadimise konfiguratsioonifaile grub.cfg värskendamiseks. See meetod tagab, et muudatused on püsivad, samas kui GRUB-i kaudu käivitamisel olevad suvandid kehtivad ainult praeguse seansi ajal.

Linuxi GRUB-i probleemide parandamine

Kui installite teise opsüsteemi või kui teie GRUB-i konfiguratsioonifail rikutakse inimlike eksimuste tõttu, on võimalusi, kuidas oma süsteem uuesti püsti tõsta ja taaskäivitada.

Esialgsel ekraanil vajutage GRUB-i käsurea saamiseks c (pidage meeles, et vaikimisi alglaadimisvalikute muutmiseks võite vajutada ka e ) ja kasutage saadaolevate failide toomiseks abi GRUB-i viipade käsud:

Keskendume ls-le, mis loetleb installitud seadmed ja failisüsteemid ning uurime, mida see leiab. Alloleval pildil näeme, et kõvakettaid on 4 ( hd0 kuni hd3 ).

Ainult hd0 näib olevat jaotatud (nagu näitavad msdos1 ja msdos2, kus 1 ja 2 on partitsiooninumbrid ja msdos on partitsiooniskeem).

Uurime nüüd hd0 (msdos1) esimest partitsiooni, et leida, kas leiame sealt GRUB-i. See lähenemine võimaldab meil Linuxi käivitada ja vajadusel kasutada konfiguratsioonifaili parandamiseks või vajadusel GRUB-i uuesti installimiseks muid kõrgetasemelisi tööriistu:

# ls (hd0,msdos1)/

Nagu näeme esiletõstetud alal, leidsime sellest partitsioonist kataloogi grub2:

Kui oleme kindlad, et GRUB elab (hd0, msdos1), ütleme GRUB-ile, kust leida oma konfiguratsioonifail, ja juhendame teda siis proovima oma menüüd käivitada:

set prefix=(hd0,msdos1)/grub2
set root=(hd0,msdos1)
insmod normal
normal

Seejärel valige menüüs GRUB kirje ja vajutage selle käivitamiseks sisestusklahvi. Kui süsteem on käivitunud, saate anda käsu grub2-install/dev/sdX (muutke seadet sdX , kuhu soovite GRUB-i installida). Seejärel värskendatakse alglaadimisteavet ja taastatakse kõik seotud failid.

# grub2-install /dev/sdX

Muud keerukamad stsenaariumid koos soovitatud parandustega on dokumenteeritud Ubuntu GRUB2 tõrkeotsingu juhendis. Seal selgitatud mõisted kehtivad ka teiste jaotuste kohta.

Kokkuvõte

Selles artiklis oleme tutvustanud teile GRUB-i, näidanud, kust leiate dokumentatsiooni nii veebis kui ka väljaspool võrku, ning selgitanud, kuidas läheneda stsenaariumile, kus süsteem on alglaaduriga seotud probleemi tõttu korralikult käivitatud.

Õnneks on GRUB üks kõige paremini dokumenteeritud tööriistu ja selles artiklis jagatud ressursside abil saate hõlpsasti abi leida kas installitud dokumentidest või veebis.

Kas teil on küsimusi või kommentaare? Andke meile sellest teada, kasutades allolevat kommentaarivormi. Ootame teid huviga!