Cum să remediați boot-urile Linux în eroarea BIOS

Publicat: 2022-09-28
Laptop pe un fundal albastru care arată un prompt de comandă Linux.
fatmawati achmad zaenuri/Shutterstock.com

Se știe că actualizările GRUB au ca rezultat pornirea computerelor Linux în setările BIOS sau UEFI. Remedierea pentru aceasta profită de un truc util de recuperare a sistemului despre care ar trebui să știți.

Un studiu de caz: GRUB 2:2.06.r322

O actualizare de sistem pentru distribuțiile Linux bazate pe Arch și Arch în vara anului 2022 a inclus o nouă versiune de GRUB. GRUB înseamnă gr și u nified bootloader.

Un bootloader este o aplicație care pornește procesul de pornire atunci când computerul este pornit. Mai multe instrumente software și utilitare trebuie lansate — din partiția potrivită și în ordinea corectă — pentru a avea ca rezultat un sistem de operare operațional și accesibil. GRUB dă startul acestei cascade de evenimente.

Dacă aveți mai multe sisteme de operare instalate pe computer, GRUB oferă un meniu pentru a putea selecta ce sistem de operare să utilizați. Una dintre modificările de cod la GRUB 2:2.06.r322 a adăugat suport pentru o nouă opțiune GRUB, --is-supported . Opțiunea este utilizată pentru a indica dacă este prezentă sau nu o capacitate de pornire a firmware-ului. Dacă este, GRUB adaugă o intrare în meniul de pornire pentru a vă permite să porniți în setările EUFI.

Noua opțiune a fost menționată într-un script numit „30_uefi-firmware.in”. Diferența pentru acest fișier arată că o instrucțiune if a fost eliminată și au fost adăugate două linii.

Una dintre noile linii a fost o declarație if de înlocuire. Cealaltă linie nouă conține fwsetup --is-supported . „fw” din „fwsetup” înseamnă firmware. Dar pentru că acea linie este deasupra instrucțiunii new if , va rula întotdeauna. Dacă ar fi fost în corpul instrucțiunii if , ar rula numai atunci când testul din instrucțiunea if se rezolvă la adevărat.

Ce este UEFI și prin ce diferă de BIOS?
RELATE Ce este UEFI și prin ce diferă de BIOS?

Acest lucru a cauzat probleme pe multe computere UEFI, dar nu pe toate. Depindea dacă versiunea de GRUB pe care o instalați deja suporta această comandă. Mașinile afectate ar face unul din două lucruri. Fie ar intra într-o buclă de pornire în care procesul de pornire nu a fost niciodată finalizat, ci repornit continuu, fie computerul ar porni direct în setările firmware-ului UEFI. Oricum, nu a existat nicio modalitate de a forța computerul să pornească în Linux.

Când te confrunți cu astfel de situații, există întotdeauna opțiunea nucleară de a face o reinstalare completă. Va funcționa, dar în funcție de modul în care a fost partiționat hard diskul, fără o copie de rezervă recentă, este posibil să pierdeți date.

Metoda cu impact redus folosește chroot și un Live USB sau Live CD/DVD. Aceasta este o tehnică bună pentru a înțelege și a avea mânecă pentru tot felul de defecțiuni ale sistemului atunci când nu vă puteți porni sau nu vă puteți conecta la computerul Linux.

Tehnica pe care o vom folosi

Pentru a utiliza această tehnică, trebuie să aveți fie un USB bootabil, fie un CD/DVD cu o distribuție Linux pe el, care pornește într-o instanță Linux live. De obicei, acestea se numesc Live USB sau Live CD/DVD. Toate distribuțiile majore acceptă această funcție.

Cum să creați o unitate USB Live Ubuntu cu stocare persistentă
LEGATE Cum să creați o unitate USB Live Ubuntu cu stocare persistentă

Nu vom instala nimic, așa că media live nu trebuie să fie aceeași distribuție pe care ați instalat-o pe computer. Puteți folosi un USB Ubuntu pentru a repara un computer EndeavourOS, de exemplu. Dacă nu aveți acces la niciun media live, va trebui să utilizați un alt computer pentru a descărca o imagine și a o scrie pe un stick de memorie USB sau pe un CD/DVD.

Când porniți de pe suportul media live, veți putea să montați și să accesați sistemul dvs. de fișiere existent. Sistemul dvs. de fișiere instalat va apărea ca parte a sistemului de fișiere al Linux care a fost pornit de pe suportul live. Grozav. Dacă îl putem accesa, avem șansa să-l reparăm. Dar ridică o problemă.

Cum să utilizați comanda chroot pe Linux
LEGATE Cum să utilizați comanda chroot pe Linux

