LFCS: Kif tikkonfigura u ssolvi l-problemi tal-Grand Unified Bootloader (GRUB) - Parti 13


Minħabba l-bidliet riċenti fl-għanijiet tal-eżami taċ-ċertifikazzjoni LFCS effettivi mit-2 ta 'Frar, 2016, qed inżidu s-suġġetti meħtieġa mas-serje LFCE wkoll.

F'dan l-artikolu aħna ser nintroduċu inti GRUB u nispjega għaliex boot loader huwa meħtieġ, u kif iżid versatilità lis-sistema.

Il-proċess tal-boot tal-Linux minn meta tagħfas il-buttuna tal-qawwa tal-kompjuter tiegħek sakemm ikollok sistema kompletament funzjonali jsegwi din is-sekwenza ta 'livell għoli:

  1. 1. Proċess magħruf bħala POST (Power-On Self Test) iwettaq kontroll ġenerali fuq il-komponenti tal-ħardwer tal-kompjuter tiegħek.
  2. 2. Meta l-POST jitlesta, jgħaddi l-kontroll lill-boot loader, li mbagħad jgħabbi l-kernel tal-Linux fil-memorja (flimkien ma 'initramfs) u jesegwixxih. L-aktar boot loader użat fil-Linux huwa l-GRand Unified Boot loader, jew GRUB fil-qosor.
  3. 3. Il-kernel jiċċekkja u jaċċessa l-ħardwer, u mbagħad imexxi l-proċess inizjali (l-aktar magħruf bl-isem ġeneriku tiegħu \init) li mbagħad itemm il-boot tas-sistema billi jibda s-servizzi.

Fil-Parti 7 ta' din is-serje (\sistemi ta' ġestjoni tas-servizz u għodod użati minn distribuzzjonijiet moderni tal-Linux. Tista' tkun trid tirrevedi dak l-artikolu qabel ma tkompli.

L-introduzzjoni ta' GRUB Boot Loader

Żewġ verżjonijiet ewlenin tal-GRUB (v1 kultant imsejħa GRUB Legacy u v2) jistgħu jinstabu f'sistemi moderni, għalkemm il-biċċa l-kbira tad-distribuzzjonijiet jużaw v2 awtomatikament fl-aħħar verżjonijiet tagħhom. Red Hat Enterprise Linux 6 u d-derivattivi tiegħu biss għadhom jużaw v1 illum.

Għalhekk, aħna se niffukaw primarjament fuq il-karatteristiċi ta 'v2 f'din il-gwida.

Irrispettivament mill-verżjoni GRUB, boot loader jippermetti lill-utent li:

  1. 1). timmodifika l-mod kif is-sistema taġixxi billi tispeċifika kernels differenti biex tuża,
  2. 2). jagħżlu bejn sistemi operattivi alternattivi għall-boot, u
  3. 3). żid jew editja strofi tal-konfigurazzjoni biex tbiddel l-għażliet tal-boot, fost affarijiet oħra.

Illum, GRUB huwa miżmum mill-proġett GNU u huwa dokumentat tajjeb fil-websajt tagħhom. Inti mħeġġa tuża d-dokumentazzjoni uffiċjali tal-GNU waqt li tkun għaddejja minn din il-gwida.

Meta s-sistema tibda tiġi ppreżentat bl-iskrin GRUB li ġej fil-console prinċipali. Inizjalment, inti mħeġġa tagħżel bejn kernels alternattivi (b'mod awtomatiku, is-sistema tibbutja billi tuża l-aħħar kernel) u titħalla tidħol fil-linja tal-kmand GRUB (b'c) jew teditja l-għażliet tal-boot (billi tagħfas it-tasti e).

Waħda mir-raġunijiet għalfejn inti tikkunsidra li booting b'kernel anzjani hija apparat hardware li kien jaħdem sew u beda \jaġixxi wara aġġornament (irreferi għal din il-link fil-fora AskUbuntu għal eżempju).

