Cum să utilizați GRUB Rescue pentru a repara Linux

Publicat: 2023-05-14
Ecran de pornire Ubuntu Linux pe un laptop
Jordan Gloor / How-To Geek
Dacă shell-urile dvs. GRUB afișează un prompt „grub>”, puteți utiliza comenzile ls , set , linux și initrd pentru a vă repara sistemul Linux. Dacă în schimb vedeți un prompt „grub rescue>”, utilizați comenzile set , insmod , linux și initrd pentru a porni computerul.

Dacă computerul dvs. Linux nu poate porni în sistemul său de operare, este posibil să vă treziți uitându-vă la un prompt din shell-ul GRUB. Urmați acești pași pentru a repara procesele de pornire întrerupte.

Cuprins

Când încărcătorul dvs. de pornire nu pornește
Folosind GRUB Shell
Folosind GRUB Rescue Shell
Alte remedii posibile

Când încărcătorul dvs. de pornire nu pornește

Există foarte puține probleme de computer care fac inima să se scufunde la fel de adânc și rapid ca o eșec de pornire. Fără un sistem de operare funcțional, computerul tău nu este cu adevărat un computer.

Poate fi o problemă foarte opacă, fără o modalitate ușoară de a explora cauza principală. Fără acces la Linux, nu puteți utiliza niciunul dintre instrumentele și procesele obișnuite de diagnosticare pe care le-ați utiliza pentru a investiga problema. Și fără a determina care este problema, cum o puteți remedia?

Pe Linux, GRUB este software-ul care controlează procesul de pornire. Dacă aveți mai multe sisteme de operare instalate, vă permite să-l alegeți pe cel în care doriți să porniți.

GRUB este controlat de configurația sa. Se bazează și pe alte fișiere de suport, pentru a-și îndeplini funcțiile. Dacă oricare dintre acestea lipsește sau devine corupt, GRUB nu va funcționa. Modificările aduse hard disk-urilor și partițiilor computerului dvs. trebuie să fie reflectate în configurația GRUB. Dacă nu este cazul, instrucțiunile GRUB nu vor avea sens și procesul de pornire nu va funcționa.

Cum să inscripționați un fișier ISO pe o unitate USB în Linux
LEGATE Cum să inscripționați un fișier ISO pe o unitate USB în Linux

Ca o notă secundară, ceea ce numim cu toții GRUB este de fapt GRUB 2. Aceasta este o versiune avansată a GRUB care a fost lansată în 2012. Printre alte modificări, a schimbat modul în care a fost creat fișierul „grub.cfg” și vă permite pornire de pe un mediu amovibil.

Dacă GRUB nu poate încărca un sistem de operare, veți fi lăsat să vă uitați la un prompt din shell-ul GRUB. Acesta este un mediu minimalist care vă va permite să efectuați o mână de acțiuni. Făcuți corect, totuși, acești pași vă pot reactiva computerul.

Există două shell-uri GRUB diferite. În funcție de cauza principală a problemei, s-ar putea să vă găsiți la un prompt de shell GRUB:

 grub>

sau la un prompt de shell de salvare GRUB:

 salvare grub>

shell-ul de salvare GRUB este chiar mai restrâns decât shell-ul GRUB, dar încă are suficientă putere pentru a porni computerul. Odată ce computerul a pornit, sunteți într-o poziție mult mai bună pentru a vindeca cauza principală.

Folosind GRUB Shell

Shell-ul GRUB este o interfață de linie de comandă care vă permite să utilizați un mic subset de comenzi Linux. Dacă vă aflați aici și nu pe ecranul de conectare obișnuit, înseamnă că procesul de pornire este încurcat.

Promptul shell-ului GRUB

Comenzile la care aveți acces nu sunt aceleași cu versiunile obișnuite de Linux. De exemplu, comanda GRUB shell ls nu este comanda Bash ls . Are foarte puține în comun cu ea. Putem vedea acest lucru utilizând opțiunea --help .

 ls --ajutor 

Folosind opțiunea --help cu versiunea shell GRUB a ls

Enumeră doar cinci opțiuni. Este departe de zecile de opțiuni acceptate de ls în Bash. Cu toate acestea, chiar și cu paleta noastră oarecum dezactivată de comenzi, putem încă remedia situația.

La prompt, tastați ls și apăsați „Enter”.

 ls 

Ieșirea din versiunea shell GRUB a ls, care arată unitățile și partițiile

Pe acest computer, listează trei elemente.

  • (hd0) este primul hard disk.
  • (hd0,gpt1) este prima partiție de pe primul hard disk.
  • (hd0,gpt2) este a doua partiție de pe primul hard disk.

Eticheta „gpt” reprezintă tabelul de partiții GUID. Trebuie să includem parantezele „ () ” când facem referire la o partiție, dar putem omite eticheta.

Pentru a analiza partițiile pe rând, vom folosi ls .

 ls (hd0,1)
 ls (hd0,2) 

Folosind versiunea shell GRUB a ls pentru a identifica partiția Linux

Am descoperit că a doua partiție are un sistem de fișiere Linux pe ea. Vom investiga puțin mai departe, uitându-ne la directorul rădăcină al acelei partiții.

 ls (hd0,2)/ 

Folosind versiunea shell GRUB a ls pentru a examina o anumită partiție