Rădăcina acestui sistem de fișiere hibrid este rădăcina sistemului de fișiere media live, nu rădăcina sistemului de fișiere instalat. Pentru ca căile de fișiere configurate în sistemul dvs. Linux să facă referire la locațiile țintă corecte ale acestora - undeva în interiorul sistemului dvs. de fișiere, și nu undeva în raport cu rădăcina Linux-ului live - trebuie să folosim chroot pentru a seta o nouă rădăcină care indică rădăcina lui. sistemul de fișiere instalat . Cu alte cuvinte, căile care încep cu „/” vor folosi rădăcina sistemului de fișiere ca punct de plecare.

Calculatorul de testare pe care l-am folosit pentru aceasta folosește sistemul de fișiere ext4 , dar puteți utiliza această tehnică și pe alte sisteme de fișiere. Trebuie doar să identificați ce partiții sau volume trebuie să montați și unde să le montați. Principiile sunt aceleași.

Punerea în practică

Am creat o unitate USB bootabilă și am pornit computerul afectat de pe ea. Distribuția pe care am folosit-o a fost EndeavourOS. Media live EndeavourOS pornește în mediul desktop XFCE 4.

Media live EndeavourOS a pornit în mediul desktop XFCE

Pentru a identifica ce partiții dețin rădăcina sistemului de fișiere și care este partiția de boot, deschideți o fereastră de terminal și utilizați comanda fdisk . Folosim opțiunea -l (partiție listă). Va trebui să utilizați și sudo .

 sudo fdisk -l 

Folosind comanda sudo fdisk -l pentru a lista partițiile și dispozitivele

Derulați prin rezultat până când vedeți intrările etichetate „EFI System” și „Linux filesystem”.

Ieșirea din comanda sudo fdisk -l cu partițiile de boot și rădăcină evidențiate

Pe acest computer, ambele sunt pe hard diskul sda . Sunt în partițiile unu și doi, așa cum este indicat de etichetele partițiilor /dev/sda1 și /dev/sda2 .

Pe computerul dvs., acestea pot fi pe diferite hard disk-uri și partiții. Aveți grijă să rețineți partițiile pe care se află, va trebui să le folosim în comenzile următoare.

Trebuie să montăm sistemele de fișiere pe aceste partiții atașându-le la sistemul de fișiere live. Comanda mount va face asta pentru noi. Amintiți-vă, etichetele partițiilor sunt probabil diferite, așa că asigurați-vă că le utilizați pe cele din rezultatele comenzii fdisk .

 sudo mount /dev/sda2 /mnt
 sudo mount /dev/sda1 /mnt/boot/efi 

Montarea sistemelor de fișiere de pornire și rădăcină a sistemului de fișiere

Pentru ca rădăcina efectivă a sistemului de fișiere să înceapă de la rădăcina sistemului de fișiere instalat, vom folosi chroot pentru a seta rădăcina să fie punctul de montare „/mnt”. Aici este grefată rădăcina sistemului de fișiere instalat pe sistemul de fișiere live.

 sudo chroot /mnt 

Folosind comanda chroot pentru a crea o nouă rădăcină eficientă

Rețineți că promptul de comandă se modifică pentru a arăta că acum sunteți conectat efectiv ca root și vă aflați în directorul rădăcină „/” al sistemului de fișiere al computerului dumneavoastră.

Putem testa cu ușurință acest lucru, schimbându-ne în directorul „/home” și verificând ce directoare există în el.

 cd /acasă
 ls 

Folosind ls pentru a lista conturile de utilizator

Ar trebui să vedeți un director pentru fiecare utilizator configurat pe computer, inclusiv unul pentru propriul cont de utilizator. Acest computer are un singur utilizator, numit „dave”. Dacă am fi folosit cd /home înainte de a folosi comanda chroot , am fi intrat în directorul „/home” al sistemului de fișiere live.

Pentru a fi clar, acum accesați sistemul dvs. de fișiere real ca utilizator root , așa că aveți grijă.

Pentru a remedia problema cu GRUB 2:2.06.r322, tot ce trebuia să facem a fost să rulăm comanda grub-install .

 grub-install 

Rularea comenzii grub-install pentru a remedia eroarea de boot GRUB la BIOS

Rularea grub-install orbește astfel nu este de obicei recomandată. În acest caz, este ceea ce era necesar.

Reparați sau înlocuiți

Dacă încercați să remediați o altă problemă, va trebui să verificați forumurile pentru distribuția dvs. pentru remedierea adecvată a problemei dvs. Dacă este o plângere larg răspândită, veți găsi în curând o soluție pentru aceasta.

Cel puțin, acum că vă puteți accesa sistemul de fișiere, puteți să vă copiați datele pe un mediu de stocare amovibil. Dacă decideți să faceți o reinstalare completă, nu veți pierde date.

RELATE: Cum să copiați fișiere folosind comanda „instalare” pe Linux