Kako popraviti GRUB korak po korak u GNU/Linuxu

Posljednje ažuriranje: 10/02/2026
Autor: Isaac
  • GRUB obično oštećuju promjene particija, instalacije drugih sistema ili greške pri ažuriranju, ali se gotovo uvijek može oporaviti.
  • Moguće je ručno pokrenuti sistem iz GRUB konzole, pronaći ispravnu particiju i ponovo instalirati bootloader iz samog sistema.
  • Sa Ubuntu Live USB-om možete koristiti Boot-Repair ili ručni chroot za ponovnu instalaciju GRUB-a i regeneraciju njegove konfiguracije.
  • Čak i na šifriranim sistemima, ispravnim montiranjem particija i ponovnom instalacijom GRUB paketa, proces pokretanja se može vratiti u prvobitno stanje.

popravak grub-a u Linuxu

Kada se GRUB sruši i vaš GNU/Linux sistem se ne pokrene , osjećaj da ste izgubili mašinu je sasvim stvaran: crni ekran, čudne greške ili, još gore, direktan skok na BIOS/UEFI. Srećom, u većini slučajeva niste ništa izgubili; ono što je pokvareno je boot manager, a on se može oporaviti slijedeći nekoliko jednostavnih koraka. Ako trebate dijagnosticirati tajminge i uska grla, možete koristiti boot profiling pomoću systemd-analyze.

U ovom članku ćemo vidjeti, vrlo detaljno i koristeći najjasniji mogući jezikPokrit ćemo kako popraviti GRUB koristeći i njegovu komandnu liniju i razne metode s Live CD-ovima/USB-om, uključujući automatizirane alate poput Boot-Repaira i ručne procedure s chrootom. Također ćemo pregledati zašto GRUB često ne radi i šta učiniti kada nedostaju komande poput [commands missing]. update-grub ili čak grub-install.

Šta je GRUB i zašto može da se pokvari?

GRUB (GNU GRand Unified Bootloader) je upravitelj pokretanja koji koristi velika većina GNU/Linux distribucija . To je početni ekran na kojem birate koji operativni sistem želite pokrenuti kada ih imate instalirano više, ili gdje birate način rada za oporavak ili drugu kernel.

Ako je GRUB oštećen ili nestane s MBR ili EFI particije , računar se jednostavno neće moći pokrenuti i zaglavit će se na poruci o grešci, GRUB konzoli ili direktno u BIOS/UEFI postavkama. To ne znači da je sistem izgubljen; to jednostavno znači da mašina ne zna odakle da se pokrene.

Najčešći razlozi za kvar GRUB-a su obično sljedeći:

  • Instaliranje Windowsa nakon GNU/LinuxaWindows često prepisuje MBR ili EFI particiju vlastitim bootloaderom, brišući referencu na GRUB. Ako vam se to dogodi, možda će biti korisno slijediti određeni vodič na GRUB spašavanje u Windowsu 10.
  • Nepažljivo dodirivanje particija diskaPromjena veličine, brisanje ili premještanje particija može uzrokovati da putanja na kojoj GRUB očekuje da pronađe svoje datoteke više ne postoji ili da se promijeni njen broj. Da biste smanjili rizike, preporučljivo je naučiti kako... upravljajte particijama bez gubitka podataka.
  • Neka čudna nadogradnjaNije najčešća stvar, ali ažuriranje sistema ili samog GRUB-a može biti nepotpuno ili pogrešno konfigurirano i ostaviti pokretanje neupotrebljivim.
  • Promjene u postavkama UEFI/BIOS-a ili redoslijedu pokretanjaOnemogućavanje sigurnog pokretanja (Secure Boot), promjena načina pokretanja (Legacy/UEFI) ili modificiranje glavnog diska može uzrokovati gubitak GRUB unosa; ako ste u nedoumici, provjerite šta se događa ako dodirnete sigurno dizanje.

