LFCS: Otu esi ahazi yana dozie nsogbu nnukwu bootloader (GRUB) - akụkụ 13


N'ihi mgbanwe na nso nso a na ebumnuche nyocha LFCS dị irè site na February 2nd, 2016, anyị na-agbakwunyekwa isiokwu ndị achọrọ na usoro LFCE.

N'isiokwu a, anyị ga-ewebata gị na GRUB ma kọwaa ihe kpatara bootloader dị mkpa, yana otu o si agbakwunye mgbanwe na usoro ahụ.

Usoro buut Linux site na oge ị pịa bọtịnụ ike nke kọmputa gị ruo mgbe ị nwetara sistemụ arụmọrụ zuru oke na-eso usoro a dị elu:

  1. 1. Usoro a maara dị ka POST (Power-On Self Test) na-eme nyocha n'ozuzu ya na ngwaike nke kọmputa gị.
  2. 2. Mgbe POST mechara, ọ na-enyefe njikwa ahụ na bootloader, nke na-ebunye kernel Linux na ebe nchekwa (yana initramfs) wee mee ya. Ihe nkedo boots kacha eji na Linux bụ GRand Unified Boot loader, ma ọ bụ GRUB maka nkenke.
  3. 3. kernel na-enyocha ma nweta ngwaike ahụ, wee malite usoro mbụ (nke a na-akpọkarị aha ya bụ init) nke na-emecha usoro buut site na ịmalite ọrụ.

N'akụkụ nke 7 nke usoro isiokwu a (Sistemụ njikwa ọrụ na ngwaọrụ nke nkesa Linux ọgbara ọhụrụ na-eji. Ị nwere ike ịchọ ịtụle akụkọ ahụ tupu ịga n'ihu.

Na-ewebata GRUB Boot Loader

Enwere ike ịhụ ụdị GRUB abụọ bụ isi (v1 mgbe ụfọdụ a na-akpọ GRUB Legacy na v2) na sistemụ ọgbara ọhụrụ, n'agbanyeghị na ọtụtụ nkesa na-eji v2 na ndabara na ụdị ọhụrụ ha. Naanị Red Hat Enterprise Linux 6 na usoro ya ka na-eji v1 taa.

Yabụ, anyị ga-elekwasị anya na njirimara nke v2 na ntuziaka a.

N'agbanyeghị ụdị GRUB, bootloader na-enye onye ọrụ ohere:

  1. 1). gbanwee ka usoro ahụ si eme site na ịkọwapụta kernel dị iche iche iji,
  2. 2). họrọ n'etiti sistemụ arụmọrụ ọzọ iji buut, na
  3. 3). tinye ma ọ bụ dezie nhazi stanzas iji gbanwee nhọrọ buut, tinyere ihe ndị ọzọ.

Taa, ọrụ GNU na-edobe GRUB ma dekọọ ya nke ọma na webụsaịtị ha. A na-agba gị ume ka ị jiri akwụkwọ gọọmentị GNU ka ị na-aga na ntuziaka a.

Mgbe akpụkpọ ụkwụ sistemụ ahụ ga-egosi gị ihuenyo GRUB na-esote na njikwa isi. Na mbụ, a kpaliri gị ịhọrọ n'etiti kernel ọzọ (site na ndabara, sistemụ ahụ ga-eji kernel ọhụrụ buo) ma kwe ka ịbanye n'ahịrị iwu GRUB (ya na c) ma ọ bụ dezie nhọrọ buut (site na na ịpị igodo e).

Otu n'ime ihe mere ị ga-eji chee na ị ga-eji kernel merela ochie buo bụ ngwaike nke na-arụ ọrụ nke ọma wee malite \ime ihe ka emechara nkwalite ( rụtụ aka na njikọ a na forums AskUbuntu dịka ọmụmaatụ).

A na-agụ nhazi GRUB v2 na buut site na /boot/grub/grub.cfg ma ọ bụ /boot/grub2/grub.cfg, ebe /boot/grub/ grub.conf ma ọ bụ /boot/grub/menu.lst na-eji na v1. Agaghị eji aka dezie faịlụ ndị a, mana a na-emezi ya dabere na ọdịnaya nke /etc/default/grub yana faịlụ ndị achọtara n'ime /etc/grub.d.