În mod clar, aceasta este partiția Linux, cu directorul de boot pe ea. Aici sunt stocate fișierele GRUB, imaginile de boot Linux și alte fișiere de boot.

Pe acest computer, va trebui să facem referință la partiția (hd0,2) când lansăm comenzile. Pe computerul dvs. veți folosi orice partiție pe care vă aflați instalarea Linux.

Putem folosi comanda cat pentru a căuta fișiere text, adăugând calea directorului și numele fișierului la numele partiției, astfel:

 cat (hd0,2)/etc/issue 

Privind versiunea de Linux folosind comanda cat din shell-ul GRUB

În cazul instalărilor cu pornire multiplă, aceasta este o modalitate utilă de a verifica că sunteți pe partiția potrivită. Este, de asemenea, grozav pentru a căuta în interiorul fișierelor de configurare.

Aici, folosim comanda ls cu opțiunile -l (lung) și -h (dimensiuni care pot fi citite de oameni) pentru a lista fișierele din directorul „/boot”.

 ls -lh (hd0,2)/boot 

Listarea fișierelor din directorul /boot folosind versiunea GURB a ls

Pentru a porni acest computer, trebuie să îi spunem lui GRUB că partiția Linux nou descoperită deține fișierele de boot.

 set root=(hd0,2)

Trebuie să specificăm din ce nucleu Linux să pornim. Facem asta cu comanda linux . Rețineți că trebuie să furnizăm și directorul rădăcină folosind schema obișnuită de denumire a partițiilor și a hard disk-ului Linux.

 linux /boot/vmlinuz-6.2.0-20-generic root=/dev/sda2

Pe computerul nostru exemplu, folosim (hd0) care este primul hard disk. Aceasta se numește sda ​​în nomenclatura obișnuită Linux. Am descoperit că a doua partiție este partiția Linux, așa că trebuie să specificăm sda2 .

Aparatul dvs. poate fi diferit. De exemplu, dacă partiția dvs. Linux este raportată ca (hd2,1) , aceasta înseamnă partiția unu pe al treilea hard disk sau sdc1 .

De asemenea, trebuie să specificăm ce imagine de sistem de fișiere bazată pe RAM să folosim atunci când computerul pornește. Aceasta trebuie să folosească aceeași componentă numerică ca și kernel-ul Linux pe care îl folosim.

 initrd /boot/initrd.img-6.2.0-20-generic 

Setarea parametrilor de boot în shell-ul GRUB

Acum, pentru a porni sistemul nostru, tastați „boot” și apăsați „Enter”.

Acest lucru ar trebui să pornească computerul în Linux. Acest lucru ne-a făcut să rulăm din nou, dar trebuie totuși să reparăm GRUB, așa că nu trebuie să facem acest lucru de fiecare dată când pornim computerul.

Vom rula update-grub . Aceasta va scana sistemul nostru, va identifica sistemele de operare și va crea o nouă configurare GRUB. Trebuie să rulăm asta ca utilizator root.

 sudo update-grub 

Se rulează update-grub pentru a reconstrui fișierul grub.cfg

Rareori, s-ar putea să fie nevoie să reinstalați și bootloader-ul GRUB, folosind grub-install .

 sudo grub-install /dev/sda

Rețineți că nu trebuie să specificați pe ce partiție să instalați, ci doar pe ce unitate. În instalările normale, este aceeași unitate pe care este Linux-ul tău.

Dovada budincii vine cu următoarea repornire. Computerul ar trebui să repornească normal.

LEGATE: Cum se configurează setările încărcării de încărcare GRUB2

Folosind GRUB Rescue Shell

În funcție de natura problemei de boot, este posibil să nu fiți aruncat în shell-ul GRUB. Este posibil să fiți lăsat în modul de salvare GRUB. Dacă acesta este cazul, solicitarea dvs. va arăta astfel:

 salvare grub>

Comenzile pe care trebuie să le emitem în acest shell sunt diferite. Trebuie să folosim ls pentru a găsi partiția Linux, la fel ca și cum ați folosi shell-ul GRUB. După ce ați identificat partiția Linux, puteți continua și introduceți aceste comenzi.

Nu uitați să utilizați identificatorii de unitate și numerele de versiune a nucleului care sunt corecte pentru computerul dvs. Comanda insmod încarcă modulele kernelului.

 set prefix=(hd0,2)/boot/grub
 set root=(hd0,2)
 insmod normal
 insmod linux
 linux /boot/vmlinuz-6.2.0-20-generic root=/dev/sda2
 initrd /boot/initrd.img-6.2.0-20-generic 

Setarea parametrilor de boot în shell-ul de salvare GRUB

Puteți apoi să tastați „boot” și să apăsați „Enter” pentru a reporni computerul. Odată ce a repornit și v-ați autentificat, actualizați GRUB cu comanda update-grub .

Alte remedii posibile

Dacă problema se dovedește a fi fișiere de pornire lipsă, cum ar fi fișierele „vmlinuz” și „initrd.img”, puteți porni computerul de pe un DVD Live sau de pe o unitate flash USB Linux bootabilă și să copiați fișierele lipsă la locul lor.

Rețineți că fișierele „vmlinuz” și „initrd.img” trebuie să aibă aceleași numere de versiune în ele, deoarece funcționează ca o pereche potrivită.

LEGATE: Cum să creați un USB Live Linux bootabil pe Mac