LFCS: Jinsi ya Kusanidi na Kusuluhisha Kipakiaji Kikubwa cha Unified (GRUB) - Sehemu ya 13


Kwa sababu ya mabadiliko ya hivi majuzi katika malengo ya mtihani wa uthibitishaji wa LFCS kuanzia tarehe 2 Februari 2016, tunaongeza mada zinazohitajika kwenye mfululizo wa LFCE pia.

Katika makala hii tutakujulisha kwa GRUB na kueleza kwa nini kipakiaji cha boot ni muhimu, na jinsi inavyoongeza versatility kwenye mfumo.

Mchakato wa kuwasha Linux kuanzia unapobonyeza kitufe cha kuwasha/kuzima cha kompyuta yako hadi upate mfumo unaofanya kazi kikamilifu hufuata mfuatano huu wa kiwango cha juu:

  1. 1. Mchakato unaojulikana kama POST (Power-On Self Test) hukagua kwa jumla vipengele vya maunzi vya kompyuta yako.
  2. 2. POST inapokamilika, hupitisha udhibiti kwa kipakiaji cha buti, ambacho hupakia kernel ya Linux kwenye kumbukumbu (pamoja na initramfs) na kuitekeleza. Kipakiaji cha kuwasha kinachotumika zaidi katika Linux ni kipakiaji cha Kianzi Kilichounganishwa, au GRUB kwa kifupi.
  3. 3. Kernel hukagua na kufikia maunzi, na kisha kuendesha mchakato wa awali (hujulikana zaidi kwa jina lake la jumla \init) ambao nao hukamilisha kuwasha mfumo kwa kuanza huduma.

Katika Sehemu ya 7 ya mfululizo huu (\mifumo ya usimamizi wa huduma na zana zinazotumiwa na usambazaji wa kisasa wa Linux. Unaweza kutaka kukagua makala hayo kabla ya kuendelea zaidi.

Tunakuletea Kipakiaji cha Boot cha GRUB

Matoleo mawili makuu ya GRUB (v1 ambayo wakati mwingine huitwa GRUB Legacy na v2) yanaweza kupatikana katika mifumo ya kisasa, ingawa usambazaji mwingi hutumia v2 kwa chaguo-msingi katika matoleo yao ya hivi karibuni. Ni Red Hat Enterprise Linux 6 pekee na viasili vyake ambavyo bado vinatumia v1 leo.

Kwa hivyo, tutazingatia hasa vipengele vya v2 katika mwongozo huu.

Bila kujali toleo la GRUB, kipakiaji cha boot huruhusu mtumiaji:

  1. 1). rekebisha jinsi mfumo unavyofanya kazi kwa kubainisha kokwa tofauti za kutumia,
  2. 2). chagua kati ya mifumo ya uendeshaji mbadala ili kuwasha, na
  3. 3). ongeza au hariri tungo za usanidi ili kubadilisha chaguo za kuwasha, miongoni mwa mambo mengine.

Leo, GRUB inadumishwa na mradi wa GNU na imeandikwa vyema kwenye tovuti yao. Unahimizwa kutumia nyaraka rasmi za GNU unapopitia mwongozo huu.

Wakati boti za mfumo unawasilishwa na skrini ifuatayo ya GRUB kwenye koni kuu. Hapo awali, unaulizwa kuchagua kati ya kernels mbadala (kwa chaguo-msingi, mfumo utaanza kutumia kernel ya hivi punde) na unaruhusiwa kuingiza safu ya amri ya GRUB (na c) au kuhariri chaguzi za kuwasha (kwa kubonyeza kitufe cha e).

Mojawapo ya sababu kwa nini ungefikiria kuanzisha upya na kernel ya zamani ni kifaa cha maunzi ambacho kilikuwa kikifanya kazi vizuri na kimeanza \kuigiza baada ya kusasisha (rejelea kiungo hiki kwenye mabaraza ya AskUbuntu kwa mfano).

