Hogyan javítsuk meg a GRUB-ot LiveCD nélkül lépésről lépésre

Utolsó frissítés: 15 január 2026
  • A GRUB gyakran összeomlik partícióváltások, más rendszerek telepítése vagy frissítések után, de szinte mindig helyreállítható.
  • Maga a GRUB konzol lehetővé teszi a /boot/grub megkeresését, a kernel manuális betöltését és a rendszerindítást LiveCD nélkül.
  • Miután a rendszer elindult, elengedhetetlen a GRUB újratelepítése és frissítése Linuxról, hogy elkerüljük a hiba megismétlődését.
  • Súlyosabb esetekben a LiveUSB-t, a chroot-ot és a Boot-Repairhez hasonló eszközöket használó módszerek mélyebb javítást kínálnak.

GRUB javítása LiveCD nélkül

Ha valaha is bekapcsoltad a számítógépedet, és az operációs rendszer logója helyett egy fekete képernyőt és egy olyan üzenetet láttál, mint a „hiba: nincs ilyen eszköz” vagy a „grub mentése ”, akkor pontosan tudod, milyen pánikszerű érzés. Hirtelen úgy tűnik, mintha az egész rendszered elveszett volna, formázni kellene, és az adataid veszélyben vannak... de a valóság az, hogy a legtöbb esetben ez drasztikus intézkedések nélkül is megoldható.

A jó hír az, hogy bár komoly problémának tűnik, a GRUB LiveCD nélküli javítása teljesen lehetséges magával a GRUB konzollal, feltéve, hogy a lemez sérülése nem katasztrofális. Egy kis türelemmel, néhány jól beírt paranccsal és a háttérben zajló események megértésével újraindíthatod a Linux rendszeredet, újratelepítheted a rendszerindító kezelőt, és előkészítheted a jövőbeli újraindításokra.

Mi az a GRUB, és miért hibásodik meg olyan gyakran?

GRUB rendszerindítási hiba

Mielőtt elkezdenénk őrült módjára gépelni, fontos megérteni a GRUB szerepét a számítógép indításában. A GRUB 2 a legtöbb modern GNU/Linux disztribúció által használt rendszerindító menedzser: általában az MBR-be vagy a partíció tetejére van telepítve, és felelős az elérhető operációs rendszereket tartalmazó menü megjelenítéséért, valamint a Linux kernel megfelelő paraméterekkel történő betöltéséért.

Ez a rendszerindító kezelő olyan fájlokra támaszkodik, amelyek jellemzően a telepítés /boot/grub könyvtárában találhatók: modulok, konfigurációs fájlok, kernel képfájlok, initrd stb. Ha ez a könyvtár elérhetetlenné válik, áthelyezik, megsérül, vagy a GRUB észrevétlenül lecseréli a lemezeket, akkor olyan hibákat fogsz látni, mint a „nincs ilyen eszköz”, az „ismeretlen fájlrendszer” vagy a rettegett grub rescue> prompt.

A kezelő meghibásodásának tipikus okai meglehetősen közismertek: a Windows telepítése Linux után és az MBR felülírása , a partíciókkal való babrálás (átméretezés, áthelyezés, törlés, újak létrehozása) olyan eszközökkel, mint a GParted vagy hasonlók, vagy akár egy kernel- vagy rendszerfrissítés , amely valamilyen oknál fogva inkonzisztens hivatkozásokat hagy a GRUB konfigurációjában.

Mindezek mellett egyes felhasználók a /boot parancsot külön partícióra telepítik , ami bevett gyakorlat a speciális konfigurációkban vagy olyan környezetekben, ahol a lemez többi részét titkosítani kell. Ilyen esetekben a partíció vagy a lemezszám bármilyen módosítása azt eredményezheti, hogy a GRUB nem tudja megtalálni a saját moduljait és konfigurációját.

GRUB hibatípusok és konzol módok