Il-konfigurazzjoni GRUB v2 tinqara mal-boot minn /boot/grub/grub.cfg jew /boot/grub2/grub.cfg, filwaqt li /boot/grub/ grub.conf jew /boot/grub/menu.lst huma użati fil-v1. Dawn il-fajls MHUX għandhom jiġu editjati bl-idejn, iżda huma modifikati abbażi tal-kontenut ta' /etc/default/grub u l-fajls misjuba ġewwa /etc/grub.d.

F'CentOS 7, hawn il-fajl tal-konfigurazzjoni li jinħoloq meta s-sistema tiġi installata għall-ewwel darba:

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"

Minbarra d-dokumentazzjoni onlajn, tista’ ssib ukoll il-manwal ta’ GNU GRUB billi tuża l-informazzjoni kif ġej:

# info grub

Jekk int interessat speċifikament fl-għażliet disponibbli għal /etc/default/grub, tista 'titlob is-sezzjoni tal-konfigurazzjoni direttament:

# info -f grub -n 'Simple configuration'

Bl-użu tal-kmand hawn fuq issib li GRUB_TIMEOUT jistabbilixxi l-ħin bejn il-mument meta l-iskrin inizjali jidher u jibda l-ibbutjar awtomatiku tas-sistema sakemm ma jiġix interrott mill-utent. Meta din il-varjabbli tkun issettjata għal -1, il-boot mhux se jinbeda sakemm l-utent jagħmel għażla.

Meta sistemi operattivi jew kernels multipli huma installati fl-istess magna, GRUB_DEFAULT jeħtieġ valur sħiħ li jindika liema OS jew dħul tal-kernel fl-iskrin inizjali tal-GRUB għandu jintgħażel biex jibda b'mod awtomatiku. Il-lista ta' entrati tista' tara mhux biss fl-iskrin tat-tixrid muri hawn fuq, iżda wkoll bl-użu tal-kmand li ġej:

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

Fl-eżempju muri fl-immaġini hawn taħt, jekk irridu nibdew bil-verżjoni tal-kernel 3.10.0-123.el7.x86_64 (ir-4 dħul), irridu nissettjaw GRUB_DEFAULT għal 3 (l-entrati huma nnumerati internament li jibdew b'żero) kif ġej:

GRUB_DEFAULT=3

Varjabbli finali tal-konfigurazzjoni GRUB li hija ta' interess speċjali hija GRUB_CMDLINE_LINUX, li tintuża biex tgħaddi l-għażliet lill-kernel. L-għażliet li jistgħu jiġu mgħoddija minn GRUB lill-qalba huma dokumentati sew fil-man 7 bootparam.

L-għażliet attwali fis-server tiegħi CentOS 7 huma:

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"

Għaliex trid timmodifika l-parametri tal-kernel default jew tgħaddi għażliet żejda? F'termini sempliċi, jista 'jkun hemm żminijiet meta jkollok bżonn tgħid lill-qalba ċerti parametri tal-ħardwer li jista' ma jkunx kapaċi jiddetermina waħdu, jew li jegħleb il-valuri li jiskopri.

Dan ġara lili mhux twil ilu meta ppruvajt Vector Linux, derivattiv ta’ Slackware, fuq il-laptop tiegħi ta’ 10 snin. Wara l-installazzjoni ma sabx is-settings it-tajba għall-kard tal-vidjo tiegħi għalhekk kelli timmodifika l-għażliet tal-qalba mgħoddija minn GRUB sabiex nagħmilha taħdem.

Eżempju ieħor huwa meta jkollok bżonn iġġib is-sistema għall-modalità ta 'utent wieħed biex twettaq il-kompiti ta' manutenzjoni. Tista' tagħmel dan billi tehmeż il-kelma single ma' GRUB_CMDLINE_LINUX u terġa' tibda:

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"

Wara li teditja /etc/defalt/grub, ikollok bżonn tħaddem update-grub (Ubuntu) jew grub2-mkconfig -o /boot/grub2/grub. cfg (CentOS u openSUSE) wara biex taġġorna grub.cfg (inkella, il-bidliet jintilfu mal-boot).

Dan il-kmand se jipproċessa l-fajls tal-konfigurazzjoni tal-boot imsemmija qabel biex jaġġorna grub.cfg. Dan il-metodu jiżgura li l-bidliet huma permanenti, filwaqt li l-għażliet mgħoddija minn GRUB fil-ħin tal-ibbutjar se jdumu biss matul is-sessjoni attwali.

Iffissar tal-Linux GRUB Kwistjonijiet

Jekk tinstalla t-tieni sistema operattiva jew jekk il-fajl tal-konfigurazzjoni GRUB tiegħek jiġi korrott minħabba żball uman, hemm modi kif tista 'ttella' s-sistema tiegħek fuq saqajha u tkun tista' terġa' tibbotja.

Fl-iskrin inizjali, agħfas c biex tikseb linja ta' kmand GRUB (ftakar li tista' wkoll tagħfas e biex teditja l-għażliet tal-boot default), u uża l-għajnuna biex iġġib il-mezzi disponibbli. kmandi fil-pront GRUB:

Aħna se niffukaw fuq ls, li se jelenka l-apparati installati u s-sistemi tal-fajls, u se neżaminaw dak li ssib. Fl-immaġni hawn taħt nistgħu naraw li hemm 4 hard drives (hd0 permezz ta' hd3).

Biss hd0 jidher li kien maqsum (kif jidher minn msdos1 u msdos2, fejn 1 u 2 huma n-numri tal-partizzjoni u msdos hija l-iskema tal-qsim).

Ejja issa neżaminaw l-ewwel partizzjoni fuq hd0 (msdos1) biex naraw jekk nistgħux insibu GRUB hemmhekk. Dan l-approċċ se jippermettilna nibdew il-Linux u hemm nużaw għodod oħra ta 'livell għoli biex isewwi l-fajl tal-konfigurazzjoni jew nerġa' ninstalla GRUB għal kollox jekk ikun meħtieġ:

# ls (hd0,msdos1)/

Kif nistgħu naraw fiż-żona enfasizzata, sibna d-direttorju grub2 f'din il-partizzjoni:

Ladarba nkunu ċerti li GRUB jirrisjedi fi (hd0,msdos1), ejja ngħidu lil GRUB fejn isib il-fajl tal-konfigurazzjoni tiegħu u mbagħad jagħtih struzzjonijiet biex jipprova jniedi l-menu tiegħu:

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

Imbagħad fil-menu GRUB, agħżel entrata u agħfas Enter biex tibda tużaha. Ladarba s-sistema tkun ibbutjat tista' toħroġ il-kmand grub2-install /dev/sdX (ibdel sdX bl-apparat li trid tinstalla GRUB fuqu). L-informazzjoni tal-but imbagħad tiġi aġġornata u l-fajls kollha relatati jiġu restawrati.

# grub2-install /dev/sdX

Xenarji oħra aktar kumplessi huma dokumentati, flimkien mal-soluzzjonijiet suġġeriti tagħhom, fil-gwida għall-Issolvi l-problemi ta 'Ubuntu GRUB2. Il-kunċetti spjegati hemm huma validi għal distribuzzjonijiet oħra wkoll.

Sommarju

F'dan l-artikolu introduċejnikom fil-GRUB, indikat fejn tista' ssib dokumentazzjoni kemm online kif ukoll offline, u spjegajna kif tavviċina xenarju fejn sistema tkun waqfet tibbotja sew minħabba kwistjoni relatata mal-bootloader.

Fortunatament, GRUB hija waħda mill-għodod li hija l-aħjar dokumentata u faċilment tista 'ssib għajnuna jew fid-dokumenti installati jew onlajn billi tuża r-riżorsi li qsamna f'dan l-artikolu.

Għandek mistoqsijiet jew kummenti? Toqgħodx taħsibha biex tgħarrafna billi tuża l-formola tal-kummenti hawn taħt. Aħna ħerqana li nisimgħu mingħandek!