Acasă
» LINUX
»
Cum se elimină intrările de boot GRUB defecte pe Linux
Cum se elimină intrările de boot GRUB defecte pe Linux
Pentru a elimina o intrare de boot GRUB defectă, identificați mai întâi ce a creat-o, apoi regenerați meniul GRUB din fișierele sale sursă. Pe Ubuntu și Debian, executați sudo update-grub; Fedora și Arch folosesc comenzi diferite. Nu ștergeți o linie direct din fișierul generat grub.cfg: o actualizare ulterioară o poate recrea, iar o editare în locul greșit poate îngreuna bootarea sistemului.
Identificați tipul de intrare de boot
Un meniu GRUB poate afișa kerneluri Linux, alte sisteme de operare detectate, intrări personalizate și o opțiune de configurare a firmware-ului. Ultimul element, adesea etichetat Setări firmware UEFI , nu este o intrare de sistem de operare defect. Nucleele și opțiunile de recuperare mai vechi sunt, de asemenea, diferite de o intrare pentru un sistem de operare neinstalat. Păstrați cel puțin un kernel cunoscut ca fiind funcțional și opțiunea sa de recuperare până când ați confirmat că sistemul pornește normal.
Verificați dacă eticheta nedorită este o intrare a sistemului de operare sau o opțiune separată de setări de firmware.
În mod normal, GRUB își construiește meniul din setări precum /etc/default/grubși scripturi din . Ieșirea generată este /etc/grub.d/cea principală . Manualul GNU GRUB descrie acest flux de configurare generat.grub.cfg
Regenerarea GRUB după eliminarea unui sistem de operare
Dacă tocmai ați dezinstalat un alt sistem de operare sau ați eliminat un pachet de kernel, reconstruiți mai întâi meniul. Deschideți un terminal în instalarea Linux al cărui meniu GRUB îl utilizați, apoi executați comanda pentru distribuția respectivă:
Distribuție
Regenerați meniul
Ubuntu sau Debian
sudo update-grub
Fedora (versiuni curente)
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Arch Linux
sudo grub-mkconfig -o /boot/grub/grub.cfg
Ubuntu și Debian documentează update-grubca un helper care rulează grub-mkconfigpentru a scrie fișierul de meniu. Fedora 34 și versiunile ulterioare o folosesc /boot/grub2/grub.cfgca configurație principală; evitați scrierea peste micul fișier pointer UEFI de la /boot/efi/EFI/fedora/grub.cfg. Arch documentează /boot/grub/grub.cfgcalea de ieșire. Pentru o altă distribuție, urmați documentația GRUB actuală și utilizați calea de ieșire configurată.
Mesajele exacte de scanare și stare variază în funcție de sistem; această comandă reconstruiește meniul generat pe Ubuntu și Debian.În versiunile actuale de Fedora, scrieți configurația generată în /boot/grub2/grub.cfg.Arch Linux folosește grub-mkconfigcalea /boot/grub/grub.cfgde ieșire.
Verificați ieșirea comenzii pentru erori și referințe la sistemul de operare pe care l-ați eliminat. Reporniți numai după ce comanda se termină cu succes. Dacă intrarea nedorită a dispărut, nu este necesară editarea manuală a meniului.
Dacă intrarea revine
Opriți detectarea automată numai dacă nu aveți nevoie de ea
GRUB poate fi utilizat os-proberpentru a găsi alte sisteme de operare și a le adăuga în meniul său. Dacă găsește în mod repetat o instalare învechită, verificați dacă o altă partiție conectată sau montată nu prezintă încă acea instalare. Dacă nu doriți ca GRUB să listezeze alte sisteme de operare detectate, faceți o copie de rezervă /etc/default/grub, apoi setați această opțiune în fișierul respectiv:
Această setare dezactivează descoperirea automată a altor sisteme de operare, așa că folosiți-o numai dacă nu mai doriți acele intrări.
GRUB_DISABLE_OS_PROBER=true
Salvați fișierul și regenerați GRUB cu comanda pentru distribuția dvs. de mai sus. Această setare elimină toate sistemele neactuale detectate automat din meniu, inclusiv o instalare Windows pe care este posibil să o utilizați în continuare. Dacă aveți nevoie de dual boot, lăsați activată detectarea sistemului de operare și corectați partiția sau sursa de detectare învechită. Ghidul Arch Linux GRUB explică modul în care os-proberpartițiile montate afectează intrările generate.
Eliminați o intrare adăugată manual
O intrare personalizată poate fi stocată într- /etc/grub.d/40_customun fișier sursă, cum ar fi /boot/grub/custom.cfg. Inspectați acele fișiere pentru menuentryblocul învechit. Eliminați doar acel bloc; dacă editați 40_custom, păstrați antetul existent și liniile de script executabil. Apoi regenerați configurația principală. Ghidul Arch documentează ambele locații ale intrărilor personalizate.
Intrările adăugate manual aparțin fișierului lor sursă, cum ar fi 40_custom, și nu în fișierul generat grub.cfg.
Pentru a inspecta meniul generat fără a-l modifica, căutați liniile de intrare din meniu. Ajustați calea pentru distribuția dvs.; fișierul principal al Fedora este în format /boot/grub2/.
Această verificare doar în citire poate ajuta la potrivirea unei etichete de meniu afișate cu configurația generată. Nu elimină intrări.
grep -n 'menuentry' /boot/grub/grub.cfg
Pentru o intrare în kernel învechită
Intrările în kernel sunt de obicei create din kerneluri încă instalate pe sistem. Eliminați un kernel inutil prin intermediul managerului de pachete al distribuției dvs., nu prin ștergerea /bootmanuală a textului sau fișierelor din meniu. Păstrați kernelul care rulează și cel puțin o versiune de rezervă cunoscută ca fiind validă. Apoi regenerați GRUB și verificați din nou meniul.
Când intrarea se află în meniul de boot UEFI
Dacă eticheta apare în selectorul de bootare al firmware-ului computerului și nu în GRUB, este o înregistrare a managerului de bootare UEFI stocată separat de meniul GRUB. Puteți inspecta aceste înregistrări cu sudo efibootmgr -vpe un sistem Linux bootat cu UEFI:
Înregistrările firmware-ului UEFI sunt separate de intrările din meniul de pe ecran al GRUB.
Manualul efibootmgr documentează că instrumentul poate șterge înregistrările de boot UEFI. Nu eliminați o intrare doar pentru că eticheta sa pare necunoscută: identificați mai întâi încărcătorul acesteia și confirmați că nu este calea de boot Linux curentă sau singura funcțională. Dacă confirmați o anumită înregistrare învechită, formularul de ștergere din manual este sudo efibootmgr -b XXXX -B, înlocuind-o XXXXcu numărul de boot hexazecimal exact. Această comandă modifică datele firmware-ului; nu editează meniul GRUB.
Verificați rezultatul
După reconstruirea meniului sau eliminarea unei intrări sursă personalizată, reporniți și confirmați că sistemul Linux dorit pornește. Dacă intrarea sistemului de operare învechit reapare, reveniți la sursa sa: detectarea sistemului de operare, un fișier de meniu personalizat, un pachet kernel instalat sau o înregistrare separată de firmware UEFI. Evitați editarea directă a configurației generate; remedierea sursei și regenerarea acesteia reprezintă repararea durabilă.