LFCS: Giunsa Pag-configure ug Pag-troubleshoot ang Grand Unified Bootloader (GRUB) - Bahin 13


Tungod sa bag-o nga mga pagbag-o sa mga katuyoan sa eksaminasyon sa sertipikasyon sa LFCS nga epektibo gikan sa Pebrero 2, 2016, gidugang namon ang kinahanglan nga mga hilisgutan sa serye sa LFCE usab.

Niini nga artikulo ipaila namo kanimo ang GRUB ug ipatin-aw kung nganong gikinahanglan ang usa ka boot loader, ug giunsa kini pagdugang sa versatility sa sistema.

Ang proseso sa pag-boot sa Linux gikan sa imong pagpindot sa power button sa imong computer hangtod nga makakuha ka og fully-functional system nga nagsunod niining taas nga level sequence:

  1. 1. Usa ka proseso nga nailhan nga POST (Power-On Self Test) nagpahigayon og kinatibuk-ang pagsusi sa mga sangkap sa hardware sa imong computer.
  2. 2. Kung makompleto ang POST, gipasa niini ang kontrol sa boot loader, nga sa baylo nagkarga sa Linux kernel sa memorya (uban sa initramfs) ug gipatuman kini. Ang labing gigamit nga boot loader sa Linux mao ang GRand Unified Boot loader, o GRUB sa mubo.
  3. 3. Gisusi ug gi-access sa kernel ang hardware, ug dayon gipadagan ang inisyal nga proseso (kasagaran nailhan sa generic nga ngalan nga \init) nga nagkompleto sa boot sa system pinaagi sa pagsugod sa mga serbisyo.

Sa Bahin 7 niini nga serye (\mga sistema sa pagdumala sa serbisyo ug mga himan nga gigamit sa modernong mga distribusyon sa Linux. Mahimo nimong susihon ang maong artikulo sa dili pa mopadayon.

Gipaila ang GRUB Boot Loader

Duha ka dagkong bersyon sa GRUB (v1 usahay gitawag nga GRUB Legacy ug v2) makit-an sa modernong mga sistema, bisan kung kadaghanan sa mga distribusyon naggamit sa v2 nga default sa ilang labing bag-ong mga bersyon. Ang Red Hat Enterprise Linux 6 lamang ug ang mga derivatives niini naggamit gihapon sa v1 karon.

Busa, mag-una kami sa pagtutok sa mga bahin sa v2 niini nga giya.

Bisan unsa pa ang bersyon sa GRUB, ang usa ka boot loader nagtugot sa tiggamit sa:

  1. 1). usba ang paagi sa paglihok sa sistema pinaagi sa pagpiho sa lainlaing mga kernel nga gamiton,
  2. 2). pagpili tali sa mga alternatibong operating system nga i-boot, ug
  3. 3). pagdugang o pag-edit sa mga stanza sa pag-configure aron usbon ang mga kapilian sa boot, ug uban pang mga butang.

Karon, ang GRUB gipadayon sa proyekto sa GNU ug maayo nga dokumentado sa ilang website. Giawhag ka sa paggamit sa opisyal nga dokumentasyon sa GNU samtang nagbasa niini nga giya.

Sa diha nga ang sistema nag-boots ikaw gipresentar sa mosunod nga GRUB screen sa main console. Sa sinugdan, giaghat ka sa pagpili tali sa mga alternatibong kernels (sa default, ang sistema mag-boot gamit ang pinakabag-o nga kernel) ug gitugotan nga mosulod sa GRUB command line (uban ang c) o i-edit ang mga opsyon sa boot (sa pagpindot sa e key).

Usa sa mga hinungdan ngano nga imong hunahunaon ang pag-boot gamit ang usa ka tigulang nga kernel mao ang usa ka hardware nga aparato nga nagtrabaho sa husto ug nagsugod sa \paglihok pagkahuman sa usa ka pag-upgrade (tan-awa kini nga link sa mga forum sa AskUbuntu alang sa usa ka pananglitan).

