Rendszerbetöltő (Grub) javítás
Előfordulhat, hogy egy program, egy másik operációs rendszer, vagy az eszköz hibája miatt, esetleg a rendszer költöztetése miatt újra kell telepíteni a rendszerbetöltőt. Az alábbi cikkben azt mutatjuk be, hogy tudod ezt megtenni egyszerűen egy konzol használatával.
Grafikus helyreállítóeszköz
Erre akkor van lehetőség, ha kéznél van egy telepítőlemez!
Javítás parancssorból
Első lépés
Csatoljuk fel a kérdéses rendszer partícióját egy üres mappába. Ha a Live-telepítőről indítottad a gépet, akkor az /mnt megfelel erre a célra. A példánkban a rendszer az SDA2-re van telepítve, tehát ez a root (/) partíció.
0 1 2 3 4 |
rootmod [enter] # a Live rendszeren nincs root jelszó, de egy fizikai rendszernél meg kell adni mount /dev/sda2 /mnt |
Amennyiben a rendszerbetöltő EFI, akkor a /boot/efi mappát a boot partícióhoz kell csatolni, miután a gyökérpartíció felcsatolásra került! A boot partíció egy ~300MB-os FAT32 partíció a lemezen. A példában ez az SDA1 partíció. MBR alapú rendszerbetöltőnél erre a lépésre nincs szükség, mert a Grub a Master Boot Recordba kerül.
0 1 2 3 |
# a Live rendszeren nincs root jelszó, de egy fizikai rendszernél meg kell adni mount /dev/sda1 /mnt/boot/efi |
Második lépés
A Grub újraíráshoz szükség van a fizikai eszközök (DevFS) elérésére amit a host rendszerről – ami a példában a Live-telepítő – csatoljuk fel.
0 1 2 3 4 5 |
mount --bind /dev /mnt/dev mount --bind /dev/pts /mnt/dev/pts mount --bind /proc /mnt/proc mount --bind /sys /mnt/sys |
Most telepítsük a Grub-ot egy Chroot környezetben. Ha EFI rendszerű a rendszerbetöltő, az automatikusan kerül kezelésre, nincs vele külön dolgunk.
Harmadik lépés
0 1 2 3 4 5 6 7 |
chroot /mnt grub2-install /dev/sda chroot /mnt grub2-install --recheck /dev/sda chroot /mnt update-grub2 # beléphetünk közvetlenül a chroot környezetbe is a chroot /mnt paranccsal, ekkor elhagyhatjuk # a sorok előtti "chroot /mnt"-t |
Sikeres parancsok esetén , nem jelenik meg hiba a parancsok kimenetében. Egymás után így tudjuk leválasztani őket:
Negyedik lépés
0 1 2 3 |
umount /mnt/sys && umount /mnt/proc && umount /mnt/dev/pts && umount /mnt/dev umount /mnt/boot/efi && umount /mnt |
Ezt követően állítsuk le a gépet, és távolítsuk el a telepítőmédiát, a helyreállított rendszernek már indulnia kell.
Nincs kéznél a telepítő?!
Rendszerindítás, helyreállítás Grub parancssorból
Alapvetően három hibaüzenet jelenik meg, amikor a GRUB problémába ütközik.
grub> : Ez az a képernyő mód akkor látható, amikor a GRUB egyébként megtalál minden összetevőt, kivéve a beállítófájlt. Ez a fájl alapértelmezetten a grub.cfg fájl, ami a /boot/grub2/grub.cfg útvonalon van.
grub rescue> : Ez az üzenet akkor jelenik meg amikor a GRUB nem találja az egész GRUB2 mappát, vagy annak tartalma hiányzik, sérült. A GRUB 2 mappa tartalmazza a menüt, modulokat és a tárolt környezeti adatokat.
GRUB : Csak a „GRUB” semmi más nem jelenti azt, hogy a GRUB2 nem találta meg a rendszer indításához szükséges legalapvetőbb információkat sem.
Alapvető parancsok
0 1 2 |
boot (Initiate the boot, also F10 or CTRL-x) |
0 1 2 |
cat (view the contents of config or txt files; cat (hd0,1)/boot/grub/grub.cfg) |
0 1 2 |
configfile (Load a GRUB 2 configuration file such as grub.cfg; configfile (hd0,5)/boot/grub/grub.cfg.) |
0 1 2 |
initrd (Loads the initrd.img, necessary for booting; initrd (hd0,5)/initrd.img.) |
0 1 2 |
insmod (Loads a module; insmod (hd0,5)/boot/grub/normal.mod, or insmod normal.) |
0 1 2 |
linux (Loads the kernel; insmod /vmlinuz root=(hd0,5) ro.) |
0 1 2 |
loop (Mount a file as a device; loopback loop (hd0,2)/iso/my.iso.) |
0 1 2 |
ls (lists the contents of a partition/folder; ls, ls /boot/grub, ls (hd0,5)/, ls (hd0,5)/boot.) |
0 1 2 |
lsmod (List loaded modules.) |
0 1 2 |
normal (Activate the normal module, if loaded.) |
0 1 2 |
search (Search for a device. Type help search for the available options.) |
0 1 2 |
set (Review current settings, or set XXX to set a variable such as colors, prefix, root.) |
0 1 2 |
vbeinfo (Display GRUB 2 available resolutions.) |
Rescue Shell (helyreállító felület)
Ez akkor alkalmazható ha nem sérült a meghajtó, és az alapvető modulok elérhetőek a GRUB mappákban, illetve, ha tudjuk értelmezni a képernyőn látottakat.
A beállított értékek lekérése a ‘set’ paranccsal történik, ezzzel láthatjuk a szükséges információkat, és nagyjából így fog kinézni:
0 1 2 3 4 5 |
set [...] prefix=(hd0,msdos1)/grub2 [...] |
vagy használhatjuk az ‘ls’ parancsot a meghajtó lekérésére
0 1 2 3 4 |
grub> ls (hd0) (hd0,msdos2) (hd0,msdos1) grub> |
A hd0 : a merevlemez
Az msdos : a partíció típusa
Normális esetben az operációs rendszert a merevlemez első partíciójáról indítják. Ebben az esetben futtassuk a következő parancsot az ellenőrzéséhez, hogy a rendszerindító partíció ‘msdos1’:
0 1 2 |
grub> ls (hd0,msdos1)/ |
Ezután nézzük meg a grub2 könyvtárat a futtatással:
0 1 2 |
grub> ls (hd0,msdos1)/grub2 |
Kimenet ilyesmi lesz:
0 1 2 |
device.map fonts grub.cfg grub.cfg.rpmsave grubenv i386-pc locale |
Ha a nem látod a cfg fájlt, akkor létrehozhatod a következő paranccsal :
0 1 2 |
grub2-mkconfig |
A ‘set root’ futtatásával beállítható az indítható partíció. A rendszer indításához a paranccsorba írjuk be (a példában az hd0 meghajtón az msdos1 partíció az indítópartíció, ez nálad lehet más):
0 1 2 |
grub> set root=(hd0,msdos1) |
A parncs kimenete:
0 1 2 |
linux (hd0,msdos1) /vmlinuz root=..... |
A terminál módban több parancs van megnövelt funkcionalitással, ezért próbáljuk meg betölteni a normal modult
0 1 2 3 |
insmod normal normal |
Ha ez sikeres akkor adjuk meg a következő parancsot
0 1 2 3 |
insmod linux * linux /vmlinuz root=/dev/sdXY ro |
Ha ez nem működött folytassuk az alábbi módon:
Most meg kell határoznunk a grub2 könyvtár elérési útját:
0 1 2 3 |
grub> set prefix=(hd0,msdos1) / grub2 grub> insmod normal |
Ez követően ezt fogod látni, ha több bejegyzés van akkor tudsz választani
0 1 2 |
initrd (hd0,msdos1) /initrd.img |
Majd az indításhoz a kiválasztott iniotrd-vel
0 1 2 |
boot |
Amennyiben elindult a PC az alábbi paranccsal újra kell telepíteni a rendszerbetöltőt
0 1 2 |
grub2-install /dev/sdX |
A következő parancs a meglévő konfigurációt frissíti csak
0 1 2 |
update-grub2 |
Hozzászólások lezárva