Dobra vijest je da u gotovo svim ovim slučajevima možete ponovo izgraditi GRUB i ponovo pokrenuti sistem bez ponovne instalacije cijelog sistema, bilo iz samog GRUB menija, iz moda spašavanja ili korištenjem Live USB-a.

Popravite GRUB iz vlastite komandne linije (bez Live USB-a)

Oporavak GRUB-a iz konzole

Ako kada uključite računar i dalje vidite GRUB meni ili barem GRUB konzolu , možete pokušati ručno pokrenuti sistem odatle, a zatim ponovo instalirati boot manager da biste sve vratili u prethodno stanje.

Pristupite GRUB meniju i zaustavite odbrojavanje

Čim se pojavi GRUB meni, pritisnite tipke sa strelicama gore ili dolje da biste zaustavili tajmer koji pokreće automatski proces pokretanja. Ako GRUB funkcioniše razumno dobro, ovo će vas ostaviti u meniju bez pokretanja sistema.

Ako je greška ozbiljnija i GRUB ne uspijeva prikazati svoj grafički meniMoguće je da će se konzola pojaviti direktno sa porukom poput grub> o grub rescue>U tom slučaju, radit ćemo odatle bez pregledavanja menija.

Da biste pristupili naprednoj komandnoj liniji GRUB-a iz menija , jednostavno pritisnite tipku 'c' . Ovo će vas odvesti do GRUB prompta gdje možete upisati komande koje ćemo sljedeće koristiti.

Lista diskova i particija pomoću GRUB-a

Prvi korak je saznati koje diskove i particije GRUB vidi . U GRUB konzolu upišite:

ls

Naredba ls GRUB prikazuje diskove kao (hd0), (hd1), Itd, a njegove particije kao (hd0,1), (hd0,msdos1), (hd0,gpt2) i slične kombinacije ovisno o tome da li je tabela particija MBR ili GPT.

Jednostavan primjer bi bio da se pojavljuje samo jedan disk: (hd0) sa particijama kao što su (hd0,msdos1) y (hd0,msdos5)Na mašinama sa više diskova, možete vidjeti nešto poput ovoga:

(hd0) (hd0,1) (hd1) (hd1,1) (hd1,5) (hd2) (hd2,1) (hd3) (hd3,1)

Svaki od tih elemenata je kandidat za hostovanje vašeg sistema i direktorija. /bootšto je ono što sada trebamo identificirati.

  Kompletan tutorijal o curenju memorije u Linuxu

Pronađite mapu /boot i GRUB direktorij

Sljedeći korak je pronaći na kojoj particiji je instaliran GNU/Linux. i, unutar njega, gdje se nalazi direktorij u koji GRUB obično pohranjuje svoje datoteke /boot/grub.

Da biste istražili svaku particiju, ponovo koristite ls ali s navođenjem diska i particijeuvijek završavajući kosom crtom na kraju:

ls (hd0,1)/

Imajte na umu da je raspored tastature u GRUB konzoli obično američki.Dakle, početne i zatvorene zagrade se obično nalaze na tipkama 9 i 0, a kosa crta / To može biti mjesto gdje obično ide crtica. - na španskoj tastaturi.

Ako vidite tipične GNU/Linux direktorije poput bin, etc, home, usr, ItdGledate sistemsku particiju. Unutar nje biste trebali pronaći direktorij boot:

ls (hd0,1)/boot/

Ako se datoteke poput ovih pojave u toj putanji vmlinuz-... e initrd.img-... i direktorij grubVeć ste locirali particiju kojoj trebamo reći GRUB-u gdje da traži kernel.

Definišite GRUB putanju i korenski direktorijum sistema

Nakon što je identificirana ispravna particija, GRUB-u je potrebno reći gdje se nalazi njen direktorij i koji je korijenski direktorij sistema.Pretpostavimo da je (hd0,1)U GRUB konzoli pokrenite:

set prefix=(hd0,1)/boot/grub

Na nekim tastaturama, tipka na kojoj se obično nalazi upitnik može proizvesti znak jednakosti. =Dakle, ako primijetite čudno ponašanje, isprobajte različite tipke dok se ne pojavi ispravan znak.

