LFCS: Grand Unified Bootloaderin (GRUB) määrittäminen ja vianmääritys - osa 13


LFCS-sertifiointikokeen tavoitteiden viimeaikaisten muutosten vuoksi, jotka ovat tulleet voimaan 2. helmikuuta 2016, lisäämme tarvittavat aiheet myös LFCE-sarjaan.

Tässä artikkelissa esitämme sinulle GRUB: n ja kerromme, miksi käynnistyslatain on välttämätön ja miten se lisää järjestelmän monipuolisuutta.

Linuxin käynnistysprosessi siitä hetkestä, kun painat tietokoneen virtapainiketta, kunnes saat täysin toimivan järjestelmän, noudattaa tätä korkean tason sarjaa:

  1. 1. POST (Power-On Self Test) -niminen prosessi tarkistaa tietokoneen laitteistokomponentit kokonaisuudessaan.
  2. 2. Kun POST on valmis, se siirtää ohjauksen käynnistyslataimeen, joka puolestaan lataa Linux-ytimen muistiin (yhdessä initramfien kanssa) ja suorittaa sen. Linuxin eniten käytetty käynnistyslatain on GRand Unified Boot loader tai lyhyesti GRUB.
  3. 3. Ydin tarkistaa laitteiston ja käyttää sitä, ja suorittaa sitten alkuperäisen prosessin (tunnetaan useimmiten yleisnimellään ”init”), joka puolestaan täydentää järjestelmän käynnistyksen käynnistämällä palvelut.

Tämän sarjan osassa 7 ("modernin Linux-jakelun käyttämät palvelunhallintajärjestelmät ja työkalut. Haluat ehkä tarkistaa artikkelin ennen kuin jatkat.

Esittelyssä GRUB Boot Loader

Kaksi suurta GRUB-versiota (v1 kutsutaan joskus nimellä GRUB Legacy ja v2) löytyy nykyaikaisista järjestelmistä, vaikka useimmat jakelut käyttävät v2: ta oletusarvoisesti uusimmissa versioissaan. Vain Red Hat Enterprise Linux 6 ja sen johdannaiset käyttävät edelleen versiota 1.

Siksi keskitymme ensisijaisesti v2: n ominaisuuksiin tässä oppaassa.

Riippumatta GRUB-versiosta, käynnistyslataimen avulla käyttäjä voi:

  1. 1). muokkaa järjestelmän käyttäytymistä määrittämällä käytettävät ytimet
  2. 2). valitse vaihtoehtoinen käynnistysjärjestelmä ja
  3. 3). Lisää tai muokkaa määritysjaksoja muun muassa käynnistysvaihtoehtojen muuttamiseksi.

Nykyään GRN: ää ylläpitää GNU-projekti, ja se on hyvin dokumentoitu heidän verkkosivuillaan. Sinua kehotetaan käyttämään GNU: n virallista dokumentaatiota tämän oppaan läpi.

Kun järjestelmä käynnistyy, pääkonsolissa näkyy seuraava GRUB-näyttö. Aluksi sinua kehotetaan valitsemaan vaihtoehtoisten ytimien välillä (oletusarvoisesti järjestelmä käynnistyy viimeisimmän ytimen avulla) ja sinulla on oikeus syöttää GRUB-komentorivi ( c : lla) tai muokata käynnistysasetuksia ( painamalla e -näppäintä).

Yksi syy, miksi harkitsisit käynnistämistä vanhemmalla ytimellä, on laitteisto, joka toimi aiemmin oikein ja on alkanut "toimia" päivityksen jälkeen (katso esimerkki tästä linkistä AskUbuntun keskustelupalstoilla).

GRUB v2 -määritykset luetaan käynnistettäessä osoitteesta /boot/grub/grub.cfg tai /boot/grub2/grub.cfg , kun taas /boot/grub/grub.conf tai /boot/grub/menu.lst käytetään versiossa v1. Näitä tiedostoja EI saa muokata käsin, mutta niitä muokataan /etc/default/grub -sisällön ja /etc/grub.d -kansiossa olevien tiedostojen perusteella.

CentOS 7: ssä tämä on kokoonpanotiedosto, joka luodaan järjestelmän ensimmäisen asennuksen yhteydessä:

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"

Verkko-ohjeiden lisäksi löydät myös GNU GRUB -oppaan käyttämällä seuraavia tietoja:

# info grub

Jos olet kiinnostunut nimenomaan/etc/default/grub: n käytettävissä olevista vaihtoehdoista, voit kutsua kokoonpano-osion suoraan:

# info -f grub -n 'Simple configuration'

Yllä olevan komennon avulla saat selville, että GRUB_TIMEOUT asettaa ajanjakson hetkestä, jolloin aloitusnäyttö tulee näkyviin, ja järjestelmän automaattisen käynnistämisen välillä, ellei käyttäjä keskeytä sitä. Kun tämän muuttujan arvoksi on asetettu -1 , käynnistystä ei aloiteta ennen kuin käyttäjä tekee valinnan.

Kun samaan koneeseen on asennettu useita käyttöjärjestelmiä tai ytimiä, GRUB_DEFAULT vaatii kokonaisluvun arvon, joka ilmoittaa, mikä käyttöjärjestelmän tai ytimen merkintä GRUB-aloitusnäytössä tulisi valita oletusarvoisesti käynnistettäväksi. Merkintäluetteloa voidaan tarkastella paitsi yllä olevassa näytössä myös seuraavalla komennolla:

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