Ang GRUB v2 configuration gibasa sa boot gikan sa /boot/grub/grub.cfg o /boot/grub2/grub.cfg, samtang /boot/grub/ grub.conf o /boot/grub/menu.lst gigamit sa v1. Kini nga mga file DILI i-edit pinaagi sa kamot, apan giusab base sa sulod sa /etc/default/grub ug sa mga file nga makita sulod sa /etc/grub.d.

Sa usa ka CentOS 7, ania ang configuration file nga gihimo sa dihang ang sistema unang na-install:

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"

Dugang pa sa online nga dokumentasyon, mahimo usab nimo pangitaon ang GNU GRUB nga manwal gamit ang impormasyon sama sa mosunod:

# info grub

Kung interesado ka ilabi na sa mga opsyon nga anaa alang sa /etc/default/grub, mahimo nimong gamiton ang seksyon sa configuration direkta:

# info -f grub -n 'Simple configuration'

Gamit ang sugo sa ibabaw imong mahibal-an nga ang GRUB_TIMEOUT nagtakda sa oras tali sa higayon kung kanus-a makita ang inisyal nga screen ug magsugod ang awtomatikong pag-boot sa sistema gawas kung mabalda sa tiggamit. Kung kini nga variable gibutang sa -1, ang pag-boot dili magsugod hangtod ang tiggamit makahimo usa ka pagpili.

Kung daghang operating system o kernels ang na-install sa parehas nga makina, GRUB_DEFAULT nanginahanglan usa ka integer nga kantidad nga nagpaila kung unsang OS o kernel entry sa GRUB inisyal nga screen ang kinahanglan pilion aron ma-boot pinaagi sa default. Ang lista sa mga entry mahimong tan-awon dili lamang sa splash screen nga gipakita sa ibabaw, apan gamit usab ang mosunod nga sugo:

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

Sa panig-ingnan nga gipakita sa ubos nga hulagway, kung gusto namong mag-boot gamit ang kernel nga bersyon 3.10.0-123.el7.x86_64 (ika-upat nga entry), kinahanglan natong ibutang ang GRUB_DEFAULT ngadto sa 3 (ang mga entry kay internally numbered sugod sa zero) sama sa mosunod:

GRUB_DEFAULT=3

Usa ka katapusang GRUB configuration variable nga adunay espesyal nga interes mao ang GRUB_CMDLINE_LINUX, nga gigamit sa pagpasa sa mga opsyon ngadto sa kernel. Ang mga kapilian nga mahimong ipasa pinaagi sa GRUB ngadto sa kernel maayo nga dokumentado sa man 7 bootparam.

Ang mga kapilian karon sa akong CentOS 7 server mao ang:

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"

Ngano nga gusto nimo usbon ang default nga mga parameter sa kernel o ipasa ang dugang nga mga kapilian? Sa yano nga mga termino, mahimo’g adunay mga higayon nga kinahanglan nimo isulti sa kernel ang pipila nga mga parameter sa hardware nga mahimo’g dili kini mahibal-an sa kaugalingon, o i-override ang mga kantidad nga makit-an niini.

Nahitabo kini kanako dili pa lang dugay sa dihang gisulayan nako ang Vector Linux, usa ka gigikanan sa Slackware, sa akong 10 ka tuig nga laptop. Pagkahuman sa pag-instalar wala kini makit-an ang husto nga mga setting alang sa akong video card mao nga kinahanglan nako nga usbon ang mga kapilian sa kernel nga gipasa sa GRUB aron mahimo kini.

Ang laing pananglitan mao kung kinahanglan nimo nga dad-on ang sistema sa single-user mode aron mahimo ang mga buluhaton sa pagmentinar. Mahimo nimo kini pinaagi sa pagdugang sa pulong nga single sa GRUB_CMDLINE_LINUX ug pag-reboot:

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"