Amikor a GRUB meghibásodik, általában nem tűnik el csak úgy: jellemzően valamilyen konzol- vagy mentőmenüben hagy maga után , amelyet a rendszer manuális indításához használhat. A viselkedés kismértékben eltér a probléma súlyosságától és a telepített GRUB verziójától függően.

Sok disztribúcióban láthatjuk, hogy a rendszer megpróbálja betölteni a GRUB-ot, és végül összeomlik. egy parancs a következő szöveggel: grub rescue>Ez a mód meglehetősen korlátozott, de lehetővé teszi néhány billentyűparancs elindítását, például ls, set o insmod, elég ahhoz, hogy megtalálja a megfelelő partíciót és kikényszerítse a Linux modul betöltését.

Más esetekben a normál GRUB menüt (az operációs rendszerek listáját) fogja látni, de a rendszerindítási kísérlet sikertelen lesz, vagy a menü sérülten jelenik meg. Innen a 'c' billentyű megnyomásával beléphet a teljes GRUB parancssorba, amely sokkal hatékonyabb, mint a helyreállító mód, és szélesebb körű parancsokat kínál.

Régebbi telepítésekben egyes rendszerek továbbra is a GRUB Legacy-t használják (nem a GRUB 2-t), például a CentOS 5/6 bizonyos verziói vagy más régebbi disztribúciók. Ezekben az esetekben a parancs szintaxisa kissé megváltozik, de az általános elképzelés ugyanaz: keresse meg a /boot könyvtárat, mondja meg a GRUB-nak, hol található a gyökérkönyvtára, majd manuálisan töltse be a kernelt és az initrd-t.

Hogyan javítsuk a GRUB-ot LiveCD nélkül, mentő módban

Amikor a számítógép nem találja megfelelően konfigurált rendszerindító-kezelőt, gyakran megjelenik egy olyan üzenet, mint az „Error: no such device” (Hiba: nincs ilyen eszköz), majd a „grub rescue>” (grub rescue>) . Ez azt jelenti, hogy a GRUB-nak sikerült lefutnia, de nem tudja, hol találhatók a konfigurációs fájljai vagy a szükséges modulok.

  Linux javítások a RAS támogatásához Qualcomm platformokon

Ebben a forgatókönyvben van egy mini parancsértelmeződ, amely lehetővé teszi a partíciók felderítését, a /boot/grub megkeresését és a kernel manuális betöltését . A folyamat hosszadalmasnak tűnhet, de meglehetősen szisztematikus.

Elérhető lemezek és partíciók listázása

Az első lépés annak kiderítése, hogy a GRUB mely lemezeket és partíciókat látja a gépeden. Ehhez a grub rescue> parancssorába írd be:

ls

A parancs valami hasonlót fog megjeleníteni, mint (hd0) (hd0,1) (hd0,2) (hd0,3) (hd1) (hd1,1) (hd1,2). Minden hdX egy másik merevlemezt jelöl: A hd0 lenne az első fizikai lemez, a hd1 a második.és így tovább. A vesszővel elválasztott változatok, mint például a (hd0,1), az adott lemez számozott partícióit jelzik.

A számítógépedtől függően egyetlen lemezt láthatsz, például a (hd0)-t két vagy három partícióval, vagy több lemezt: (hd0,1) (hd1,1) (hd1,5) (hd2,1) (hd3,1) . Mindenesetre a cél most egyszerű: nyisd meg az egyes partíciókat, amíg meg nem találod azt, amelyik a /boot/grub könyvtárat tartalmazza.

Keresd meg a partíciót a /boot/grub segítségével

Egy partíció tartalmának vizsgálatához ismét a következőt használjuk: ls de a partíció nevét és egy perjelet adjuk hozzá. Például: ellenőrizze a tartalmat Segíteni fog azonosítani, hogy a megfelelő-e.

ls (hd0,1)/