Alla olevan kuvan esimerkissä, jos haluamme käynnistää ytimen versiolla 3.10.0-123.el7.x86_64 (4. merkintä), meidän on asetettava GRUB_DEFAULT -asetukseksi 3 (merkinnät on numeroitu sisäisesti nollalla) seuraavasti:

GRUB_DEFAULT=3

Yksi viimeinen erityisen kiinnostava GRUB-määritysmuuttuja on GRUB_CMDLINE_LINUX , jota käytetään siirtämään vaihtoehtoja ytimeen. Vaihtoehdot, jotka voidaan välittää GRUB: n kautta ytimeen, on dokumentoitu hyvin man 7: n käynnistysparamessa.

CentOS 7 -palvelimen nykyiset vaihtoehdot ovat:

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"

Miksi haluat muuttaa ytimen oletusparametreja tai siirtää ylimääräisiä vaihtoehtoja? Yksinkertaisesti sanottuna voi olla tilanteita, jolloin sinun on kerrottava ytimelle tietyt laitteistoparametrit, joita se ei ehkä pysty määrittämään yksin, tai ohittaa havaitsemansa arvot.

Tämä tapahtui minulle liian kauan sitten, kun kokeilin Vector Linuxia, Slackwaren johdannaista, 10-vuotiaalla kannettavalla tietokoneellani. Asennuksen jälkeen se ei havainnut videokorttini oikeita asetuksia, joten jouduin muuttamaan GRUB: n kautta kulkeneita ytimen asetuksia, jotta se toimisi.

Toinen esimerkki on, kun sinun on saatettava järjestelmä yhden käyttäjän tilaan huoltotöiden suorittamiseksi. Voit tehdä tämän liittämällä sanan single kohtaan GRUB_CMDLINE_LINUX ja käynnistämällä uudelleen:

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"

Kun olet muokannut /etc/defalt/grub , sinun on suoritettava update-grub (Ubuntu) tai grub2-mkconfig -o/boot/grub2/grub. cfg (CentOS ja openSUSE) sen jälkeen päivittääksesi grub.cfg (muuten muutokset menetetään käynnistyksen yhteydessä).

Tämä komento käsittelee aiemmin mainitut käynnistysmääritystiedostot päivittämään grub.cfg . Tämä menetelmä varmistaa, että muutokset ovat pysyviä, kun taas GRUB: n kautta käynnistysvaiheessa välitetyt asetukset kestävät vain nykyisen istunnon aikana.

Linux GRUB -ongelmien korjaaminen

Jos asennat toisen käyttöjärjestelmän tai jos GRUB-määritystiedostosi vioittuu inhimillisen virheen vuoksi, on olemassa tapoja, joilla voit saada järjestelmän takaisin jaloilleen ja pystyä käynnistämään uudelleen.

Paina aloitusnäytössä c saadaksesi GRUB-komentorivin (muista, että voit muokata oletuskäynnistysasetuksia myös painamalla e ) ja tuo käytettävissä olevat ohjeet komennot GRUB-kehotteessa:

Keskitymme ls: ään, jossa luetellaan asennetut laitteet ja tiedostojärjestelmät, ja tutkitaan, mitä se löytää. Alla olevassa kuvassa näemme, että kiintolevyjä on 4 ( hd0 - hd3 ).

Vain hd0 näyttää olevan osioitu (kuten msdos1 ja msdos2 osoittavat, missä 1 ja 2 ovat osionumerot ja msdos on osiointijärjestelmä).

Tutkitaan nyt hd0 (msdos1) -osan ensimmäistä osiota, jotta löydämme GRUB: n. Tämän lähestymistavan avulla voimme käynnistää Linuxin ja käyttää muita korkean tason työkaluja korjaamaan kokoonpanotiedoston tai asentamaan GRUB: n kokonaan uudelleen tarvittaessa:

# ls (hd0,msdos1)/

Kuten voimme nähdä korostetulta alueelta, löysimme grub2-hakemiston tästä osiosta:

Kun olemme varmoja, että GRUB asuu paikassa (hd0, msdos1), kerrotaan GRUBille, mistä sen määritystiedosto löytyy, ja käskemme sitten yrittämään käynnistää valikkonsa:

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

Valitse sitten GRUB-valikossa tieto ja käynnistä se painamalla Enter-näppäintä. Kun järjestelmä on käynnistynyt, voit antaa komennon grub2-install/dev/sdX (muuta sdX laitteella, johon haluat asentaa GRUB). Käynnistystiedot päivitetään ja kaikki siihen liittyvät tiedostot palautetaan.

# grub2-install /dev/sdX

Muut monimutkaisemmat skenaariot ja niiden ehdotetut korjaukset on dokumentoitu Ubuntu GRUB2 -vianmääritysoppaassa. Siellä selitetyt käsitteet pätevät myös muihin jakeluihin.

Yhteenveto

Tässä artikkelissa olemme tutustuttaneet sinut GRUB: iin, ilmoittaneet, mistä löydät dokumentaation sekä online- että offline-tilassa, ja selittäneet, miten lähestytään tilannetta, jossa järjestelmä on lopettanut käynnistämisen oikein käynnistyslataimeen liittyvän ongelman vuoksi.

Onneksi GRUB on yksi parhaiten dokumentoiduista työkaluista, ja voit helposti löytää apua joko asennetuista asiakirjoista tai verkosta käyttämällä tässä artikkelissa jaettuja resursseja.

Onko sinulla kysyttävää tai kommentteja? Älä epäröi ilmoittaa siitä meille alla olevan kommenttilomakkeen avulla. Me odotamme yhteydenottoasi!