Zatim, postavite korijen datotečnog sistema koji će se koristiti za pokretanje :

set root=(hd0,1)

Pomoću ove dvije naredbe, GRUB sada zna gdje se nalazi njegova konfiguracija i koju particiju treba koristiti kao referencu za pokretanje.

Pogledajte dostupne kernele i ručno učitajte jedan

Sada je vrijeme da provjerimo koja jezgra imamo u /boot i učitajte jedan od njihMožete ga ponovo koristiti. ls da pogledam:

ls (hd0,1)/boot/

Trebali biste vidjeti jednu ili više datoteka s imenom sličnim vmlinuz-6.1.0-10-amd64, i njihove odgovarajuće initrd slike, na primjer initrd.img-6.1.0-10-amd64Ako trebate ručno kompajlirati ili instalirati kernele, pogledajte Kako preuzeti i kompajlirati Linux kernelOdaberite jedno od jezgara i učitajte ga sa:

linux /boot/vmlinuz-6.1.0-10-amd64 root=/dev/sda1

Put do korijenskog uređaja (root=/dev/sdXn) mora odgovarati particiji na kojoj se nalazi vaš sistemGRUB numerira diskove kao hd0, hd1itd., dok se u GNU/Linuxu pojavljuju kao /dev/sda, /dev/sdbitd. Tipična ekvivalencija je:

  • Hd0/ dev / sda
  • Hd1/ dev / sdb
  • Hd2/ dev / sdc
  • Hd3/ dev / sdd

Da biste olakšali kucanje dugih putanja i imena u GRUB konzoli, možete koristiti tipku TAB za automatsko dovršavanje imena datoteka i putanja direktorija.

Ne zaboravite učitati i odgovarajuću initrd sliku , nešto poput ovoga:

initrd /boot/initrd.img-6.1.0-10-amd64

Nakon što ste definirali kernel i initrd , sve što preostaje je pokrenuti proces pokretanja sistema sa:

boot

Ako sve prođe kako treba, sistem bi se trebao pokrenuti s odabranim kernelom . Ako naiđete na probleme, možete ponoviti postupak s drugim dostupnim kernelom, na primjer, starijim, dok se uspješno ne pokrene. Ako trebate proslijediti i privremene opcije kernelu, pogledajte kako dodati parametre pokretanja u GRUB.

Ponovo instalirajte GRUB sa već pokrenutog sistema

Nakon što se uspijete ponovo prijaviti na sistem, ključno je osigurati da je GRUB ispravno instaliran kako ne biste morali ponavljati ovaj ručni postupak svaki put kada ponovo pokrenete sistem.

Otvorite terminal s privilegijama superkorisnika (ili se prijavite kao root ili pomoću sudo) i pokrenite:

grub-install /dev/sda

Obavezno navedite samo cijeli disk, a ne određenu particiju., to jest, /dev/sda i ne /dev/sda1Također provjerite koji je vaš glavni tvrdi disk (/dev/sda, /dev/sdb, itd.) prije pokretanja naredbe.

Nakon toga, preporučljivo je potpuno regenerirati GRUB konfiguraciju i initramfs kako bi se detektirali svi sistemi i kerneli:

update-grub2
update-initramfs -u

Nakon ovoga, GRUB bi trebao biti potpuno operativan , sa ažuriranim menijem i spreman za naknadna ponovna pokretanja sistema.

Popravite GRUB pomoću Boot-Repair-a sa Ubuntu Live CD-a/USB-a

hrana za popravak čizama

Kada se sistem uopšte ne pokreće ili ako preferiramo automatsko rješenje , alat Boot-Repair je jedna od najpraktičnijih opcija. Radi prvenstveno iz živog Ubuntu (ili izvedenog) okruženja i ponovo instalira i rekonfiguriše GRUB gotovo bez intervencije korisnika.

Pripremite Live USB/CD