Ha az adott partíciónak van egy olyan fájlrendszere, amelyet a GRUB felismer, akkor egy könyvtárlistát jelenít meg: olyan neveket fogsz látni, mint a bin stb., home, boot, root stb. Ebben az esetben ez a partíció lehet a root (/) vagy egy különálló partíció a /boot-tól, attól függően, hogy milyen struktúrával rendelkeztél a rendszer telepítésekor. Ha a lista egy olyan fájlrendszert jelez, amelyet a GRUB felismer , akkor jó úton haladsz.

Ha az előző parancs futtatásakor egy boot nevű könyvtárat lát , akkor mélyebben is megvizsgálhatja, hogy tartalmazza-e a grub mappát:

ls (hd0,1)/boot/grub

Amikor olyan fájlok listáját találod, amelyek olyan modulokat tartalmaznak, mint a linux.mod vagy más tipikus GRUB fájlok, akkor megtaláltad a keresett partíciót . Ha semmi sem jelenik meg, vagy hibát kapsz, próbálkozz a többi partícióval: ls (hd0,2)/ , ls (hd1,1)/ , stb., amíg meg nem találod a megfelelőt.

Mondd meg a GRUB-nak, hol találhatók a fájljaid.

Miután a megfelelő partíciót azonosítottuk, a GRUB-nak meg kell adni, hogy hol találhatók a moduljai és a konfigurációja . Tegyük fel, hogy felfedeztük, hogy a /boot a (hd0,1) címen található. A következő lépés az előtag beállítása:

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

Ezzel az utasítással a rendszergazda tudni fogja, hogy a támogatási fájljai ezen az elérési úton találhatók. Azt is meg kell mondanunk neki, hogy melyik gyökérpartíciót használja a kernel és a többi rendszeradat megkereséséhez:

set root=(hd0,1)

Fontos, hogy helyesen írjuk le a párokat. (lemez, partíció) és mindig használd a záró perjelet / amikor a tartalmakat listázzuk lsAzt is tartsd szem előtt, hogy a GRUB konzol billentyűzetkiosztása általában amerikai, így a zárójelek és a perjelek eltérhetnek a rajtuk láthatótól. Jó gyakorlat, ha megbizonyosodsz róla, hogy előtag beállítása helyesen, mielőtt megpróbálná betölteni a modulokat.

Töltse be a GRUB modulokat és a Linux kernelt

A konfigurált előtag után a következő lépés a GRUB Linux modul betöltésének kikényszerítése. Sok útmutatóban valami ilyesmit fogsz látni:

insmod (hd0,1)/boot/grub/linux.mod

Sok modern rendszerben a megfelelő modul lehet normal.mod vagy mások, de az ötlet ugyanaz: ha nem biztos a pontos nevekben, használja a parancsot ls (hd0,1)/boot/grub A fájlok listázásához válassza ki a GRUB verziójának megfelelő modult. A funkciója: insmod Ez magában foglalja a szükséges modul betöltését a rendszerindítási folyamat folytatásához. Kérjük, vegye figyelembe, hogy insmod Ez az utasítás az, ami valójában beépíti a modult a betöltőbe.

Ezután meg kell töltse be a Linux kernel képét jelzi az elérési útját a fájlrendszeren belül. Példa indításra: linux /boot/vmlinuz-4.13.3-generic root=/dev/sda1

A pontos kernelnév a gépeden eltérő lehet (lehet, hogy vmlinuz-2.6.32-23-generic, vmlinuz-6.1.0-10-amd64 vagy bármely más verzió). Használhatod ismét a következőt: ls /boot Hogy lásd, milyen képeid vannak, és kiválaszthasd a legfrissebbet. A lényeg, hogy ne felejtsd el a paramétert. root=/dev/sdXn a megfelelő root partícióval.

A GRUB és a Linux elnevezési konvenciók közötti egyenértékűség miatti félreértések elkerülése végett ne feledje, hogy a hd0 a /dev/sda, a hd1 a /dev/sdb, a hd2 a /dev/sdc könyvtáraknak felel meg , és így tovább. A partíciószámozás formátuma is megváltozik: (hd0,1) lesz /dev/sda1, (hd1,2) lesz /dev/sdb2 stb.