Human sa pag-edit sa /etc/defalt/grub, kinahanglan nimong ipadagan ang update-grub (Ubuntu) o grub2-mkconfig -o /boot/grub2/grub. cfg (CentOS ug openSUSE) pagkahuman aron ma-update ang grub.cfg (kon dili, ang mga pagbag-o mawala sa boot).

Kini nga command magproseso sa boot configuration files nga gihisgotan sa sayo pa aron ma-update ang grub.cfg. Kini nga pamaagi nagsiguro nga ang mga pagbag-o permanente, samtang ang mga kapilian nga gipasa sa GRUB sa oras sa pag-boot molungtad lamang sa karon nga sesyon.

Pag-ayo sa Mga Isyu sa Linux GRUB

Kung nag-install ka usa ka ikaduha nga operating system o kung ang imong GRUB configuration file nadaot tungod sa sayup sa tawo, adunay mga paagi nga mapabalik nimo ang imong sistema ug maka-boot pag-usab.

Sa inisyal nga screen, pindota ang c aron makakuha og GRUB command line (hinumdomi nga mahimo usab nimo i-press ang e aron ma-edit ang default nga mga opsyon sa boot), ug gamita ang tabang sa pagdala sa anaa. mga sugo sa GRUB prompt:

Magpokus kami sa ls, nga maglista sa mga na-install nga mga aparato ug mga filesystem, ug among susihon kung unsa ang makit-an niini. Sa hulagway sa ubos atong makita nga adunay 4 ka hard drive (hd0 pinaagi sa hd3).

Ang hd0 ra ang daw gibahin (ingon sa ebidensya sa msdos1 ug msdos2, diin ang 1 ug 2 mao ang partition number ug ang msdos mao ang partitioning scheme).

Atong susihon karon ang unang partition sa hd0 (msdos1) aron makita kung makit-an ba nato ang GRUB didto. Kini nga pamaagi magtugot kanamo sa pag-boot sa Linux ug didto mogamit sa uban pang taas nga lebel nga mga himan aron ayohon ang configuration file o i-install pag-usab ang GRUB kung gikinahanglan:

# ls (hd0,msdos1)/

Sama sa among nakita sa gipasiugda nga lugar, among nakit-an ang grub2 nga direktoryo sa kini nga partisyon:

Sa higayon nga kami sigurado nga ang GRUB nagpuyo sa (hd0, msdos1), atong sultihan ang GRUB kung asa makit-an ang configuration file ug dayon itudlo kini sa pagsulay sa paglansad sa menu niini:

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

Unya sa GRUB menu, pagpili og usa ka entry ug pindota ang Enter aron ma-boot gamit kini. Sa dihang na-boot na ang sistema mahimo nimong i-issue ang grub2-install /dev/sdX command (ilisan ang sdX gamit ang device nga gusto nimong i-install ang GRUB). Ang impormasyon sa boot unya ma-update ug ang tanang may kalabutan nga mga file mapasig-uli.

# grub2-install /dev/sdX

Ang uban nga mas komplikado nga mga senaryo gidokumento, uban sa ilang gisugyot nga mga pag-ayo, sa Ubuntu GRUB2 Troubleshooting guide. Ang mga konsepto nga gipatin-aw nga adunay balido alang sa ubang mga pag-apod-apod usab.

Summary

Niini nga artikulo gipaila-ila ka namo sa GRUB, nga gipakita kung asa nimo makit-an ang dokumentasyon sa online ug offline, ug gipatin-aw kung giunsa ang pagduol sa usa ka senaryo diin ang usa ka sistema mihunong sa pag-boot sa husto tungod sa usa ka isyu nga may kalabutan sa bootloader.

Maayo na lang, ang GRUB usa sa mga himan nga labing maayo nga dokumentado ug dali ka makapangita tabang bisan sa na-install nga mga dokumento o online gamit ang mga kapanguhaan nga among gipaambit sa kini nga artikulo.

Aduna ka bay mga pangutana o komento? Ayaw pagpanuko sa pagpahibalo kanamo gamit ang comment form sa ubos. Kami nagpaabut nga makadungog gikan kanimo!