Prvi korak je kreiranje bootabilnog USB diska sa Ubuntuom u Live modu . Preuzmite Ubuntu ISO sliku sa službene web stranice i, na drugom računaru, kreirajte bootabilni USB disk:

  • Na Windowsu možete koristiti Rufus za snimanje ISO datoteke na USB disk.
  • U drugim GNU/Linux distribucijama možete koristiti alate poput Startup Disk Creator-a (uključeno u Ubuntu) ili dd vrlo pažljivo.

Kada imate USB ili CD spreman , povežite ga sa računarom sa neispravnim GRUB-om.

  Kako brzo dobiti svoju radnu istoriju u PDF formatu sa svog mobilnog telefona

Pokretanje sa Ubuntu Live USB/CD-a

Uključite ili ponovo pokrenite računar i uđite u meni za brzo pokretanje , koji je obično jedan od ovih tastera: F12, Esc, F2 ili F10 (u zavisnosti od proizvođača). Odatle odaberite USB disk ili CD disk kao uređaj za pokretanje. Ako trebate ažurirati BIOS zbog nekompatibilnosti, pogledajte kako ažurirati BIOS firmver.

Kada se pojavi Ubuntu meni, odaberite opciju za isprobavanje sistema bez instaliranja (nešto poput "Isprobajte Ubuntu bez instaliranja" / "Isprobajte Ubuntu"). Ovo će učitati Live okruženje iz memorije, bez dodirivanja ikakvih diskova.

Instalirajte Boot-Repair u Live okruženju

Kada se nađete na Live radnoj površini, otvorite terminal (obično iz menija aplikacija ili pomoću Ctrl+Alt+T ). Odatle ćete morati dodati Boot-Repair repozitorij i instalirati alat; postupak se s vremenom mijenja, ali uglavnom je nešto ovako:

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt update
sudo apt install boot-repair

Ovaj proces će preuzeti Boot-Repair i njegove zavisnosti . Trebat će vam internet veza, stoga prije početka provjerite ima li Live disk pristup mreži (žični ili Wi-Fi).

Pokrenite Boot-Repair i koristite preporučeni popravak

Kada je instalacija završena, pokrenite alat sa:

boot-repair

Otvorit će se grafički prozor koji će automatski analizirati diskove i instalirane sisteme . Vidjet ćete dvije glavne opcije: Preporučeno i Napredno. Za većinu korisnika, dovoljno je jednostavno kliknuti na opciju "Preporučena popravka".

Boot-Repair će ponovo instalirati GRUB, regenerirati njegovu konfiguraciju i prilagoditi unos za pokretanje na UEFI ili MBR , ovisno o tipu sistema. Tokom procesa, može prikazati poruke koje objašnjavaju njegov napredak i, u nekim slučajevima, tražiti potvrdu određenih koraka.

Kada je popravka završena, alat obično prikazuje izvještaj s rezultatima i link do zapisnika (osim ako ne odredite drugačije u postavkama). Ovaj zapisnik je koristan ako nešto pođe po zlu i trebate zatražiti pomoć na forumima ili u zajednicama.

Ponovo pokrenite računar i provjerite GRUB meni

Kada Boot-Repair završi svoj rad, zatvorite alat, isključite Live sistem i izvadite USB/CD . Zatim normalno uključite računar.

Ako je sve prošlo po planu, trebali biste ponovo vidjeti GRUB meni sa svim detektovanim sistemima: vašim glavnim GNU/Linux sistemom, svim drugim Linux distribucijama koje imate, mogućim Windows sistemima itd. Odaberite onaj koji želite i provjerite da li se pokreće bez problema.

Ako i dalje postoje greške, možete ponoviti proces popravke pokretanja , ali ovaj put pokušajte s naprednim postavkama: odaberite na koji disk želite instalirati GRUB, prisilite popravak datotečnog sistema, promijenite zadani sistem pokretanja ili prilagodite vrijeme čekanja menija.

Ručno popravljanje GRUB-a pomoću Ubuntu Live CD-a/USB-a (chroot)