Bizonyos esetekben a kernel kép betöltése után célszerű betölteni az initrd képet (a kezdeti RAM lemezt), ha a disztribúciód megköveteli. A tipikus parancs a következő lenne:

initrd /initrd.img

A kernelhez hasonlóan ellenőrizheted, hogy mely initrd fájlok érhetők el a következővel: ls / o ls /boot és használja a tabulátor billentyű a nevek automatikus kiegészítéséhez és a helyesírási hibák elkerüléséhez.

  Fájl átnevezése Linux alatt

Indítsa el a rendszert, és telepítse újra a GRUB-ot Linuxból

Miután a kernel és az esetleges initrd betöltődött, csak meg kell mondanod a GRUB-nak, hogy indítsa el a rendszerindítási folyamatot . Ehhez egyszerűen írd be:

Indítás: boot

Ha minden jól megy, a kernel átveszi az irányítást, az operációs rendszer a szokásos módon elindul, és bejelentkezhetsz a Linux rendszeredbe. Ezen a ponton már sikerült megmentened a helyzetet LiveCD nélkül, de még mindig van egy fontos lépés: újra kell telepítened a GRUB-ot, hogy megakadályozd a következő újraindításkor történő újbóli összeomlást.

Miután belépett a rendszerbe, nyisson meg egy terminált szuperfelhasználói jogosultságokkal (root vagy sudo) és futtassa:
grub-install /dev/sdX

ahol a /dev/sdX a lemez (nem a partíció), ahová a rendszerindító kezelőt helyezni szeretné, például /dev/sda vagy /dev/sdb, ha egy másik lemezen van. Ne feledje, hogy itt nem szabad megadni a partíció számát: a parancs a rendszerindító kezelőt az MBR-be vagy a teljes lemez rendszerindító területére írja.

Sok Debian- vagy Ubuntu-alapú disztribúcióban erősen ajánlott a GRUB konfigurációs fájl újragenerálása , hogy az biztosan helyesen érzékelje az összes telepített rendszert. Ezt a következőképpen teheted meg:

Fuss: update-grub o update-grub2

És ha a kezdeti rendszerindító lemezképet is frissíteni szeretnéd, frissítsd az initramfs-t a következővel:

Parancs: update-initramfs -u

A GRUB konzol használata a rendszerindító menüből

Más esetekben a GRUB problémája nem ilyen radikális, és látod a rendszerindító menüt , de egyes rendszerek nem indulnak el, hiba jelenik meg egy adott bejegyzés kiválasztásakor, vagy egyszerűen csak gyanítod, hogy a menü rosszul van konfigurálva.

Ezekben az esetekben, amikor a számítógép bekapcsolásakor megjelenik a GRUB menü, a nyílgombok (fel vagy le) megnyomásával leállíthatja az automatikus rendszerindítási visszaszámlálást, majd a c billentyű megnyomásával elérheti a teljes parancssort.

Erről a fejlett konzolról a A parancsok lényegében ugyanazok mint mentési módban, de több eszköz áll majd rendelkezésére a rendszer vizsgálatához. Például használhatja a ls lemezek és partíciók listázása, set a GRUB környezeti változók megtekintéséhez és módosításához, insmod további modulok vagy akár parancsok betöltésére, mint például cat szövegfájlok tartalmának beolvasásához.

Ugyanezt a sémát követve először meg kell határoznia, hogy mely lemezekkel és partíciókkal rendelkezik:

ls

és egy (hd0) (hd0,msdos1) (hd0,msdos5) vagy (hd0,1) (hd1,1) (hd1,5) (hd2,1) típusú kimenetet fogsz látni , attól függően, hogy a partíciós tábla MBR (msdos) vagy GPT, és hogy hány lemez van a számítógépben.