Mipangilio ya GRUB v2 inasomwa kwenye buti kutoka /boot/grub/grub.cfg au /boot/grub2/grub.cfg, ilhali /boot/grub/ grub.conf au /boot/grub/menu.lst zinatumika katika v1. Faili hizi SI ZA kuhaririwa kwa mkono, lakini zinarekebishwa kulingana na maudhui ya /etc/default/grub na faili zinazopatikana ndani ya /etc/grub.d.

Katika CentOS 7, hapa kuna faili ya usanidi ambayo inaundwa wakati mfumo umewekwa kwa mara ya kwanza:

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"

Kwa kuongezea nyaraka za mtandaoni, unaweza pia kupata mwongozo wa GNU GRUB kwa kutumia maelezo kama ifuatavyo:

# info grub

Ikiwa una nia mahsusi katika chaguo zinazopatikana kwa /etc/default/grub, unaweza kuomba sehemu ya usanidi moja kwa moja:

# info -f grub -n 'Simple configuration'

Kwa kutumia amri iliyo hapo juu, utagundua kuwa GRUB_TIMEOUT huweka muda kati ya muda ambao skrini ya kwanza inaonekana na mfumo wa kuwasha kiotomatiki huanza isipokuwa kukatizwa na mtumiaji. Tofauti hii ikiwekwa kuwa -1, kuwasha hakutaanzishwa hadi mtumiaji afanye uteuzi.

Wakati mifumo ya uendeshaji au kernels nyingi zimesakinishwa kwenye mashine moja, GRUB_DEFAULT inahitaji thamani kamili ambayo inaonyesha ni ingizo gani la OS au kernel kwenye skrini ya mwanzo ya GRUB linafaa kuchaguliwa ili kuwasha kwa chaguomsingi. Orodha ya maingizo inaweza kutazamwa sio tu kwenye skrini iliyoonyeshwa hapo juu, lakini pia kwa kutumia amri ifuatayo:

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

Katika mfano ulioonyeshwa kwenye picha iliyo hapa chini, ikiwa tunataka kuwasha na toleo la kernel 3.10.0-123.el7.x86_64 (ingizo la 4), tunahitaji kuweka GRUB_DEFAULT kuwa 3 (viingizo vimepewa nambari za ndani kuanzia sifuri) kama ifuatavyo:

GRUB_DEFAULT=3

Kigeu kimoja cha mwisho cha usanidi wa GRUB ambacho kinavutia sana ni GRUB_CMDLINE_LINUX, ambayo hutumiwa kupitisha chaguo kwenye kernel. Chaguzi ambazo zinaweza kupitishwa kupitia GRUB hadi kernel zimeandikwa vizuri kwenye man 7 bootparam.

Chaguzi za sasa katika seva yangu ya CentOS 7 ni:

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"

Kwa nini ungetaka kurekebisha vigezo vya msingi vya kernel au kupitisha chaguzi za ziada? Kwa maneno rahisi, kunaweza kuwa na wakati unahitaji kuambia kernel vigezo fulani vya vifaa ambavyo inaweza kuwa na uwezo wa kuamua yenyewe, au kupuuza maadili ambayo ingegundua.

Hii ilinitokea si muda mrefu sana nilipojaribu Vector Linux, derivative ya Slackware, kwenye kompyuta yangu ya mkononi ya miaka 10. Baada ya usakinishaji haikugundua mipangilio sahihi ya kadi yangu ya video kwa hivyo ilibidi nirekebishe chaguzi za kernel zilizopitishwa kupitia GRUB ili kuifanya ifanye kazi.

Mfano mwingine ni wakati unahitaji kuleta mfumo kwa hali ya mtumiaji mmoja kufanya kazi za matengenezo. Unaweza kufanya hivyo kwa kuambatisha neno moja kwenye GRUB_CMDLINE_LINUX na kuwasha upya:

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"