Kada se ne želimo oslanjati na Boot-Repair ili nije dostupanGRUB sa Live USB-a možemo popraviti na ručniji način, koristeći klasični trik... chrootMontirajte sistemsku particiju i "uđite" u nju kao da smo je pokrenuli.

Identifikujte i montirajte GNU/Linux particiju

Pokrenite sistem sa Ubuntu Live USB/CD-a kao i prije, birajući opciju pokušaja bez instaliranja. Kada se nađete na radnoj površini, otvorite terminal.

Počnite tako što ćete navesti sistemske particije pomoću alata kao što je lsblk o fdisk:

sudo lsblk
sudo fdisk -l

Pronađite particiju na kojoj je instaliran vaš GNU/Linux sistem.Obično će biti nešto poput /dev/sda1, /dev/sda2, /dev/nvme0n1p2itd. Možete koristiti veličinu, tip (Linux datotečni sistem) ili tačku montiranja kao vodič ako ga je grafičko okruženje već automatski montiralo. Iskoristite ovu priliku da provjerite stanje diska i izvršite osnovno održavanje koristeći vodiče iz Održavanje tvrdog diska u Linuxu.

Kada to razjasnite, kreirajte tačku montiranja i montirajte korijensku particiju (pod pretpostavkom da jeste) /dev/sda1):

sudo mount /dev/sda1 /mnt

Ako imate particiju /boot odvojena ili nezavisna EFI particijaTakođer ćete ih morati montirati unutra /mnt Da bi chroot ispravno funkcionisao:

sudo mount /dev/sdaX /mnt/boot # si /boot está separado
sudo mount /dev/sdY /mnt/boot/efi # si hay partición EFI

Montirajte potrebne datotečne sisteme i koristite chroot

Prije upotrebe chroot Neke datotečne sisteme iz Live sistema potrebno je "ubrizgati" u montirano okruženje.korištenjem nosača tipa bind. Na primjer:

for i in /dev /dev/pts /proc /sys /run; do sudo mount --bind $i /mnt$i; done

Ako vidite poruku "sintaktička greška blizu do" prilikom pokretanja ove petlje , pažljivo provjerite da li ste ispravno upisali razmake, tačke i tačka-zareze. U slučaju sumnje, možete montirati svaki direktorij jedan po jedan:

sudo mount --bind /dev /mnt/dev
sudo mount --bind /dev/pts /mnt/dev/pts
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo mount --bind /run /mnt/run

Nakon što ste sve podesili, prijavite se na instalirani sistem sa:

  Kompletan vodič za kreiranje okruženja sa WSL2 + Docker + VS Code

sudo chroot /mnt

Od ovog trenutka nadalje, naredbe koje izvršavate će se ponašati kao da ste pokrenuli instalirani GNU/Linux sistem , a ne Live sistem. Ovo vam omogućava da ponovo instalirate GRUB i regenerišete njegovu konfiguraciju kao što biste to inače radili.

Ponovo instalirajte i konfigurirajte GRUB iz chroota

Unutar chroot okruženja, ponovna instalacija GRUB-a je jednostavna kao pokretanje (podešavanje glavnog diska prema vašem slučaju):

grub-install /dev/sda

Ako prilikom pokušaja dobijete poruku da grub-install ne postojiGRUB paket možda nije instaliran ili je oštećen. U tom slučaju, pokušajte ga ponovo instalirati:

apt update
apt install --reinstall grub-pc # para sistemas BIOS/MBR
apt install --reinstall grub-efi-amd64 # para sistemas UEFI x86_64

Nakon što je komanda grub-install biti dostupan i raditi, regenerira GRUB konfiguraciju. Ako nemate update-grubImajte na umu da je to u osnovi "prečica" do grub-mkconfigtako da ga možete direktno koristiti:

grub-mkconfig -o /boot/grub/grub.cfg

Ova naredba će analizirati sistem, detektovati kernele i druge instalirane operativne sisteme. i generirat će datoteku grub.cfg sa svim potrebnim unosima za pokretanje. Ako radite u UEFI-ju i nailazite na probleme vezane za Secure Boot, pogledajte vodič na Kršenje sigurnog pokretanja: uzroci i rješenja.