Ezután az egyes partíciókat olyan parancsokkal ellenőrizheti, mint:

ls (hd0,msdos1)/

amíg meg nem találod a boot könyvtárat és azon belül a grub mappát. Miután azonosítottad, ismételd meg az előtag és a root beállításának folyamatát a következővel:

set prefix=(hd0,msdos1)/boot/grub
set root=(hd0,msdos1)

Innen a /boot tartalmának listázásával keresheted meg az elérhető kerneleket:

/boot lista: ls /boot

és kiválaszthatsz egyet a betöltéshez:

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

A kernel verziójának és a root partíciónak az adott esethez igazítása. Ne feledkezz meg a lemez hozzárendelésekről: hd0 → /dev/sda, hd1 → /dev/sdb, hd2 → /dev/sdc stb. A TAB billentyűvel automatikusan kiegészítheted az elérési utakat és a fájlneveket.

Végül, ha szükséges, betöltöd az initrd-t, és végrehajtod a parancsot. csónak A rendszer elindításához. Bejelentkezés után a végrehajtandó művelet megegyezik az előző forgatókönyvben leírtakkal: Telepítse újra a GRUB-ot a lemezre, és frissítse a konfigurációját használatával grub-install /dev/sda y update-grub.

GRUB javítása GRUB Legacy rendszeren

Bár a legtöbb disztribúció ma már a GRUB 2-t használja, továbbra is találhatunk régebbi gépeket vagy speciális rendszereket, amelyek a GRUB Legacy-t használják . A felület ezekben az esetekben kissé eltér, de az alapkoncepció ugyanaz marad: egy interaktív rendszerbetöltő shell segítségével újraindíthatjuk a rendszert.

