LFCS: Yadda Ake Daidaita da Magance Babban Haɗin Bootloader (GRUB) - Sashe na 13


Saboda sauye-sauyen kwanan nan a cikin manufofin jarrabawar takaddun shaida na LFCS daga ranar 2 ga Fabrairu, 2016, muna ƙara batutuwan da ake buƙata ga jerin LFCE kuma.

A cikin wannan labarin za mu gabatar muku da GRUB kuma mu bayyana dalilin da yasa bootloader ya zama dole, da kuma yadda yake ƙara haɓakawa ga tsarin.

Tsarin boot ɗin Linux daga lokacin da ka danna maɓallin wuta na kwamfutarka har sai ka sami cikakken tsarin aiki yana bin wannan babban matakin:

  1. 1. Tsarin da aka sani da POST (Power-On Self Test) yana gudanar da bincike gabaɗaya akan kayan aikin kwamfutarka.
  2. 2. Lokacin da POST ya cika, ya wuce ikon sarrafawa zuwa ga bootloader, wanda kuma yana loda kernel Linux a cikin ƙwaƙwalwar ajiya (tare da initramfs) kuma yana aiwatar da shi. Mafi amfani da lodar taya a Linux shine GRand Unified Boot Loader, ko GRUB a takaice.
  3. 3. Kwayar tana dubawa kuma ta shiga cikin kayan aikin, sannan ta aiwatar da tsarin farko (wanda aka fi sani da sunansa gabaɗaya \init) wanda hakanan yana kammala boot ɗin tsarin ta fara ayyuka.

A cikin Sashe na 7 na wannan silsilar (\Tsarin sarrafa sabis da kayan aikin da ake amfani da su ta hanyar rarraba Linux na zamani. Kuna iya sake duba wannan labarin kafin ci gaba.

Gabatar da GRUB Boot Loader

Ana iya samun manyan nau'ikan GRUB guda biyu (v1 wani lokaci ana kiransa GRUB Legacy da v2) a cikin tsarin zamani, kodayake yawancin rabawa suna amfani da v2 ta tsohuwa a cikin sabbin nau'ikan su. Kasuwancin Red Hat Linux 6 kawai da abubuwan da suka samo asali har yanzu suna amfani da v1 a yau.

Don haka, za mu mai da hankali da farko kan fasalulluka na v2 a cikin wannan jagorar.

Ko da sigar GRUB, mai ɗaukar kaya yana bawa mai amfani damar:

  1. 1). gyara yadda tsarin ke aiki ta hanyar tantance kernels daban-daban don amfani,
  2. 2). zaɓi tsakanin madadin tsarin aiki don taya, da
  3. 3). ƙara ko gyara stanzas na daidaitawa don canza zaɓuɓɓukan taya, da sauran abubuwa.

A yau, GNU yana kula da GRUB kuma yana da kyau a rubuce a cikin gidan yanar gizon su. Ana ƙarfafa ku da yin amfani da takaddun hukuma na GNU yayin shiga cikin wannan jagorar.

Lokacin da tsarin ya tashi ana gabatar da ku tare da allon GRUB mai zuwa a cikin babban na'ura mai kwakwalwa. Da farko, an sa ka zaɓi tsakanin madadin kernels (ta tsohuwa, tsarin zai yi ta amfani da sabon kernel) kuma ana ba ka damar shigar da layin umarni na GRUB (tare da c) ko shirya zaɓuɓɓukan taya (ta latsa maɓallin e).

Ɗaya daga cikin dalilan da ya sa za ku yi la'akari da yin booting tare da tsohuwar kernel shine na'urar kayan aiki da ke aiki da kyau kuma ta fara aiki bayan haɓakawa (duba wannan hanyar haɗi a cikin dandalin AskUbuntu misali).

Ana karanta tsarin GRUB v2 akan taya daga /boot/grub/grub.cfg ko /boot/grub2/grub.cfg, yayin da /boot/grub/ grub.conf ko /boot/grub/menu.lst ana amfani dashi a v1. Waɗannan fayilolin ba za a gyara su da hannu ba, amma ana gyara su bisa abubuwan da ke cikin /etc/default/grub da fayilolin da aka samo a cikin /etc/grub.d.

A cikin CentOS 7, ga fayil ɗin sanyi wanda aka ƙirƙira lokacin da aka fara shigar da tsarin:

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"

Baya ga takaddun kan layi, zaku iya samun littafin GNU GRUB ta amfani da bayanai kamar haka:

# info grub

Idan kuna sha'awar musamman akan zaɓuɓɓukan da ke akwai don /etc/default/grub, zaku iya kiran sashin daidaitawa kai tsaye:

# info -f grub -n 'Simple configuration'

Yin amfani da umarnin da ke sama za ku gano cewa GRUB_TIMEOUT yana saita lokaci tsakanin lokacin da allon farko ya bayyana kuma tsarin yana farawa ta atomatik sai dai idan mai amfani ya katse shi. Lokacin da aka saita wannan canjin zuwa -1, ba za a fara taya ba har sai mai amfani ya zaɓi.

Lokacin da aka shigar da tsarin aiki da yawa ko kernels a cikin injin iri ɗaya, GRUB_DEFAULT yana buƙatar ƙimar lamba da ke nuna wace shigar OS ko kernel a cikin allon farko na GRUB ya kamata a yi boot ta tsohuwa. Ana iya duba jerin abubuwan shigarwa ba kawai a cikin allon fantsama da aka nuna a sama ba, har ma ta amfani da umarni mai zuwa:

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

A cikin misalin da aka nuna a hoton da ke ƙasa, idan muna son yin taya tare da nau'in kernel 3.10.0-123.el7.x86_64 (shigarwar ta huɗu), muna buƙatar saita GRUB_DEFAULT zuwa 3 (masu shigarwa ana ƙididdige su a ciki farawa da sifili) kamar haka:

GRUB_DEFAULT=3

Ɗaya daga cikin madaidaicin daidaitawar GRUB na ƙarshe wanda ke da sha'awa ta musamman shine GRUB_CMDLINE_LINUX, wanda ake amfani da shi don ƙaddamar da zaɓuɓɓuka zuwa kernel. Zaɓuɓɓukan da za a iya wucewa ta hanyar GRUB zuwa kernel an rubuta su da kyau a cikin mutum 7 bootparam.

Zaɓuɓɓukan yanzu a cikin uwar garken CentOS 7 na sune:

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"

Me yasa kuke son canza tsoffin sigogin kernel ko wuce ƙarin zaɓuɓɓuka? A cikin sassauƙan kalmomi, ƙila akwai lokutan da kuke buƙatar gaya wa kernel wasu sigogin kayan masarufi waɗanda ƙila ba za su iya tantancewa da kan sa ba, ko kuma a soke ƙimar da zai gano.

Wannan ya faru da ni ba da dadewa ba lokacin da na gwada Vector Linux, wanda ya samo asali daga Slackware, akan kwamfutar tafi-da-gidanka mai shekaru 10. Bayan shigarwa bai gano saitunan da suka dace don katin bidiyo na ba don haka dole ne in canza zaɓuɓɓukan kernel da suka wuce ta GRUB don yin aiki.

Wani misali shine lokacin da kake buƙatar kawo tsarin zuwa yanayin mai amfani guda ɗaya don yin ayyukan kulawa. Kuna iya yin hakan ta hanyar sanya kalmar guda ɗaya zuwa GRUB_CMDLINE_LINUX kuma sake kunnawa:

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"

Bayan gyara /etc/defalt/grub, kuna buƙatar kunna update-grub (Ubuntu) ko grub2-mkconfig -o /boot/grub2/grub. cfg (CentOS da openSUSE) daga baya don sabunta grub.cfg (in ba haka ba, za a rasa canje-canje yayin taya).

Wannan umarnin zai aiwatar da fayilolin daidaitawar taya da aka ambata a baya don sabunta grub.cfg. Wannan hanyar tana tabbatar da canje-canjen sun kasance na dindindin, yayin da zaɓuɓɓukan da suka wuce ta GRUB a lokacin taya za su dawwama a lokacin zaman na yanzu.

Gyara Matsalolin GRUB na Linux

Idan kun shigar da tsarin aiki na biyu ko kuma idan fayil ɗin sanyi na GRUB ɗinku ya lalace saboda kuskuren ɗan adam, akwai hanyoyin da zaku iya dawo da tsarin ku akan ƙafafunsa kuma ku sami damar sake yin taya.

A cikin allon farko, danna c don samun layin umarni na GRUB (tuna cewa zaku iya danna e don gyara tsoffin zaɓuɓɓukan taya), sannan yi amfani da taimako don kawo abubuwan da ke akwai. umarni a cikin saurin GRUB:

Za mu mayar da hankali kan ls, wanda zai jera na'urorin da aka shigar da tsarin fayil, kuma za mu bincika abin da ya samo. A cikin hoton da ke ƙasa muna iya ganin cewa akwai rumbun kwamfyuta guda 4 (hd0 ta hanyar hd3).

Sai kawai hd0 da alama an raba su (kamar yadda msdos1 da msdos2 suka tabbatar, inda 1 da 2 sune lambobin ɓangaren kuma msdos shine tsarin rarrabawa).

Yanzu bari mu bincika ɓangaren farko akan hd0 (msdos1) don ganin ko za mu iya samun GRUB a wurin. Wannan hanyar za ta ba mu damar yin booting Linux kuma a can amfani da wasu manyan kayan aikin don gyara fayil ɗin sanyi ko sake shigar da GRUB gaba ɗaya idan ana buƙata:

# ls (hd0,msdos1)/

Kamar yadda muke iya gani a cikin yankin da aka haskaka, mun sami directory grub2 a cikin wannan bangare:

Da zarar mun tabbata cewa GRUB yana zaune a cikin (hd0, msdos1), bari mu gaya wa GRUB inda zai sami fayil ɗin sanyi sannan mu umarce shi da ƙoƙarin ƙaddamar da menu nasa:

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

Sannan a cikin menu na GRUB, zaɓi shigarwa kuma danna Shigar don yin amfani da shi. Da zarar tsarin ya kunna za ka iya ba da umarnin grub2-install/dev/sdX (canza sdX tare da na'urar da kake son saka GRUB akan). Za a sabunta bayanan taya kuma za a dawo da duk fayilolin da ke da alaƙa.

# grub2-install /dev/sdX

An rubuta wasu ƙarin rikitattun al'amuran, tare da shawarwarin gyaran su, a cikin jagorar warware matsalar Ubuntu GRUB2. Abubuwan da aka bayyana a can suna da inganci don sauran rabawa kuma.

Takaitawa

A cikin wannan labarin mun gabatar da ku zuwa GRUB, inda aka nuna inda za ku iya samun takardu a kan layi da kuma layi, kuma mun bayyana yadda za ku fuskanci yanayin da tsarin ya daina yin booting da kyau saboda batun da ya shafi bootloader.

Abin farin ciki, GRUB yana ɗaya daga cikin kayan aikin da aka tsara mafi kyau kuma zaka iya samun taimako cikin sauƙi ko dai a cikin takardun da aka shigar ko kuma ta kan layi ta amfani da albarkatun da muka raba a cikin wannan labarin.

Kuna da tambayoyi ko sharhi? Kada ku yi jinkiri don sanar da mu ta amfani da fam ɗin sharhi a ƙasa. Muna jiran ji daga gare ku!