Na CentOS 7, nke a bụ faịlụ nhazi nke emepụtara mgbe etinyere sistemụ ahụ:

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"

Na mgbakwunye na akwụkwọ ntanetị, ị nwekwara ike ịchọta akwụkwọ ntuziaka GNU GRUB site na iji ozi dị ka ndị a:

# info grub

Ọ bụrụ na ị nwere mmasị kpọmkwem na nhọrọ dị maka /etc/default/grub, ị nwere ike ịkpọ ngalaba nhazi ozugbo:

# info -f grub -n 'Simple configuration'

Iji iwu dị n'elu, ị ga-achọpụta na GRUB_TIMEOUT na-ewepụta oge n'etiti oge ihuenyo mbụ pụtara na sistemụ na-amalite na-akpaghị aka ma ọ bụrụ na onye ọrụ kwụsịrị. Mgbe agbanwere mgbanwe a ka ọ bụrụ -1, agaghị ebido buut ruo mgbe onye ọrụ mere nhọrọ.

Mgbe arụnyere ọtụtụ sistemu arụ ọrụ ma ọ bụ kernel n'otu igwe, GRUB_DEFAULT chọrọ ọnụọgụ integer nke na-egosi ntinye OS ma ọ bụ kernel na ihuenyo mbụ GRUB kwesịrị ịhọrọ ka ọ buut na ndabara. Enwere ike ilele ndepụta ndenye ọ bụghị naanị na ihuenyo splash egosiri n'elu, kamakwa iji iwu a:

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