Baada ya kuhariri /etc/defalt/grub, utahitaji kuendesha update-grub (Ubuntu) au grub2-mkconfig -o /boot/grub2/grub. cfg (CentOS na openSUSE) baadaye ili kusasisha grub.cfg (vinginevyo, mabadiliko yatapotea baada ya kuwasha).

Amri hii itachakata faili za usanidi wa kuwasha zilizotajwa hapo awali ili kusasisha grub.cfg. Njia hii inahakikisha kuwa mabadiliko ni ya kudumu, huku chaguo zinazopitishwa kupitia GRUB wakati wa kuwasha zitadumu tu wakati wa kipindi cha sasa.

Kurekebisha Masuala ya Linux GRUB

Ukisakinisha mfumo wa pili wa uendeshaji au ikiwa faili yako ya usanidi wa GRUB itaharibika kwa sababu ya hitilafu ya kibinadamu, kuna njia ambazo unaweza kurejesha mfumo wako kwa miguu yake na uweze kuwasha tena.

Katika skrini ya kwanza, bonyeza c ili kupata mstari wa amri wa GRUB (kumbuka kwamba unaweza pia kubofya e ili kuhariri chaguo-msingi za kuwasha), na utumie usaidizi kuleta zinazopatikana. amri katika haraka ya GRUB:

Tutazingatia ls, ambayo itaorodhesha vifaa vilivyowekwa na mifumo ya faili, na tutachunguza kile kinachopata. Katika picha hapa chini tunaweza kuona kwamba kuna diski 4 (hd0 kupitia hd3).

Ni hd0 pekee inayoonekana kugawanywa (kama inavyothibitishwa na msdos1 na msdos2, ambapo 1 na 2 ndizo nambari za kugawa na msdos ni mpango wa kugawa).

Hebu sasa tuchunguze kizigeu cha kwanza kwenye hd0 (msdos1) ili kuona kama tunaweza kupata GRUB hapo. Mbinu hii itaturuhusu kuwasha Linux na huko kutumia zana zingine za kiwango cha juu kurekebisha faili ya usanidi au kusakinisha tena GRUB kabisa ikiwa inahitajika:

# ls (hd0,msdos1)/

Kama tunavyoona katika eneo lililoangaziwa, tulipata saraka ya grub2 kwenye kizigeu hiki:

Mara tu tunapohakikisha kuwa GRUB inakaa ndani (hd0,msdos1), hebu tuambie GRUB wapi pa kupata faili yake ya usanidi na kisha iamuru ijaribu kuzindua menyu yake:

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

Kisha kwenye menyu ya GRUB, chagua ingizo na ubonyeze Ingiza ili kuanza kuitumia. Baada ya mfumo kuwashwa unaweza kutoa amri ya grub2-install /dev/sdX (badilisha sdX na kifaa unachotaka kusakinisha GRUB). Taarifa ya boot kisha itasasishwa na faili zote zinazohusiana zitarejeshwa.

# grub2-install /dev/sdX

Matukio mengine magumu zaidi yameandikwa, pamoja na marekebisho yao yaliyopendekezwa, katika mwongozo wa Utatuzi wa Matatizo wa Ubuntu GRUB2. Dhana zilizoelezewa hapo ni halali kwa usambazaji mwingine pia.

Muhtasari

Katika makala haya tumekuletea GRUB, iliyoonyeshwa ambapo unaweza kupata hati mtandaoni na nje ya mtandao, na tukaeleza jinsi ya kukabiliana na hali ambapo mfumo umeacha kuwasha ipasavyo kwa sababu ya suala linalohusiana na bootloader.

Kwa bahati nzuri, GRUB ni mojawapo ya zana ambazo zimerekodiwa vyema na unaweza kupata usaidizi kwa urahisi katika hati zilizosakinishwa au mtandaoni kwa kutumia rasilimali ambazo tumeshiriki katika makala hii.

Je, una maswali au maoni? Usisite kutufahamisha kwa kutumia fomu ya maoni hapa chini. Tunatarajia kusikia kutoka kwako!