Cum să utilizați GRUB Rescue pentru a repara Linux
Publicat: 2023-05-14ls
, 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.
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.
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.
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
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
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)
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)/
Î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
Î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
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
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
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
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