Izađite iz chroota, demontirajte i ponovo pokrenite računar

Kada završite s ponovnom instalacijom GRUB-a i regeneracijom konfiguracije , izađite iz chroota upisivanjem:

exit

Zatim, demontirajte datotečne sisteme koje ste montirali (obrnuti redoslijed je najčistiji):

sudo umount /mnt/run
sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/dev/pts
sudo umount /mnt/dev
sudo umount /mnt/boot/efi # si la montaste
sudo umount /mnt/boot # si la montaste
sudo umount /mnt

Sada možete ponovo pokrenuti računar, ukloniti USB/CD Live i pokušati normalno pokretanje . GRUB meni bi se trebao ponovo pojaviti i sistem bi trebao normalno funkcionirati.

Posebni slučajevi: šifrirani sistemi i nedostajući GRUB alati

U šifriranim sistemima (npr. sa LUKS-om) ili složenijim instalacijama , GRUB problemi mogu postati malo delikatniji, posebno ako kombinujete šifrirane particije, EFI particije i promjene kernela.

Tipičan scenario je želja za pokretanjem sistema s novim kernelom. (na primjer, nadogradnja sa verzije 6.4.x na 6.5.x) i otkrivanje da GRUB meni i dalje ukazuje na stari kernel ili direktno na onaj koji više ne postoji. Ako u tom trenutku pokrenete update-grub I ispostavi se da nije instalirano, a ti vučeš veze grub-mkconfig -o /boot/grub/grub.cfgMožete ostaviti konfiguraciju u nekonzistentnom stanju. Ako je problem uzrokovan lošim unosom u /etc/fstabProvjerite vodič o tome kako Rješavanje problema s pokretanjem sistema pomoću fstab-a.

U šifriranim sistemima, često se dešava da nakon unosa lozinke za dešifriranje , umjesto nastavka procesa pokretanja, mašina pređe na UEFI konfiguraciju ili se zaglavi s minimalnim porukama, što ukazuje na ozbiljan problem u GRUB-u ili fazi učitavanja kernela.

Ako pratite vodič sa Live USB-a i naiđete na sintaksnu grešku prilikom izvršavanja petlji for ili složene naredbeDvaput provjerite razmake, navodnike i interpunkciju. Mnogi vodiči kopiraju naredbe s prekidima redova ili neobičnim znakovima koje ljuska ne interpretira ispravno ako ih upišete ručno.

Kada grub-install Nije čak ni dostupno unutar chroota. (nije unutra) /usr/sbin niti unutra /usr/bin), označava da GRUB paket nije instaliran ili da je sistem djelimično oštećen. U tom slučaju, prvo pokušajte oporaviti alat:

apt update
apt install grub-pc grub-efi-amd64

Ako upravitelj paketa radi i preuzima potrebne pakete, možete se oporaviti grub-install i nastavite s normalnom ponovnom instalacijom. Ako ne možete ni instalirati pakete, možda biste trebali razmisliti o sigurnosnoj kopiji podataka i čistoj ponovnoj instalaciji, iako je to obično krajnja opcija.

U svakom slučaju, čak i u šifriranim konfiguracijamaOpšta ideja ostaje ista: pronaći ispravnu particiju, montirati sve što je potrebno, izvršiti chroot, ponovo instalirati GRUB i regenerirati konfiguraciju. Najteži dio je ispravno identificirati koje particije su uključene u proces pokretanja (EFI, /boot nešifrirano, LUKS volumen, LVM, itd.).

Mirnom provjerom svake komande i bilježenjem poruka o greškama , sasvim je moguće spasiti sistem koji na prvi pogled izgleda "mrtav" zbog GRUB-a, bez obzira da li koristite grafičke alate poput Boot-Repaira ili preferirate da to radite ručno pomoću chroota i tradicionalnih komandi.

Opis procesa pokretanja sistema u UEFI sistemima
Povezani članak:
Detaljan opis procesa pokretanja sistema u UEFI sistemima