N'ihe atụ egosiri na foto dị n'okpuru, ọ bụrụ na anyị chọrọ iji ụdị kernel 3.10.0-123.el7.x86_64 (ntinye nke anọ), anyị kwesịrị ịtọ GRUB_DEFAULT ka 3 (a na-ede nọmba ntinye n'ime ya malite na efu) dị ka ndị a:

GRUB_DEFAULT=3

Otu mgbanwe nhazi GRUB ikpeazụ nke nwere mmasị pụrụ iche bụ GRUB_CMDLINE_LINUX, nke a na-eji nyefee nhọrọ na kernel. A na-edepụta nhọrọ ndị nwere ike ịgafe na GRUB na kernel na nwoke 7 bootparam.

Nhọrọ dị ugbu a na sava CentOS 7 m bụ:

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"

Kedu ihe kpatara ị ga-eji gbanwee paramita kernel ndabara ma ọ bụ nyefee nhọrọ ndị ọzọ? N'okwu dị mfe, enwere ike ịnwe oge mgbe ịchọrọ ịgwa kernel ụfọdụ paramita ngwaike nke ọ nwere ike ọ gaghị enwe ike ikpebi n'onwe ya, ma ọ bụ kagbuo ụkpụrụ ọ ga-achọpụta.

Nke a mere m n'oge na-adịbeghị anya mgbe m nwara Vector Linux, nke sitere na Slackware, na laptọọpụ 10 m dị afọ. Mgbe echichichara, ọ chọpụtaghị ntọala ziri ezi maka kaadị vidiyo m, yabụ m ga-agbanwe nhọrọ kernel gafere na GRUB iji mee ka ọ rụọ ọrụ.

Ihe atụ ọzọ bụ mgbe ịchọrọ iweta usoro ahụ na ọnọdụ otu onye ọrụ iji rụọ ọrụ mmezi. Ị nwere ike ime nke a site n'itinye okwu otu na GRUB_CMDLINE_LINUX wee malitegharịa:

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"

Mgbe ị dezichara /etc/defalt/grub, ị ga-achọ ịgba ọsọ update-grub (Ubuntu) ma ọ bụ grub2-mkconfig -o /boot/grub2/grub. cfg (CentOS na openSUSE) emesia imelite grub.cfg (ma ọ bụghị, mgbanwe ga-efunahụ n'elu buut).

Iwu a ga-ahazi faịlụ nhazi buut akpọtụrụ na mbụ iji melite grub.cfg. Usoro a na-eme ka mgbanwe na-adịgide adịgide, ebe nhọrọ gafere GRUB n'oge buut ga-adịru naanị n'oge nnọkọ dị ugbu a.

Idozi nsogbu Linux GRUB

Ọ bụrụ na ị wụnye sistemụ arụmọrụ nke abụọ ma ọ bụ ọ bụrụ na faịlụ nhazi GRUB gị na-emebi n'ihi njehie mmadụ, e nwere ụzọ ị nwere ike isi nwetaghachi usoro gị n'ụkwụ ya wee nwee ike ịmalite ọzọ.

Na ihuenyo mbụ, pịa c iji nweta ahịrị iwu GRUB (cheta na ị nwekwara ike pịa e iji dezie nhọrọ buut ndabara), wee jiri enyemaka weta ihe dịnụ. nyere iwu na ngwa ngwa GRUB:

Anyị ga-elekwasị anya na ls, nke ga-edepụta ngwaọrụ arụnyere na sistemụ faịlụ, anyị ga-enyocha ihe ọ chọtara. N'ihe onyonyo dị n'okpuru, anyị nwere ike ịhụ na enwere draịva 4 (hd0site na hd3).

Naanị hd0 dị ka e kewara (dị ka msdos1 na msdos2 gosipụtara, ebe 1 na 2 bụ nọmba nkebi na msdos bụ atụmatụ nkebi).

Ka anyị lelee nkebi mbụ na hd0 (msdos1) ka anyị hụ ma anyị nwere ike ịhụ GRUB ebe ahụ. Usoro a ga-enye anyị ohere ịbugharị Linux wee jiri ngwaọrụ ndị ọzọ dị elu rụkwaa faịlụ nhazi ma ọ bụ tinyegharịa GRUB kpamkpam ma ọ bụrụ na ọ dị mkpa:

# ls (hd0,msdos1)/

Dịka anyị nwere ike ịhụ na mpaghara ahụ akọwapụtara, anyị hụrụ ndekọ ndekọ grub2 na nkebi a:

Ozugbo anyị ji n'aka na GRUB bi na (hd0, msdos1), ka anyị gwa GRUB ebe a ga-achọta faịlụ nhazi ya wee nye ya ntụziaka ka ọ gbalịa ịmalite menu ya:

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

Mgbe ahụ na menu GRUB, họrọ ntinye wee pịa Tinye ka iji ya buut. Ozugbo sistemụ agbagoro agbagoro, ị nwere ike ịnye iwu grub2-install/dev/sdX (jiri ngwaọrụ ịchọrọ ịwụnye GRUB na sdX). A ga-emelite ozi buut ma weghachi faịlụ niile metụtara ya.

# grub2-install /dev/sdX

A na-edekọ ọnọdụ ndị ọzọ dị mgbagwoju anya, yana ndozi ha tụrụ aro, na Ubuntu GRUB2 ntuziaka nchọpụta nsogbu. Echiche ndị akọwara ebe ahụ dịkwa mma maka nkesa ndị ọzọ.

Nchịkọta

N'ime edemede a, anyị ewebatala gị na GRUB, gosiputara ebe ị nwere ike ịhụ akwụkwọ ma n'ịntanetị na n'ịntanetị, wee kọwaa otu esi abịaru nso na ọnọdụ ebe sistemụ kwụsịrị ịgbatị nke ọma n'ihi okwu metụtara bootloader.

Ọ dabara nke ọma, GRUB bụ otu n'ime ngwaọrụ ndị edekọtara nke ọma na ị nwere ike ịchọta enyemaka ngwa ngwa na docs arụnyere ma ọ bụ n'ịntanetị site na iji akụrụngwa anyị kesara n'isiokwu a.

Ị nwere ajụjụ ma ọ bụ kwuo? Egbula ime ka anyị mara site na iji ụdị nkọwa n'okpuru. Anyị na-atụ anya ịnụ gị!