Indításkor ez a klasszikus GRUB általában engedélyezi a hozzáférhet a parancssorhoz egy adott billentyű megnyomásával (gyakran a billentyűvel c vagy a kulcsot e (bejegyzések szerkesztéséhez). Amint a parancssorba lép, olyan parancsokat talál, mint például find amelyek különösen hasznosak.

Például, ha meg szeretné találni a kernel képfájlokat és initrd-ket tartalmazó /boot könyvtárat , akkor a következőt használhatja:

find parancs: find /boot/grub/stage1 vagy egy hasonló útvonalon

Attól függően, hogy A /boot egy külön partíció vagy a gyökéren belül van, az elérési út a következő lesz: /boot vagy egyszerűen / más almappákkal. Amikor megtalálta a megfelelő partíciót, a GRUB Legacy általában valami ilyesmit jelenít meg (hd0,0) vagy egy másik lemez/partíció pár, amelyet újra felhasználhatsz.

  Mi az a tuningolás, és mire használják a számítógépen?

Ezután meg kell határoznia a GRUB gyökerét egy ilyen paranccsal:

Példa a gyökérre: root (hd0,0)

és mondd meg, hol található a kernel és az initrd. Ismétlem, általában nem kell beírnod ​​a teljes fájlneveket, mivel a TAB billentyű automatikusan kiegészíti a keresőt, és segít elkerülni az elgépeléseket a hosszú elérési utakban.

A további finomhangoláshoz használhatja a parancsot cat a GRUB konfigurációs fájl beolvasásához (például /boot/grub/menu.lstés ellenőrizd, hogy melyik eszköz van csatolva a gyökérkönyvtárhoz, milyen kernel paraméterek vannak átadva, stb. Ez egy nagyon praktikus módja annak, hogy Másolja le ugyanazt a konfigurációt, amelyet a rendszer akkor használt, amikor megfelelően működött..

Végül, amikor megvannak a vonalak gyökér, mag e initrd Listák esetén egyszerűen futtassa a parancsot boot a rendszer indításához. Miután bejutottunk, az utolsó lépés a GRUB újratelepítése lesz a Linuxon belülről a következővel: grub-install a megfelelő lemezen, így biztosítva, hogy a későbbi újraindításokkor ne kelljen megismételni a manuális folyamatot.

Egyéb gyakori módszerek (LiveCD, chroot és Boot-Repair használatával)

Eddig láttuk, hogyan lehet megoldani a helyzetet kizárólag a GRUB konzol használatával , külső eszközök igénybevétele nélkül. Azonban érdemes ismerni a klasszikus módszereket is LiveCD/LiveUSB és grafikus eszközök használatával, mert bizonyos esetekben a kár olyan nagy, hogy a rendszerindítás egy indítható rendszerről az egyetlen lehetőség.

A Debian és Ubuntu alapú disztribúciókban gyakran használt technika a LiveCD-ről vagy LiveUSB-ről (például Ubuntu, Linux Mint, Debian Live rendszerképről stb.) történő indítás, a sérült rendszer root partíciójának csatolása, a /boot partíció csatolása is, ha az egy különálló partíció, majd chrootolás erre a fájlrendszerre a GRUB újratelepítéséhez, mintha magából a telepítésből működnénk.

A folyamat nagy vonalakban a partíciók azonosításából áll, amelyekkel fdisk -l, határozd meg, hogy mi a gyökér (például, / Dev / sda2) és melyik a rendszerindító partíció, ha létezik (például, / Dev / sda7Ezután összeszerelik őket:

Válaszfalak szerelése (pl.):
sudo mount /dev/sda2 /mnt
sudo mount /dev/sda7 /mnt/boot (ha van egy külön /boot fájlod)

A /dev, /dev/pts, /proc és /sys bind mountolása a /mnt könyvtáron belül történik :

Kötőelemek:
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

Innen a telepített rendszert a következőképpen érheted el:

Bejelentkezés a következővel: sudo chroot /mnt

Belülről pedig futtathatod a grub-install parancsot a lemezre mutatva:

Telepítés chrootból: grub-install --boot-directory=/boot/ --recheck /dev/sda

a rendszerindító kezelő újratöltéséhez az MBR-be vagy azzal egyenértékű területre, majd:

Konfiguráció generálása: grub-mkconfig -o /boot/grub/grub.cfg

a konfigurációs fájl újragenerálásához. A chrootból való kilépés után a következővel exit és indítsa újra a számítógépet (sudo reboot), általában A GRUB menü újra megjelenik a szokásos módon..

Egy másik nagyon kényelmes lehetőség azoknak a felhasználóknak, akik inkább elkerülik a terminált, a Boot-Repair eszköz , amely élő Ubuntu környezetben telepíthető, és egy grafikus felületet kínál, amely képes az operációs rendszer telepítéseinek észlelésére és a GRUB szinte automatikus javítására . Egyszerűen futtassa az eszközt, válassza ki az „ajánlott javítást”, és hagyja, hogy elemezze és átírja a rendszerbetöltőt.

Bár ezek a LiveCD-ken vagy külső segédprogramokon alapuló megoldások nagyon praktikusak, a bevezetőben bemutatott technikák elsajátításának előnye, hogy nem kell kéznél lennie USB-meghajtónak vagy lemeznek . Sok esetben magával a GRUB konzollal is boldogulhatunk, különösen akkor, ha a probléma "csak" az, hogy a rendszerindító kezelő elvesztette a helyes hivatkozást arra a partícióra, ahol a /boot található.

Mindezek alapján egyértelmű, hogy egy hibás GRUB nem feltétlenül jelent elveszett rendszert : magában a rendszerbetöltőben, a parancssorban és a Live környezetben is vannak eszközök a megfelelő partíció megtalálásához, a kernel manuális betöltéséhez, a GNU/Linux elindításához és a rendszerindító kezelő újratelepítéséhez, hogy újra úgy működjön, mint újkorában.

Linux Live mód előnyei
Kapcsolódó cikk:
Linux élő módban és Live USB-n: előnyök, felhasználások és korlátok